Téléchargez l'application
Tom's Hardware sur l'App Store
Toute l'actu informatique de référence sur votre iPhone
Oui Non

Evolution du GPGPU Computing

par

Que pouvez-vous nous dire à propos de CUDA en tant qu’architecture par rapport au compilateur CUDA pour C ?

CUDA est l’architecture hardware propre à NVIDIA pour l’informatique parallèle. Nous fournissons un ensemble d’outils pour programmer l’architecture CUDA, parmi lesquels compilateur, débogueur, profiler, librairies ainsi que d’autres informations nécessaires aux développeurs pour arriver à des produits de qualité reposant sur l’architecture CUDA. Cette dernière supporte également les langages standards (C et Fortran avec extensions CUDA dans les deux cas) ainsi que les interfaces de programmation pour le GPU computing comme OpenCL et DirectX.

Voici un diagramme pour y voir plus clair :

OpenCL a l’avantage d’un support multiplateforme, mais on y perd certains outils automatisés propres à CUDA comme la gestion mémoire. On a l’impression qu’en tant que chercheur, vous souhaiteriez baisser les coûts de développement initiaux tout en visant une compatibilité maximale. Comment appréhendez-vous ce défi ?

Il y a bien entendu des compromis à faire pour aboutir à une solution compatible sur plusieurs plateformes/ pour plusieurs fabricants. NVIDIA travaille depuis le début avec Apple et le groupe de travail OpenCL pour assurer une très bonne interface de programmation pour le GPU computing au niveau des pilotes, en particulier pour les produits NVIDIA. En outre, nous allons très certainement créer des extensions supplémentaires pour favoriser l’utilisation d’OpenCL avec les cartes graphiques NVIDIA.

Nous améliorons aussi sans cesse notre compilateur C et l’environnement de développement pour nos produits : quelques extensions simples suffisent à l’utilisation de C sur les cartes graphiques NVIDIA. Si vous préférez Fortran, il y a aussi un compilateur pour l’utiliser. Lorsque Windows 7 sortira, les utilisateurs et développeurs auront accès à l’API DirectCompute, laquelle partage bon nombre de concepts avec nos extensions C. Par ailleurs nous avons fait parvenir un pilote DirectCompute aux principaux développeurs en décembre dernier. Ce sont en somme les avantages liés au choix de composants NVIDIA : nous supportons l’ensemble des langages et interfaces de programmation incontournables.

Vos travaux ont commencé à l’époque du GeForce 5 et de l’eau a coulé sous les ponts depuis. Bien entendu, les produits récents sont beaucoup plus puissants, mais quelles sont plus précisément les capacités qui sont apparues pendant cette période (la compatibilité IEEE-754 par exemple) ? Qu’est-ce qui était impossible à l’époque et faisable aujourd’hui ?

Les premiers GPU programmables n’étaient que des unités de calcul à virgule flottante simplistes. Pas d’entiers ni de bits, pas plus que d’accès général à la mémoire GPU, pas de communication possible avec les processeurs de traitement avoisinants. La première innovation majeure a été de créer les composants nécessaires au support de C, gérant intégralement les pointeurs et types de données natives.

Une autre innovation clé a été l’ajout de mémoire propre au GPU qui, partagée entre les processeurs de traitement, leur permet de communiquer entre eux et d’échanger des résultats, améliorant ainsi l’efficacité des algorithmes. De plus, ceci permettait aux programmeurs de stocker temporairement et traiter des données à proximité des processeurs,  plutôt que de remonter jusqu’à la DRAM. La mémoire commune a eu pour effet d’améliorer la librairie de traitement du signal 20 fois mieux qu’une implémentation OpenGL similaire.

Enfin, l’arrivée de composants capables de calculs à virgule flottante à double précision doit aussi être considérée comme un grand pas en avant pour les GPU, ceux-ci devenant des unités de calcul à haute performances capables de répondre à des besoins d’une précision extrême. Il faut aussi noter les améliorations quant à la fréquence et à la taille de la mémoire embarquée (jusqu’à 4 Go par unité de traitement et 16 Go pour notre serveur Tesla 1U), qui permettent aux GPU NVIDIA d‘affronter des problèmes à plus grande échelle.

