[C\C++] Développement sur GPU : NVIDIA Cuda

Développement sur GPU : NVIDIA Cuda [C\C++] - C - Programmation

Marsh Posté le 22-01-2009 à 19:34:36    

Bonjour à tous,
 
finissant actuellement une thèse en vision par ordinateur, je m'intéresse désormais à la problématique du développement sur GPU (Graphical Processing Unit) en utilisant plus particulièrement les GPU Nvidia.
 
Plongeant actuellement dans cette problématique, je me propose de vous faire partager l'état de l'art des différents algorithmes implémentés en Cuda et méthodes de programmation pour utliser cette extension au langage C, développée par Nvidia pour permettre une parallélisation "user friendly" de divers algorithmes.
 
ce topic sera perpetuellement en evolution, et pour le moment, je vais y mettre ce que je connais. Mais cela va s'etoffer, avec, je l'espère, votre aimable contribution.
 
Qu'est ce que Cuda ?  
 
Rien de mieux pour cela que d'aller voir la Zone Cuda chez Nvidia qui propose des exemples en pagaille dans différents domaines :
 
http://www.nvidia.fr/object/cuda_what_is_fr.html
 
Des domaines aussi variés que  
 
- la finance
- l'analyse de la dynamique de fluides
- le traitement d'images
- la médecine et la biologie
 
sont concernés par l'accélération des codes de calcul que l'on peut obtenir avec Cuda. Cuda est une extension à C , aussi utilisable avec le C++, qui permet d'avoir accès au processeurs graphiques Nvidia. Les gains en temps de calcul que l'on peut espérer, à condition d'optimiser un minimum son code, sont réellement impressionnant (un ou deux ordres de grandeur en pratique).
 
Ressources développeurs
 
Tout ce qu'il faut pour débuter en Cuda est ici :
 
http://www.nvidia.fr/object/cuda_what_is_fr.html
 
Fuide de programmation, manuel de référence ...
 
Toolkits
 
Les toolkits et SDK, incluant des exemples a compiler pour Windows, Linux et Mac OS X, sont disponibles ici =
 
http://www.nvidia.fr/object/cuda_home_fr.html
 
Si vous avez des problèmes pour compiler les exemples fournis avec le SDK, n'hésitez pas à me contacter par MP.
 
Forums de discussions
 
Nvidia:
http://forums.nvidia.com/index.php?showforum=62
 
GPGPU:
http://www.gpgpu.org/forums/
 
Etat de l'art des algorithmes déja portés en Cuda
 
Librairies open source disponibles utilisant Cuda
 
GPU CV, une implémentation d'OpenCV en Cuda pour le traitement d'images et la vision par ordinateur
https://picoforge.int-evry.fr/cgi-b [...] eb/WebHome
 
OpenVIDIA, Vision par ordinateur avec Cuda
http://openvidia.sourceforge.net/
 
Utilisation du calcul sur GPU en entreprise
 
BNP Paribas expertise le calcul sur GPU pour accélérer les codes Monte Carlo
http://www.01informatique.fr/appli [...] gpu-25204/
 
Je vois ce topic comme un lieu d'echange d'idées pour tous ceux intéressés par le développement d'algorithmes sur GPU, et d'aide à ceux qui veulent débuter.
 
[:spykem@n] TOPIC EN COURS DE CONSTRUCTION [:spykem@n]


Message édité par Elmoricq le 20-11-2009 à 11:33:17
Reply

Marsh Posté le 22-01-2009 à 19:34:36   

Reply

Marsh Posté le 22-01-2009 à 19:37:58    

Liens des développeurs HFR
 
Exemple d'utilisation :
http://easybioinfo.free.fr/?q=cont [...] ers-essais
 
Exemple d'audit de sécurité :
http://www.elcomsoft.com/ewsa.html
http://www.harakiwi.net/files/repertoire/images/actualites/Sniffing/ewsa.png


Message édité par OursonThesard le 22-01-2009 à 21:50:42
Reply

Marsh Posté le 22-01-2009 à 19:38:07    

Réservé.

Reply

Marsh Posté le 22-01-2009 à 20:33:10    

es-ce que tu compte aborder aussi CTM ? Il y a un super article quelque part, je retrouverais.
et aussi, il faut que tu parle d'openCL, il y a une news sur linuxfr, pareil je te filerai le lien.

Reply

Marsh Posté le 22-01-2009 à 20:34:53    

