Ian Buck nous parle du GPGPU

29/09/2009 à 10:00 par Alan Dang

Rencontre avec Ian Buck

Ian Buck, merci d’avoir pris le temps nécessaire à cette interview. Pouvez-vous vous présenter à nos lecteurs et nous expliquer votre rôle chez NVIDIA ?

Je suis le directeur software du département GPU Computing chez NVIDIA. Mon but est de concevoir et faire évoluer un environnement dédié au GPU computing, ce qui passe par les logiciels système, les outils de développement, la supervision du langage et des compilateurs, les librairies de programmation et enfin les applications cibles et algorithmes. Grâce à une équipe performante, nous développons les logiciels utilisateur autant que nous imprimons la marche à suivre pour l’entreprise en termes de GPU computing.

On imagine bien que vous n’avez pas commencé à vous intéresser au GPU Computing dès votre enfance, à quel moment avez-vous donc eu un déclic ? A Princeton ou Stanford lors de vos études ?

J’ai effectivement commencé à toucher au GPU computing à Princeton lorsque je travaillais sur la convection thermique et la simulation des fluides avec les composants graphiques de l’époque, à savoir un SGI O2 (station de travail Silicon Graphics d'entrée de gamme). Bien que les possibilités fussent alors extrêmement limitées du fait des composants, il était difficile de plaider pour le GPU Computing sur le long terme.

Je suis finalement tombé dans le bain lors de mes études doctorales à Stanford : notre communauté de chercheurs a pris la mesure de l’avancée naturelle de la programmation GPU : les cartes graphiques devenaient alors des unités de calcul dont les applications se faisaient de plus en plus larges. Nous avons rédigé un des premiers articles sur le ray tracing avec les GPU DX9 pour SIGGRAPH (Computing Machinery's Special Interest Group on Graphics and Interactive Techniques) afin de démontrer cet état de fait. Le travail était particulièrement intéressant dans la mesure où les cartes graphiques, composant tout à fait banal, suivaient la loi de Moore mais puissance 3 ! Evidemment, les processeurs n’évoluaient pas au même rythme. Il s’en suivait donc la question suivante : que pourrait-faire un PC s’il avait une multitude de commandes à gérer de pair avec une puissance de calcul supérieure à celle d’aujourd’hui ? Ceci change radicalement la donne en termes d'informatique, de même que la vision de l’informatique, l’intelligence artificielle, le data mining et les graphismes.

Quel a été votre rôle par rapport à Brook ?

Après avoir travaillé sur les possibilités de ray tracing GPU, mes recherches ont évolué vers les modèles pour le GPU computing. Bien d’autres avaient déjà démontré l’utilité du GPU pour une quantité d’applications variées, mais il n’existait pas encore de structure ou modèle de programmation satisfaisant pour appréhender le GPU en tant qu’unité de calcul. Il faut dire qu’à l’époque, il fallait un doctorat en infographie pour porter une application sur le GPU. J’ai donc initié le projet Brook avec le but de définir un langage de programmation pour le GPU computing, lequel faisait abstraction des principes du graphisme pour s’attacher à des concepts de programmation généralistes. Le concept fondamental de la programmation au sein du projet Brook était le « stream », un ensemble d’éléments de données qui nécessitaient un travail similaire. Brook est finalement devenu mon sujet de thèse à Stanford.

Votre travail a commencé par le Merrimac, le supercalculateur de Stanford. En quoi celui-ci diffère-t-il d’un supercalculateur Tesla par exemple ?

Les concepts de programmation modèle issus de Brook pouvaient s’appliquer au-delà des GPU. Ainsi nous avons travaillé sur deux différents types d’implémentation de Brook à Stanford : un pour les GPU et l’autre pour le Merrimac, qui était une architecture développée à l’université pour la recherche. Bon nombre d’idées développées sur le Merrimac ont été un déclic quant à l’utilité du GPU pour l’informatique en général. Par ailleurs, il faut savoir que Bill Dally était le chef de projet Merrimac à Stanford avant de devenir Chief Scientist (Directeur recherche) chez NVIDIA.

Est-ce que CUDA a trouvé ses racines dans Gelato ? Quand est-ce que les premières recherches universitaires sur le GPGGPU ont commencé ? A quand remonte sa première utilisation commerciale ?

J’ai commencé CUDA tout en poursuivant mes recherches à l’université. NVIDIA soutenait déjà mes travaux et voyait clairement l’intérêt à optimiser le GPU computing d’un point de vue matériel. 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. Mais nous avons fait évoluer le projet vers un département à part entière et un des principaux atouts des cartes graphiques NVIDIA actuelles.

Pour ce qui est des éléments chronologiques, www.gpgpu.org fait un bel historique du GPU computing depuis 2002.

Actuellement,  AMD milite pour Brook en tant que langage de programmation principal pour le GPGPU tandis que NVIDIA pousse pour le C avec des extensions CUDA. Comment se comparent les deux en termes de forces/faiblesses ?

En commençant chez NVIDIA, nous avons eu l’opportunité de revoir certaines décisions quant à la conception fondamentale de Brook, lesquelles s’appuyaient assez largement sur ce que les composants DX9 étaient alors capables de faire. Une des principales limitations était due à la mémoire, qui imposait au programmeur de concevoir leur algorithme avec un schéma d’accès mémoire assez limité. L’utilisation de C avec les extensions CUDA a permis d’assouplir ces contraintes puisque le programmeur dispose d’une réserve massive de threads, ce qui lui permet d’accéder à la mémoire comme il/elle le souhaite. Cette amélioration parmi d’autres nous a permis d’implémenter la sémantique complète du langage C sur le GPU.

Liens commerciaux
Commentaires
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+

LVM a écrit :

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 ;)
LVM a écrit :

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...
LVM a écrit :

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]
LVM a écrit :

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+

turlupin en ptard a écrit :

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+

1815 a écrit :

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+

Yannick G a écrit :

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+

Yannick G a écrit :

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+

turlupin en ptard a écrit :

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+

bebRito a écrit :

[TOTALEMENT HORS SUJET]


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

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

turlupin en ptard a écrit :

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: )

Liens commerciaux
Publicité

Les offres du moment

Tout sur les Cartes graphiques
 Derniers articles sur les Cartes graphiques
Tous les articles Cartes graphiques
 Comparatif Cartes graphiques
Tous les comparatifs
 Dernières actualités Cartes graphiques
Toutes les actualités Cartes graphiques

Newsletters


  • Besoin d'aide ? Publiez votre question
  • Publier