Qu’en est-il du compilateur ? Quel genre d’optimisations et d’innovations ont été apportées au fil du temps ?

Nous avons très vite pris conscience de la nécessité d’avoir un compilateur mondialement reconnu : les programmes de GPU computing tendent à être plus lourds, plus complexes et tirent parti d’optimisations plus poussées. Notre concurrent, le CPU, a nécessité presque 40 ans de travail pour comprendre cela. Le compilateur est basé sur les technologies de l’Edison Design Group, qui produit des compilateurs C depuis 20 ans, ainsi que le cœur du compilateur Open64 qui a été conçu pour les processeurs Itanium à la base. Notre technologie alliée à l’équipe de compilateurs de premier plan qui a été réunie sont autant d’éléments clés dans la réussite de NVIDIA.

Pour le moment, la plupart des GPU sont très rapides en mathématiques à simple précision, mais nettement moins lorsqu’il s’agit de double précision. Outre le fait des économies d’échelle liées à la production, les GPU auront-ils encore un rapport prix/performances « meilleur que celui du CPU » à l’avenir ? Concrètement, pourriez-vous faire des GPU spécifiquement optimisés pour la double précision tout en maintenant de faibles coûts de production ?

Vu que le marché du GPU computing est clairement sur la pente ascendante, je pense que vous verrez de plus en plus d’applications aux mathématiques en double précision. Les composants dédiés à la double précision que nous avons commercialisé l’année dernière n’étaient que le point de départ vis-à-vis de ce que je vois comme un investissement croissant dans le GPU computing, aussi bien pour NVIDIA que pour l’industrie en général.

Que pensez-vous de Larabee ? De la Stream Architecture d’AMD ? Du Cell et du Zii ?

Je vois Larabee comme étant d’une part une reconnaissance de ce que le GPU a accompli jusqu’ici, et d’autre part l’acceptation des limites du CPU. Là où les CPU ont essayé de prendre un modèle de programmation séquentiel patrimonial et d’exploiter le moindre bit de parallélisme, les GPU ont été crées pour le rendu 3D dont le parallélisme par nature est évident. Le parallélisme massif est partie intégrante du modèle de programmation élémentaire du GPU.

Au final, ce sont l’accessibilité et la productivité d’un modèle de programmation qui font passer une architecture du stade de nouveauté à un succès. On se bat tous contre une montagne de code patrimonial, désuet. Le but est de permettre très facilement aux GPU NVIDIA des gains de performances majeurs à l’aide d’un modèle de programmation aussi simple que familier.

Partager:
19
Commentaires
X
Valider

Commentaires
Lire les commentaires sur le forum
magellan 29/09/2009 10:58
Masquer
-1+

Excellente idée, d'autant plus qu'il est utile d'avoir le discours des experts (en tout cas le discours de ceux qui font l'actualité... vu le nombre "d'experts" autoproclamés).

Enfin bon, je sais aussi qu'on va avoir de jolies batailles rangées, rien qu'avec les sujets touchant Apple ;) Bonne chance aux modos pour gérer les crises de nerfs à venir:D

[]<--- déjà dehors...

bebRito 29/09/2009 10:59
Masquer
-0+

Toujours au top Tom's !!
C'est vraiment une très bonne initiative ces interviews High-Tech.

Merci :D

tagadavroum 29/09/2009 11:54
Masquer
-0+

Serait-il possible d'ajouter la possibilité de télécharger ces articles en divers formats (pdf..) ?

turlupin en ptard 29/09/2009 11:58
Masquer
-0+

Citation :en s’exprimant directement à vous
en s’adressant directement à vous

lordphoenix 29/09/2009 13:52
Masquer
-2+

Je trouve l'idée intéressante mais j'espère que vous veillerez à clairement indiquer les responsabilités et l'entreprise au sein de laquelle ces experts travaillent car il est fort probable que cela puisse influencer énormément les propos de ces messieurs.
En espérant que cela ne servira pas seulement à relayer simplement le discours marketing des professionnels du secteurs.