Oui , j'ai téléchargé et lu les specs d'OpenCL il y'a deux semaines je vais en parler aussi :o
 
Je veux bien parler de CTM, mais je m'y connais moins. Je suis donc preneur de tes refs :o
 
bon je vais construire le topic petit a petit, y'a tellement a dire que je fais pas tout d'un coup ce soir :o

Reply

Marsh Posté le 22-01-2009 à 21:47:06    

Intéressant, drapal !
J'ai aussi commencer à développer en Cuda (je dirais plutôt prendre en main que réellement développer).
Mais je risque de passer pas mal de temps dessus ces prochain mois.
 
D'après les premiers test, c'est une technologie extrêmement prometteuse !
 
Petit lien qui m'a servit au début :
http://easybioinfo.free.fr/?q=cont [...] ers-essais
 
Exemple d'audit de sécurité :
http://www.elcomsoft.com/ewsa.html
http://www.harakiwi.net/files/repertoire/images/actualites/Sniffing/ewsa.png

Reply

Marsh Posté le 22-01-2009 à 21:48:30    

Bon, j'ajoute en 1er post :o
 
j'ai un certain nombre de papiers, le temps de retrouver les url qui vont bien et je les mets (surement demain )


Message édité par OursonThesard le 22-01-2009 à 21:49:00
Reply

Marsh Posté le 27-01-2009 à 21:24:55    

Très intéressant. On risque de voir de plus en plus d'applis basées sur les GPU.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 28-01-2009 à 08:29:50    

drapal :o


---------------
Python Python Python
Reply

Marsh Posté le 28-01-2009 à 10:38:40    

Ah super sympa ce topic!!! ça va regorger de bonnes informations!!! JE suis preneur! :)


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 28-01-2009 à 10:38:40   

Reply

Marsh Posté le 28-01-2009 à 10:51:37    

il serait sympa de trouver des papiers avec des vrais bench, genre pas ceux qui oublient de compter les temps de transferts carte/PC dans leur estimation du gain :o
 
drapal neanmoins.

Reply

Marsh Posté le 28-01-2009 à 11:40:59    

Oui j'ai ca en stock :D je m'en occupe ce soir (je suis justement sur un code cuda de meca flu :p )

Reply

Marsh Posté le 28-01-2009 à 12:51:37    

Reply

Marsh Posté le 28-01-2009 à 13:42:51    

[:drapal]

 

edit : et j'ai mis en sticky, on n'a pas souvent d'aussi bons sujets.


Message édité par Elmoricq le 28-01-2009 à 13:44:09
Reply

Marsh Posté le 28-01-2009 à 14:01:33    

[:huit] ya bon tout ça ! [:drapal]

Reply

Marsh Posté le 28-01-2009 à 15:35:47    

Je compte faire une partie sur OpenCL. J'ai commencé a lire les specs et je vous resumerai tout ca :o

Reply

Marsh Posté le 28-01-2009 à 16:13:55    

Merci! ça s'annonce vraiment bien. :)


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 28-01-2009 à 17:48:47    

1er post updaté avec des librairies de traitement d'images utilisant Cuda : GPU CV et OpenVidia. Y'a pas mal de docs sur les sites je vous encourage à les regarder :o


Message édité par OursonThesard le 28-01-2009 à 17:49:09
Reply

Marsh Posté le 28-01-2009 à 20:56:44    

Tiens ayant attrapé un morceau de conversation récemment au boulot parlant justement du futur des GPGPU; un des intervenants a sorti qu'Intel d'ici quelques années rendra ces processeurs graphiques caduques. Je ne peux pas en dire plus n'ayant pas du tout suivi la conversation. Mais la question reste ouverte ... aura-t-on toujours besoin d'un périphérique dédié pour le graphique dans le futur ?
 
Faisait-il référence au futur GPU d'Intel : Larrabee
 
Un article lié : Intel: CUDA will be just a 'footnote' in computing history
Intel has revealed that it sees no place in the future of computing for general purpose GPU (GPGPU) programming models such as Nvidia’s CUDA
‘The problem that we’ve seen over and over and over again in the computing industry is that there’s a cool new idea, and it promises a 10x or 20x performance improvements, but you’ve just got to go through this little orifice called a new programming model,’

Reply

Marsh Posté le 28-01-2009 à 23:37:46    

