La version 1.2 du kit de développement en Cg (C Graphique) proposé par nVidia a été mis en ligne en février 2004. Le langage Cg se présente comme un langage de haut niveau type OpenGL, ajoutant une couche d'abstraction entre l'utilisateur et le code machine de la puce graphique. Il permet de programmer directement des shaders dans le GPU (Graphics Processing Unit).
La nouveauté, c'est que des chercheurs détournent l'utilisation première des GPU et utilisent leur puissance de calcul pour effectuer des calculs scientifiques.
Ainsi les opérations sur les matrices, domaine dans lequel les GPU graphiques excellent, sont considérablement accélérés. Alors qu'un processeur AMD Athlon 1800+ pointe en théorie à 1.5 GFlops, un processeur Quadro FX 2000 à 400 MHz fournira 12.8 GFlops. Le gain de temps est plus qu'appréciable.
Malheureusement, le toolkit nVidia n'est ni Open Source, ni libre. En revanche, la spécification du langage Cg est ouverte. Le tout est disponible sous GNU/Linux, Mac OS X et Windows.
La nouveauté, c'est que des chercheurs détournent l'utilisation première des GPU et utilisent leur puissance de calcul pour effectuer des calculs scientifiques.
Ainsi les opérations sur les matrices, domaine dans lequel les GPU graphiques excellent, sont considérablement accélérés. Alors qu'un processeur AMD Athlon 1800+ pointe en théorie à 1.5 GFlops, un processeur Quadro FX 2000 à 400 MHz fournira 12.8 GFlops. Le gain de temps est plus qu'appréciable.
Malheureusement, le toolkit nVidia n'est ni Open Source, ni libre. En revanche, la spécification du langage Cg est ouverte. Le tout est disponible sous GNU/Linux, Mac OS X et Windows.
Calcul scientifique avec GPGPU (1087 hits)
Homepage de GPGPU (561 hits)
La news précédente sur Linuxfr.org à propos de Cg (614 hits)
Le toolkit Cg (580 hits)
> Lire la dépêche (21 commentaires, moyenne: 2,8).
Vous avez demandé le commentaire #373514.




Re: Cg et la programmation du GPU
Le problème avec ces chiffres de GFlop, c'est que les cartes graphiques fonctionnent essentiellement en mode simd, ie pour atteindre les 12GFlops il faut appliquer la même opération sur plusieurs entiers en même temps, beaucoup d'algos ne se prêtent pas à ce traitement.
Un autre point qui me titille, c'est les communications entre carte graphique et processeur pour envoyer/récupérer les données, a priori via le bus agp actuel, c'est très lent (ça devrait s'améliorer avec le pci express), est-ce qu'on perd pas une grosse partie des gains obtenus lors du calcul à cause de ce transfert ?
[^]Re: Cg et la programmation du GPU
"très lent" ... AGP 8x ça veut tout de même dire 2.13 Go /s .... ça laisse tout de même de quoi faire trainer quelques données.
[^]Re: Cg et la programmation du GPU
Je faisais allusion à http://slashdot.org/article.pl?sid=02/08/19/1310216&mode=thread(...)
Si t'as des résultats super rapidement dans la mémoire de ta carte graphique mais que tu mets des siècles à les récupérer (pour les écrire dans un fichier par ex), c'est dommage.
[^]Re: Cg et la programmation du GPU
Le truc c'est que auparavant l'AGP servait a foutre les texture en RAM principale (entre autre) et a les echanger, a faire mumuse avec, donc a cette epoque le debit etait correct. J'ai des souvenir de jeux magnifique (textures détaillées et tout, mais résolution basse 800*600 vu la vitesse du chip) sur une ATI RAGE PRO 8 mo. Aujourd'hui, les nouvelles CG ont 128 mo embarqué, voire 256 ? et donc l'AGP n'a absolument plus aucune utilitée, et donc les fabriquant developpent cette aspect de la carte avec leur pieds.
[^]Re: Cg et la programmation du GPU
Pas genant les cartes graphiques embarquant pas mal de mémoire (souvent 128 ou 256mo) et cette mémoire est tres rapide (bus 256bits, DDR, 400mhz) des caracteristiques à faire palir la mémoire centrale de vos pc.