Florian c 29/09/2009 14:27
Masquer
-0+

Les appartenances seront évidemment clarifiées pour chaque intervenant via un encadré en en-tête.

LVM 29/09/2009 15:19
Masquer
--2+

Je lui aurais posé la question du pourquoi du support de DirectCompute par Nvidia ?

Après tout il ne s'agit que d'une API bricolée à la va-vite pour contrer OpenCL... Qui a en plus le défaut d'être réservé à Windows et tout ce qu'il y a de plus non-standard et propriétaire. Alors qu'au contraire Apple a dès le départ choisi d'ouvrir OpenCL à tous...

Bref DirectCompute fait double-emploi et trimballe ces problèmes pour n'offrir rien de plus... Pourquoi Nvidia accepte il alors de perdre du temps avec ça ?
Ne pouvaient-ils pas s'entendre avec AMD pour refuser de d'intégrer DC ?
Franchement les deux avaient tout à y gagner à ne pas se compliquer la vie pour rien et supporter tous les caprices de MS.

ultrabill 29/09/2009 17:03
Masquer
-2+

Citation :

Je lui aurais posé la question du pourquoi du support de DirectCompute par Nvidia ?


Element de réponse :
http://www.nvidia.fr/object/directcompute_fr.html
Citation :L'API DirectCompute de Microsoft est une nouvelle API de GPU Computing qui tourne sur l'architecture CUDA actuelle de NVIDIA
Quand on vois ce qu'est devenu OpenGL face à DirectX, NVIDIA aurait eu tort de lui tourner le dos ;)
Citation :

Après tout il ne s'agit que d'une API bricolée à la va-vite pour contrer OpenCL... Qui a en plus le défaut d'être réservé à Windows et tout ce qu'il y a de plus non-standard et propriétaire. Alors qu'au contraire Apple a dès le départ choisi d'ouvrir OpenCL à tous...


Tous = 5% du monde. Merci Apple, trop généreux...
Citation :

Bref DirectCompute fait double-emploi et trimballe ces problèmes pour n'offrir rien de plus... Pourquoi Nvidia accepte il alors de perdre du temps avec ça ?


Pour avoir des clients [:spamafote]
Citation :

Ne pouvaient-ils pas s'entendre avec AMD pour refuser de d'intégrer DC ?
Franchement les deux avaient tout à y gagner à ne pas se compliquer la vie pour rien et supporter tous les caprices de MS.


OpenGL et Direct 3D, OpenAL et DirectSound, OpenCL et DirectCompute : tout ce petit monde cohabite sans problème. N'ayant pas Windows, tu ne peux pas le savoir.

MS développe sa tambouille sans interdire aux autres de développer des solutions similaires... on peux pas en dire autant coté Apple ;)

Serious Gilles 29/09/2009 17:52
Masquer
-0+

LVM :
Je lui aurais posé la question du pourquoi du support de DirectCompute par Nvidia ?Après tout il ne s'agit que d'une API bricolée à la va-vite pour contrer OpenCL... Qui a en plus le défaut d'être réservé à Windows et tout ce qu'il y a de plus non-standard et propriétaire. Alors qu'au contraire Apple a dès le départ choisi d'ouvrir OpenCL à tous...Bref DirectCompute fait double-emploi et trimballe ces problèmes pour n'offrir rien de plus... Pourquoi Nvidia accepte il alors de perdre du temps avec ça ?Ne pouvaient-ils pas s'entendre avec AMD pour refuser de d'intégrer DC ?Franchement les deux avaient tout à y gagner à ne pas se compliquer la vie pour rien et supporter tous les caprices de MS.



Quelle est l'api 3d la plus utilisée dans le monde du jeu video console actuellement ?
DirectX 9 (PC)
DirectX 9+ (360)
LibGCM (PS3)