Normal qu'ils publient ce genre de choses ils perdent des volumes de ventes de processeurs pour tout ce qui est clusters de calcul : la plupart des grosses machines qui vont arriver dans les centres de calculs comportent un mix cpu/gpu au lieu d'etre 100% cpu comme avant. Intel l'a clairement en travers de la gorge :o
 
Et ca n'est pas pour rien non plus qu'ils ont des problèmes avec Nvidia concernant leur plate forme Atom de processeurs mobiles.


Message édité par OursonThesard le 28-01-2009 à 23:59:54
Reply

Marsh Posté le 29-01-2009 à 07:35:36    

C'est dépassé CUDA, ça tourne pas sur ATI :o


---------------
Python Python Python
Reply

Marsh Posté le 29-01-2009 à 10:22:16    

Reply

Marsh Posté le 29-01-2009 à 12:25:09    

0x90 a écrit :

ATI est dépassé :o


 
tout faux, leur nouvelle archi est très clean :)
 
sinon un bon site pour les infos : http://www.multicoreinfo.com/

Reply

Marsh Posté le 29-01-2009 à 12:25:33    

enfoiro a écrit :


 
tout faux, leur nouvelle archi est très clean :)
 
sinon un bon site pour les infos : http://www.multicoreinfo.com/


 
 :o  
 
http://www.xbitlabs.com/news/video [...] ntist.html

Reply

Marsh Posté le 29-01-2009 à 16:42:58    

En tout cas je m'occupe d'abord de Cuda :o

Reply

Marsh Posté le 29-01-2009 à 22:47:26    

Joel F a écrit :

il serait sympa de trouver des papiers avec des vrais bench, genre pas ceux qui oublient de compter les temps de transferts carte/PC dans leur estimation du gain :o

 

drapal neanmoins.


Ce qui est curieux, voire inquiétant tout de même, c'est que malgré les multiples tentatives de portage de BLAS sur GPU, j'ai pas l'impression qu'il y ait de résultat réellement probant. Si on parvenait un gain important sur cette application, je pense que pas mal de scientifiques se pencheraient sérieusement sur ces hardwares.

Message cité 1 fois
Message édité par el muchacho le 29-01-2009 à 22:49:31

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 30-01-2009 à 12:44:09    

OursonThesard a écrit :

En tout cas je m'occupe d'abord de Cuda :o


 
super restrictif, globalise ton topic, car toutes ces technos sans standard ca va pas perdurer... voila mon avis après, c comme tu veux :D

Reply

Marsh Posté le 30-01-2009 à 13:51:20    

OpenCL FTW


---------------
Python Python Python
Reply

Marsh Posté le 30-01-2009 à 13:58:26    

Cuda puis OpenCL :o  
De toute facon il suffit de regarder les specs pour comprendre qu'OpenCL est une généralisation de Cuda. Donc bon, le langage pour les cartes d'ATI j'ai vraiment pas le temps de m'en occuper, et je n'en vois pas l'interet puisqu'il sera marginalisé avec l'arrivée d'Open CL (deja que Nvidia domine pour les clusters de calcul)


Message édité par OursonThesard le 30-01-2009 à 14:00:08
Reply

Marsh Posté le 30-01-2009 à 14:03:12    

Fais comme tu le sens :jap:


---------------
Python Python Python
Reply

Marsh Posté le 30-01-2009 à 14:05:05    

apres si qqun a des liens concernant ati je veux bien les mettre en 1er post evidemment

Reply

Marsh Posté le 30-01-2009 à 16:25:14    

el muchacho a écrit :


Ce qui est curieux, voire inquiétant tout de même, c'est que malgré les multiples tentatives de portage de BLAS sur GPU, j'ai pas l'impression qu'il y ait de résultat réellement probant. Si on parvenait un gain important sur cette application, je pense que pas mal de scientifiques se pencheraient sérieusement sur ces hardwares.


 
Oui, tu viens de résumer mes 5 prochaiens années de travail :E

Reply

Marsh Posté le 01-02-2009 à 01:43:40    

Et oui, la plupart des problèmes en physique aboutissent à des résolutions numériques de systèmes linéaires creux issus d'équations aux dérivées partielles. D'ou l'importance d'avoir des outils performants sur GPU de résolution de systèmes linéaires grands et CREUX. Il manque toujours une adaptation GPU de la méthode GmRes utilisée dans les cas ou on a affaire a une matrice non symétrique et non définie positive (Navier - Stokes par exemple). Je commence a m'attaquer a ce probleme ...


