État de l'intégration de la virgule flottante dans les processeurs graphiques
Les unités graphiques sont désormais des processeurs puissants et flexibles supportant des opérations en virgule flottante sur 16, 24 ou 32 bits. Malheureusement les constructeurs (ATI et Nvidia) gardent secret les caractéristiques et la description de l'implantation des différents opérateurs arithmétiques embarqués dans les différentes unités de traitement. Or ces informations sont essentielles pour estimer et contrôler les erreurs d'arrondi ou pour mettre en oeuvre des techniques de réduction ou de compensation afin de travailler en précision double, quadruple ou arbitrairement étendue. Nous proposons dans cet article un ensemble de tests pour les découvrir. Nous donnons les résultats obtenus sur deux cartes graphiques récentes : la Nvidia 7800GTX et l'ATI RX1800XL.
Graphics Processing Units are now powerful and flexible systems supporting 8, 16 or 32 bit floating point operations. Technical documentation provided by manufacturers (ATI and Nvidia) is not sufficient concerning the various floating point operators available in the vertex and the pixel shaders. However such detailed documentation is essential in applications involving numerical calculation which requires estimates of round-off error, floating-point reduction and compensated evaluation when implementing double, quadruple or multiple precision arithmetic. We present in this work a set of programs to discover the principal characteristics of floating point arithmetic of GPUs. We discuss of results obtained on two recent graphics cards: Nvidia 7800GTX and ATI RX1800XL.
S.COLLANGE, M.DAUMAS, D.DEFOUR
Reçu le 5 mars 2006.
Accepté le 14 décembre 2007.
GPGPU, GPU, arithmétiques virgule flottante, précision.
GPGPU, GPU, floating-point arithmetic, accuracy.
Français
|