(j3.2006) Liaison to IFIP WG 2.5
Wed Aug 22 13:37:49 EDT 2007
Van Snyder wrote:
> On Tue, 2007-08-21 at 17:32 -0600, keith bierman wrote:
>> That's doing things naively. If you are clever you can do rafts of
>> computation with one rounding mode, and then change the mode and do
>> the next set. All the moreso with enough cores to be working in
>> parallel. Of course, then it is intractable if it's just modules,
>> hand code, and an optimizer stuck trying to paste it all back
> This is pretty simple for add and subtract, but for multiply there are
> nine cases, and for divide when the divisor doesn't include zero there
> are six. When the divisor includes zero you just produce NaN (or should
> it be [-Inf,+Inf]?). So for multiply you'd set the rounding mode down
> and then execute a 9-way where/elsewhere block, then set it up and
> execute another where/elsewhere block.
What algorithm are you using? From Wikipedia, I see this for interval
[/a/,/b/] ? [/c/,/d/] = [min (/ac/, /ad/, /bc/, /bd/), max (/ac/, /ad/,
This looks like 4 multiplies rounded up, another 4 multiplies (same
operands) rounded down, and 6 conditional merges. No reasonable use of
where/elsewhere blocks in sight.
> Maybe speculative execution has
> gotten good enough that the branches don't kill the pipeline.
Bill Long longb at cray.com
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the J3