Un CPU NVIDIA... ou un GPU à 20 téraflops ?
L'une des questions les plus intéressantes concerne bien entendu la possibilité pour NVIDIA de concevoir un processeur x86. À ce propos Bill Dally évoque l'expertise technologique de NVIDIA qui permet à la firme de faire « tout ce qu'elle veut », si elle devait concevoir un CPU. Bien sûr, Bill Dally élude peut être un peu trop rapidement l'aspect légal, NVIDIA ne disposant pas de licence pour concevoir un tel processeur. La question du processeur est assez centrale en ce moment puisque deux visions s'opposent : celle de NVIDIA qui voit la puce graphique comme un accélérateur capable bien entendu d'effectuer des rendus 3D, mais aussi et surtout de soulager le CPU de certaines tâches massivement parallèles. L'autre vision, c'est bien entendu celle d'Intel : le fondeur n'est pas forcément en désaccord quant à l'usilisation du GPU pour accomplir certaines tâches, mais le CPU doit rester la clef de voûte.
Pour Bill Dally, « les performances du CPU n'augmentent plus. Historiquement, le CPU voyait ses performances augmenter de 6% par an entre 1980 et 1990, mais aux alentours des années 2000 cette tendance s'est arrêtée pour diverses raisons. (NDLR: Bill Dally évoque le cas du Pentium 4 et oublie l'arrivée des processeurs multi-coeurs) Aujourd'hui, les performances des GPU continuent d'augmenter de 15% par an. En 2015, nous estimons que les GPU offriront 20 fois plus de puissance qu'aujourd'hui. Avec des puces offrant 1 teraflop de puissance de calcul, vous pouvez vous attendre à 20 teraflops d'ici à 2015 avec une bande passante mémoire de l'ordre du téraoctet par seconde ! »
CPU ou GPU... Entre les deux mon cœur balance !
Interrogé sur l'adéquation du GPU à exécuter des taches parallèles, Bill Dally répond sans grande surprise que la puce graphique reste plus adaptée que le processeur pour ce type d'exercices : « afin d'exécuter des applications parallèles, vous avez besoin d'un circuit optimisé pour le débit le plus élevé, offrant le plus de performance par Watt, le plus de performance par millimètre : ce n'est pas le cas du CPU. Les CPU sont très inefficaces en matière de performance par watt. »
Et de s'aventurer à comparer la surface de la puce consacrée aux différents cœurs d'exécution entre un CPU et un GPU, rappelant :
« Une GeForce série GT200 compte plus de 240 cœurs chacun des cœurs consommant moins de 1 Watt alors qu'un cœur d'exécution typique consomme dans la dizaine de watts. »
Naturellement comparer une unité d'exécution scalaire, en l'occurrence un cœur d'exécution d'une GeForce GT200, à un coeur de processeur classique est plus qu'osé puisque la logique et la puissance des deux sont sans comparaison.
Bientôt CUDA sur votre Radeon ? Mais pas d'Intel Ct !
Au sujet de CUDA, l'architecture unifiée sous-jacente permettant d'exploiter la puissance et les fonctionnalités du GPU, Bill Dally a notamment déclaré : « contrairement à OpenCL qui est essentiellement une interface driver, les extensions CUDA pour le langage C sont les plus pratiques pour développer des applications tirant profit du GPU. » Reste que l'industrie semble se tourner vers OpenCL et que NVIDIA lui même vient de mettre en ligne ses premiers pilotes Open CL pour Windows !
Confronté à la question de la non compatibilité de CUDA avec des puces graphiques tierces, CUDA ne fonctionnant qu'avec les GeForce les plus récentes, Bill Dally a pu indiquer : « je pense que dans le futur, vous pourrez exécuter les programmes écrits en C avec les extensions CUDA sur un plus grand nombre de plate-formes. Il existe des projets pour faire fonctionner CUDA sur d'autres plate-formes. »
À la question de savoir si Ct, les extensions C++ d'Intel pour le graphisme seront prises en charge par les GeForce, Bill Dally répond sans détour par la négative : « des dizaines de milliers de développeurs écrivent des programmes CUDA. Des centaines d'universités dispensent des sessions sur CUDA. Il y a très peu de gens qui vont coder en Ct, des gens qu'Intel payera. (NDLR : NVIDIA n'offre pas de compensation aux développeurs ?) On ne voit pas de demande massive allant dans ce sens pour le moment »
Des cœurs partout ! Quid de DirectX ?
Alors que Tim Sweeney, développeur et fondateur d'Epic Games, semble embrasser la vision d'Intel et de Larrabee, la question de la pertinence de DirectX, l'API fétiche de Microsoft se pose. Sans répondre directement à la question... qui était de savoir si NVIDIA pensait que DirectX allait un jour disparaître Bill Dally évoque :
« Les GPU ressemblent de plus en plus à des CPU alors que leur usage se fait de plus en plus généraliste. À l'avenir, nous aurons une puce hétérogène à usage multiple, avec quelque cœurs en série et pleins de cœurs parallèles. Mais je pense que nous aurons toujours un middleware que les développeurs de jeux utiliseront. Qu'il s'agisse d'une API, d'une bibliothèque ou d'autre chose d'intermédiaire qu'on appellera comme on le souhaite... »
Et quid du jeu d'instructions ?
Faisant référence à Larrabee, le projet de puce graphique d'Intel dont le jeu d'instructions sera le x86, nous avons rappelé à Bill Dally que l'une des différences entre un GeForce et Larrabee sera précisément le jeu d'instructions ! Réponse :
« Le jeu d'instructions... ne compte pas ! Dans bien cas c'est une obstruction à l'innovation. Il empêche d'optimiser l'architecture des ordinateurs pour les rendre plus efficaces. Ce qui est vraiment important c'est de prendre les applications et de les optimiser pour les faire fonctionner le plus efficacement possible : c'est possible avec presque n'importe quel jeu d'instructions. »
Là encore si dans l'absolu, Bill Dally est dans le vrai, le système d'exploitation numéro un du marché, en l'occurrence Windows, est développé en x86 : pour toucher le grand public il faut donc... développer en x86.
Qu'en est-il du ray-tracing ?
Aujourd'hui, tous les jeux vidéos utilisent le même mode de rendu 3D dit de rasterisation consistant à représenter en deux dimensions une scène 3D. À l'avenir, il se pourrait que cette technique soit remplacée par le ray-tracing, une méthode plus ambitieuse qui consiste à lancer des rayons : le parcours de la lumière est simulé de la scène vers la caméra.
Particulièrement gourmand en ressources, le ray-tracing est aujourd'hui réservé à des applications industrielles. Toutefois, Intel tente de mettre en avant le ray-tracing avec sa future puce graphique Larrabee. À ce sujet, Bill Dally déclare : « je pense que dans les années à venir nous nous dirigerons vers le graphique hybride. Ce qui pourra être rastérizé le sera comme aujourd'hui alors que des effets comme la lumière se réfléchissant, les ombres douces, les surfaces transparentes s'afficheront en Ray-Tracing. »
Et de rappeler que NVIDIA a déjà fait des démonstrations de rendu temps réel en Ray-Tracing.
Que penser des processeurs avec graphique intégré (cf. AMD Fusion notamment) ?
Petit à petit, AMD et Intel s'orientent vers la mise au point de processeurs intégrant un coeur graphique. Qu'en pense NVIDIA alors que cela compromettrait sérieusement les chances de commercialiser des chipsets avec coeur graphique comme actuellement ?« Je pense que les CPU avec GPU intégrés, se justifient par le fait qu'il est plus économique de mettre deux choses sur un seul die. Sur le segment haut de gamme du graphisme, cela n'a en revanche pas de sens. Personne ne se plaint qu'une puce graphique haut de gamme soit trop rapide, au contraire ! L'ajouter dans le processeur ralentirait la 3D haut de gamme. Les gens préfèrent avoir, sur le haut de gamme, un processeur évolué et une carte graphique haut de gamme. Sur l'entrée de gamme en revanche cela a du sens. Cela reproduit d'une certaine manière ce que nous proposons avec Tegra qui regroupe, sur une puce, un processeur ARM et une solution graphique. »
Un partenariat avec Global Foundries ?
Alors que NVIDIA fait confiance à TSMC depuis des années pour fabriquer ses puces graphiques, avec plus ou moins de succès, la firme pourrait profiter de l'arrivée d'un nouvel acteur, Global Foundries, pour revoir ses partenariats de fabrication. Rappelons que Global Foundries est l'entité créée depuis qu'AMD s'est séparé de ses usines.
« Nous explorons toutes les options en terme de fabrication. Mais nous n'avons pas de motivation pour changer la façon dont nous fabriquons nos puces. »
Interrogé sur le SOI, l'un des procédés mis en œuvre par Global Foundries : « nous ne voyons pas de vrais avantages au SOI (NDLR : Silicon On Insulator). Cette solution a un coût pour des petits avantages pas vraiment importants »
Des infos sur le GT300 ? Non, mais quelques pistes !
Bien que Bill Dally ait refusé de répondre aux questions sur les choix technologiques opérés avec le GT 300, la prochaine puce graphique de NVIDIA, un de nos confrères, de nationalité belge, a choisi une approche plus subtile en interrogeant l'intéressé sur ce qu'il aime et ce qu'il regrette dans la génération actuelle de puces NVIDIA à propos des capacités GPGPU :
« Ce que je préfère, comme beaucoup, ce sont les très bonnes performances et l'excellent ratio performance par watt de nos GPU. Je pense que les gens aimeraient voir plus de généralité en obtenant de bonnes performances avec un nombre plus petit de threads. Pour nos puces futures, l'un de nos objectifs est d'améliorer les performances simple threaddes puces en gardant le processeur occupé avec un plus petit nombre de processus.
La GT200 dispose de 240 processeurs de flux, pour conserver ces processeurs occupés il nous faut au minimum plusieurs milliers de processus, car un thread ne peut garder à lui seul un cœur occupé. Nous souhaiterions à l'avenir améliorer le ratio de threads par cœur car cela permettra d'étendre le nombre d'applications pouvant tourner sur le GPU. »
Terminons par Larrabee !
Enfin... NVIDIA a tenu à clore cette table ronde par un mot sur Larrabee, le projet de puce graphique x86 par Intel :
« Tout d'abord Larrabee n'existe pas encore (NDLR : du moins il n'est pas encore commercialisé). D'après ce que nous savons de Larrabee, nous avons des avantages significatifs. En terme de performances graphiques, Intel a choisit de proposer des fonctions fixes en hardware pour le filtrage des textures mais pas pour la rastérization ou le compositing : c'est un inconvénient certain pour eux en terme de performance par watt et d'utilisation de la surface de la puce. On pense également que le jeu d'instructions x86 les limitera significativement en terme de GPGPU sans vraiment leur apporter les avantages de la compatibilité. Tout ce qui est en code x86 n'est pas suffisamment paralléliser pour les nombreux cœurs de Larrabee ni pour tirer avantage des extensions SIMD de Larrabee. Des extensions différentes du SSE... Donc les applications existantes ne peuvent utiliser directement Larrabee ! Ils auront donc à traiter un grand nombre d'opérations de décodage des instructions x86 au niveau de la puce, ce qui ne nous semble pas vraiment rentable.
De plus ils n'ont que 4 threads par cœur (NDLR : dans le cas de Larrabee il s'agit de threads matériels non comparables avec les batchs des unités d'execution) : d'expérience, ce n'est pas assez avec les temps de latence mémoire élevés des applications travaillant sur des larges flux ! Le risque est que les cœurs passent une bonne partie de leur temps à attendre des informations de la mémoire. En se basant sur ces observations, nous pensons que nos GPU tant en matière de 3D que d'usage générique demeureront plus compétitifs que Larrabee, lorsqu'il verra le jour. »
Notre avis ?
En définitive, et c'est fort dommage, cet entretien ne nous apporte pas grand-chose de croustillant. Alors que nous espérions des informations sur la prochaine génération de puces graphiques NVIDIA, nous repartons bredouille ou presque. L'impression de voir NVIDIA justifier ses choix vis à vis de Larrabee, un produit concurrent qui n'existe pas encore, est tout de même assez dérangeante.
On retiendra que NVIDIA semble s'intéresser de près à la voie des CPU sans pour autant vraiment nous dire qu'il se lance une bonne fois pour toute dans l'aventure. Dans un autre registre, la foi de NVIDIA en CUDA semble toujours aussi inébranlable : NVIDIA dit étudier l'ouverture de CUDA (l'API, l'extension C ?) a d'autres plateformes (lesquelles ?), alors même qu'Apple semble avoir réussi à emmener l'industrie vers OpenCL. Rappelons que NVIDIA a également indiqué que CUDA (non pas l'extension C, ni l'API, mais « l'architecture CUDA », sous entendu l'architecture de ses cartes GeForce) supportait OpenCL !
- Venez discuter de cet entretien sur le Forum Clubic