(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