(j3.2006) IEEE and the GPU world
Bill Long
longb
Wed Jun 23 11:27:27 EDT 2010
The IEEE feature in F03 is becoming the topic of discussion with the
advent of the Chinese GPU system hitting #2 on the Top 500 list, and
also users getting access to the GPU's in their laptops via schemes like
OpenCL.
While GPU's support the hardware bit patterns for IEEE floating point
format (more or less a requirement for them to be useful at all for
floating point in a shared data environment), they do not support
things like exception flags or interrupts (halting), mainly for
performance reasons.
The question is what values should users expect from routines like
IEEE_SUPPORT_HALTING and IEEE_SUPPORT_FLAG? The standard is worded as
if there is a single "processor". But the common configuration will be,
at least at the beginning, of a combination of a "normal" processor
(x86_64, for example) for which these inquiry functions would return
true, and a GPU for which false is the right answer. Does the presence
of the GPU code pollute the entire program (functions return false no
matter where called in the program), or do they return true if called in
part of the code that is compiled into instructions for the normal
processor, and false if called from the parts of the code compiled for
the GPU? Note that the programmer would not necessarily know which
parts of the program end up executing on which hardware type. Insights
from the designers of this feature would be particularly interesting.
Cheers,
Bill
--
Bill Long longb at cray.com
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc./Cray Plaza, Suite 210/380 Jackson St./St. Paul, MN 55101
More information about the J3
mailing list