LibGCM, c'est une API bas niveau fournie par nvidia pour exploiter le GPU de la PS3 (nommé RSX). C'est une API très proche de DirectX 9 dans sa philosophie. Bien sur dans le sdk de la PS3, Sony fourni un driver OpenGL mais qui est développé au dessus de LibGCM. Tout les développeurs sérieux (id, epic, crytek etc, préfèrent court-circuiter cette couche et taper directement dans le bas niveau).

Résultat, lorsqu'un moteur 3D est développé, ses interfaces de haut niveau pour le rendu 3d ressemblent comme 2 gouttes d'eau à du DirectX, avec le bas niveau qui tire sur l'api de la plateforme.

Le problème d'OpenGL c'est la fiabilité des drivers. Les développeurs passent et continuerons de passer par du DirectX (9-10-11) pendant un petit moment. Il était normal d'intégrer DirectCompute avec DirectX pour eux.

Utiliser OpenCL avec du DirectX est beaucoup beaucoup moins propre (même si c'est possible) et surtout je suis pas sur que ça soit aussi souple/performant que l'association Direct3D + DirectCompute.

Maintenant réfléchi 5 min, si comme tu dis pourquoi nvidia et ati refusent pas de supporter DirectCompute?, c'est juste qu'il y a un gros marché et un avenir, sinon il l'aurait pas fait. (comme nvidia a plus ou moins bypasser DirectX 10.1)

Le business avant tout.

3ric 29/09/2009 21:51
Masquer
--3+



Merrimac - Stanford Streaming Supercomputer Project

A Streaming Supercomputer
Bill Dally, Pat Hanrahan,and Ron Fedkiw
September 18, 2001
http://merrimac.stanford.edu/publi [...] epaper.pdf



General-Purpose Computation on Graphics Hardware


The programming systems below attempt to provide GPGPU functionality while hiding the GPU-specific details from the programmer.

- Brook (Ian Buck, 2002)
This specification was developed with the assistance of Mattan Erez, Stanford University, the Stanford Streaming Supercomputer project, Peter Mattson, Eric Schweitz, Kenneth Mackenzie, Reservoir Labs
http://merrimac.stanford.edu/brook/

Brook for GPUs is a compiler and runtime implementation of the Brook stream program language for modern graphics hardware [Shader Model 2.0 = R300, NV30].


- Brook+
Brook+ is an implementation by AMD of the Brook GPU spec on AMD's Compute Abstraction Layer (CAL) with some enhancements
http://developer.amd.com/gpu_assets/AMD-Brookplus.pdf

ATI, SIGGRAPH 2006 (août), Data Parallel Virtual Machine (DPVM) : Expose relevant parts of the GPU, Hide all other graphics-specific features, Provide direct communication to device, Eliminate driver implemented procedural API
(Octobre 2005 ATI X1K architecture)
http://developer.amd.com/media/gpu_assets/dpvm_e.pdf
http://www.graphicshardware.org/pr [...] d-gh06.pdf

C'était en juillet 2006 qu'AMD avait annoncé l'acquisition d'ATI (finalisée en octobre 2006 au prix d'un endettement record)



- Scout compiler
http://gpgpu.org/static/articles/scout04.pdf
http://www.cct.lsu.edu/~estrabd/LA [...] /inman.pdf



- Accelerator (Microsoft Research)
Accelerator is written in C# and can be used with any .NET language. As such, it is a very effective and straightforward way to implement GPGPU algorithms.
http://research.microsoft.com/pubs [...] 05-184.pdf (ACM 2006)


- CGiS (Compiler Design Lab, Saarland University, Saarbrücken, ALLEMAGNE) : Like Brook, CGiS provides stream data types, but instead of explicit kernels that run on the GPU, the language invokes GPU computation via a built-in data-parallel forall operator.


- Glift template library


- CUDA (février 2007 : NVIDIA annonce la disponibilité de la version bêta du SDK de CUDA)
(Novembre 2006 GeForce 8800)
Ian Buck: "En 2005, j’ai donc intégré NVIDIA pour travailler sur CUDA. A l’époque, nous étions deux : un ingénieur et moi-même."


- OpenCL (2008): unified programming model for all CPU, GPU, Cell, DSP and other processors in a system


- Direct Compute (2009)


1815 30/09/2009 23:26
Masquer
-1+

Citation :

Citation :en s’exprimant directement à vous
en s’adressant directement à vous




master capello a pris sa retraite... y'a un poste à pourvoir sur FR3. :lol:

1815 30/09/2009 23:30
Masquer
-1+

il fallait encore qu'il ramène sa fraise sur apple... stune pathologie, ça.
y'a pas un psy dans la salle?

turlupin en ptard 01/10/2009 11:36
Masquer
--1+

Citation :

master capello a pris sa retraite... y'a un poste à pourvoir sur FR3. :lol:


:sarcastic: :pfff:
Je me contente d'intervenir dans un domaine où je suis compétent... et je renouvelle ma suggestion de remplacer le lien sur le nom de l'auteur dans la page de la news qui renvoie... à la page de la news (ce qui est indispensable, évidemment ! :sarcastic: ) par un lien vers les MP de l'auteur.

Yannick G 01/10/2009 23:20
Masquer
-0+

turlupin en ptard :
Je me contente d'intervenir dans un domaine où je suis compétent... et je renouvelle ma suggestion de remplacer le lien sur le nom de l'auteur dans la page de la news qui renvoie... à la page de la news (ce qui est indispensable, évidemment ! ) par un lien vers les MP de l'auteur.



Bizarre, moi ça m'affiche une page "contact" où je peux poser une question à l'auteur :??:

Toi, t'as encore des problèmes avec ton FF :o

bebRito 02/10/2009 10:13
Masquer
-0+

Citation :

Bizarre, moi ça m'affiche une page "contact" où je peux poser une question à l'auteur :??:

Toi, t'as encore des problèmes avec ton FF :o



Je plussois, ces liens fonctionnent ...

turlupin en ptard 02/10/2009 10:35
Masquer
-0+

Citation :

Bizarre, moi ça m'affiche une page "contact" où je peux poser une question à l'auteur :??:

Toi, t'as encore des problèmes avec ton FF :o



En fait, échaudé par de précédentes expériences je ne cliquais pas sur le lien (c'est le côté paresseux :D ), me contentant de lire le lien qui donne ceci : http://www.presence-pc.com/actuali [...] ts-36592/#

soit l'adresse de la page plus /#, ce qui ressemble à une "ancre" HTML plus qu'autre chose. M'enfin...

Ce lien ne mène d'ailleurs pas au MP de l'auteur de la news mais à un contact avec la "rédaction" du site.

Je suppose qu'il y a un tri automatique derrière pour faire suivre...

Désormais je tâcherai de l'utiliser.

bebRito 02/10/2009 10:50
Masquer
-0+

Citation :

En fait, échaudé par de précédentes expériences je ne cliquais pas sur le lien (c'est le côté paresseux :D ), me contentant de lire le lien qui donne ceci : http://www.presence-pc.com/actuali [...] ts-36592/#

soit l'adresse de la page plus /#, ce qui ressemble à une "ancre" HTML plus qu'autre chose. M'enfin...

Ce lien ne mène d'ailleurs pas au MP de l'auteur de la news mais à un contact avec la "rédaction" du site.

Je suppose qu'il y a un tri automatique derrière pour faire suivre...

Désormais je tâcherai de l'utiliser.



[TOTALEMENT HORS SUJET]

En regardant la source, le lien est fait comme ça:
Ca renvoit à un formulaire de type post:
Code :





donc normal qu'on ne voit pas le lien directement, mais il y a bien des paramètres ... ;)
[/TOTALEMENT HORS SUJET]

turlupin en ptard 02/10/2009 14:00
Masquer
-0+

Citation :

[TOTALEMENT HORS SUJET]


Un HS utile ça n'est plus tout à fait un HS. Merci ! :)

bebRito 02/10/2009 14:09
Masquer
-0+

Citation :

Un HS utile ça n'est plus tout à fait un HS. Merci ! :)


:D tant mieux et avec plaisir ! (je préfères faire de la prévention :whistle: )

Les offres du moment

Newsletters


OK