Les unites graphiques (Graphic Processing Units- GPU) sont desormais des processeurs puissants et flexibles. Les dernieres generations de GPU contiennent des unites programmables de traitement des sommets (vertex shader) et des pixels (pixel shader) supportant des operations en virgule flottante sur 8, 16 ou 32 bits. La representation flottante sur 32 bits correspond a la simple precision de la norme IEEE sur l'arithmetique en virgule flottante (IEEE-754). Les GPU sont bien adaptes aux applications avec un fort parallelisme de donnees. Cependant ils ne sont que peu utilises en dehors des calculs graphiques (General Purpose computation on GPU - GPGPU). Une des raisons de cet etat de faits est la pauvrete des documentations techniques fournies par les fabricants (ATI et Nvidia), particulierement en ce qui concerne l'implantation des differents operateurs arithmetiques embarques dans les differentes unites de traitement. Or ces informations sont essentielles pour estimer et controler les erreurs d'arrondi ou pour mettre en oeuvre des techniques de reduction ou de compensation afin de travailler en precision double, quadruple ou arbitrairement etendue. Nous proposons dans cet article un ensemble de programmes qui permettent de decouvrir les caracteristiques principales des GPU en ce qui concerne l'arithmetique a virgule flottante. Nous donnons les resultats obtenus sur deux cartes graphiques recentes: la Nvidia 7800GTX et l'ATI RX1800XL.
['Marc Daumas', 'Guillaume Da Graça', 'David Defour']
Caractéristiques arithmétiques des processeurs graphiques