Message édité par OursonThesard le 01-02-2009 à 01:44:23
Reply

Marsh Posté le 01-02-2009 à 09:38:23    

Ben ca va, ca devrait pas etre ininteressant, tout ca. :)
Au passage, un article hardware.fr sur l'architecture Tesla:
http://www.hardware.fr/articles/72 [...] ation.html

 

4.32 Tflops annonces pour le rack 4 GPU. [:le kneu]


Message édité par el muchacho le 01-02-2009 à 09:53:34

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 01-02-2009 à 10:24:28    

Olivier51 a écrit :

Tiens ayant attrapé un morceau de conversation récemment au boulot parlant justement du futur des GPGPU; un des intervenants a sorti qu'Intel d'ici quelques années rendra ces processeurs graphiques caduques. Je ne peux pas en dire plus n'ayant pas du tout suivi la conversation. Mais la question reste ouverte ... aura-t-on toujours besoin d'un périphérique dédié pour le graphique dans le futur ?

 

Faisait-il référence au futur GPU d'Intel : Larrabee

 

Un article lié : Intel: CUDA will be just a 'footnote' in computing history
Intel has revealed that it sees no place in the future of computing for general purpose GPU (GPGPU) programming models such as Nvidia’s CUDA
‘The problem that we’ve seen over and over and over again in the computing industry is that there’s a cool new idea, and it promises a 10x or 20x performance improvements, but you’ve just got to go through this little orifice called a new programming model,’

 

Pur pipeau marketing de la part d'Intel. Leur machin s'apparente a une tentative de rattraper le Cell d'IBM. Rien a voir avec les GPU de Nvidia qui pour les operations massivement parallelisables risquent fort de rester loin devant un long moment encore.


Message édité par el muchacho le 01-02-2009 à 10:27:08

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 01-02-2009 à 10:57:33    

Drapal [:blueflag]
 
Certains ont-ils déjà eu des retours d'expériences concernant le développement CUDA conjointement avec MATLAB ?
Ca fait un moment que je compte me lancer dans l'utilisation des plugins Cuda pour accélérer le calcul des FFT (le gain est extrêment intéressant, x 200 ~ pour une GTX 280 par rapport à un CPU  [:cerveau meriadeck] ), mais j'en suis pour l'instant à l'aspect documentation.
 


---------------
Easy Ridin'  ⎝⏠⏝⏠⎠  
Reply

Marsh Posté le 01-02-2009 à 11:25:41    

le x200 ets annoncé sans prendre ne compte le trasnfert via PCI-X beware donc à ces annonces.
 
Pour CUDA dans MAtlab y a un truc de Barcelona qui s'appelle Flame.

Reply

Marsh Posté le 01-02-2009 à 19:39:17    

Ou ca, mais c'est commercial : http://www.accelereyes.com/

Reply

Marsh Posté le 02-02-2009 à 02:13:18    

Très intéressant ce Topic!
Étant en 1ère année d'école ingé télécoms, j'ai pris comme projet de fin d'année un sujet traitant CUDA. Je ne me suis pas encore fixé sur le sujet mais ce sera très probablement une simulation utilisant la bibliothèque FFT (ce qui m'arrange puisque je fais du télécoms  :whistle: ).

 

Tout ça est bien beau sauf que les tutos qu'on trouve sur le net ainsi que la documentation officielle sont en anglais  :sweat: . Second point noir je ne sais pas si on peut utiliser un EDI quelconque pour travailler avec CUDA (genre Code:Blocks).

 

En tout cas, le lien donné plus haut m'a bien aidé alors  :jap: .

 

je posterai de mes nouvelles dès que j'avance un petit peu.

Message cité 1 fois
Message édité par metamasterplay le 02-02-2009 à 05:06:18

---------------
[Topic Unique] [Gaming & Multimédia] Les portables du moment
Reply

Marsh Posté le 02-02-2009 à 08:39:48    

Une question toute bête :$, pourquoi faut-il utiliser un compilateur spécifique ? Il n'aurait pas pu donner accès à leur carte graphique via un ensemble de librairie et langage C standard ?

Message cité 1 fois
Message édité par frenchtoucco le 02-02-2009 à 08:40:02

---------------
je connais tout, je ne sais rien, seule certitude, à vouloir trop on finit par tout perdre.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed