NVIDIA GeForce GTX 280 : la nouvelle bombe ?

16 juin 2008 à 15h00
0

Une architecture unifiée de seconde génération

Vous l'aurez tout de suite noté, la petite dernière de NVIDIA profite d'une toute nouvelle appellation commerciale. Exit, les séries GeForce 9, et bienvenue aux GeForce de la série 200. Avec cette nouvelle nomenclature, NVIDIA essaie de clarifier ses gammes et promet de ne pas commettre les erreurs du passé avec des déclinaisons aussi nombreuses qu'obscures : on jugera sur pièce. En attendant, le GeForce GTX 280, nom de code G200, pouvait difficilement figurer dans la famille GeForce 9 puisque son architecture est sensiblement différente.

NVIDIA profite en effet du GeForce GTX 280 pour lancer sa seconde génération d'architecture graphique unifiée. Avec le G80, qui a donné naissance aux GeForce 8 et GeForce 9, NVIDIA avait jeté les bases de sa première architecture graphique unifiée, une architecture où les anciennes notions de pixels pipelines ou d'unités de vertex n'existent plus. Plutôt que de segmenter la puce avec des unités fixes spécialisées dans telle ou telle tâche, NVIDIA a en effet pris le parti, tout comme AMD du reste, de doter sa puce d'unités reconfigurables pouvant travailler indifféremment sur tout type de données.

000000DC00395505-photo-nvidia-geforce-8800-pourquoi-unifier.jpg

Le pourquoi d'une architecture unifiée


Ainsi, avec une scène massivement chargée en pixels shaders, plutôt que d'avoir comme avec les anciennes architectures DirectX 9, une partie des unités destinées aux Vertex qui ne servent à rien, toutes les unités du processeur sont ici utilisées pour le traitement des pixels shaders : l'avantage est bien réel et aboutit à une utilisation la plus efficiente possible des ressources de la puce. Des ressources qui peuvent être exploitées aussi bien pour le rendu 3D que pour des calculs plus généraux, le GPU pouvant maintenant être programmé pour un usage autre que le graphique.

Une nouvelle ère pour le GPU ?

0000006401367784-photo-logo-nvidia-cuda.jpg
Depuis plusieurs années déjà, divers chercheurs et mathématiciens tentent d'utiliser la puissance des processeurs graphiques pour effectuer d'autres tâches plus généralistes que les simples rendus 3D : c'est ce qu'on appelle le GP-GPU (general purpose GPU). Les intéressés sont en effet partis du constat qu'à l'inverse des CPU, les puces graphiques ont une architecture massivement parallèle particulièrement adaptée à certains types de calcul (simulations financières, compression vidéo, etc.). Alors que les CPU sont conçus pour offrir les meilleures performances en fonction du flux d'instructions utilisé, et donc exécuter une tâche (ou un thread) le plus rapidement possible, les GPU sont eux conçus pour traiter un maximum de données ou de threads (d'un type certain). Conséquence logique, l'architecture des deux puces est différente : lorsque la plus grande partie des transistors d'un CPU est consacrée à la mémoire cache, une large proportion du GPU est dédiée aux unités d'exécution.

01367854-photo-nvidia-geforce-gtx-280-comparaison-cpu-gpu.jpg

Différence d'architecture entre CPU et GPU


Oui mais voilà, jusqu'à présent, aucun standard n'avait été clairement défini pour exploiter les ressources des GPU, dans un autre contexte que la 3D et le moins qu'on puisse dire est qu'exploiter un GPU comme une unité de calcul est une tâche particulièrement complexe. Les développeurs devaient en effet adapter leur code sous forme de pixel shaders pour utiliser le GPU comme aide au calcul. L'évolution des puces graphiques aidant, ATI et AMD se sont tour à tour penchés sur la question, chacun apportant sa propre solution. Avec le GeForce 8800, NVIDIA introduisait CUDA, sa bibliothèque de développement utilisant un langage assez naturel pour les développeurs, en l'occurrence le C et le C++.

Scindée en une couche logicielle avec un environnement d'exécution d'un côté et un pilote de l'autre, l'API CUDA se veut pratiquement transparente pour le développeur et nécessite naturellement une puce graphique compatible. Avec le GeForce GTX 280, NVIDIA propose diverses améliorations d'ordre architectural pour accélérer le traitement des programmes CUDA tout en prenant en charge, pour la première fois, la double précision, mais nous aurons l'occasion d'évoquer à nouveau le sujet. Pour l'utilisateur, CUDA et les programmes en tirant profit, incarnent la promesse d'une nouvelle ère, celle où la puce graphique assiste le processeur central pour d'autres types de tâches que la 3D. Et NVIDIA a un argument de taille pour aider à la concrétisation de la chose : avec les gammes GeForce 8, GeForce 9 et maintenant GeForce GTX 200, ce sont près de 70 millions de puces graphiques à travers le monde qui peuvent exploiter des programmes CUDA. Qui plus est, la prochaine version de CUDA pourra également s'exécuter sur les processeurs x86.

Deux exemples d'applicatifs utilisant CUDA

Pour accompagner le lancement du GeForce GTX 280, NVIDIA propose deux applications grand public se basant sur son API CUDA. Il y a tout d'abord la version NVIDIA du client Folding@Home. Un temps disponible dans une version fonctionnant avec les cartes graphiques ATI, Folding@Home a été redéveloppé, par l'université de Stanford, pour fonctionner sur les cartes graphiques NVIDIA via CUDA. Le principe est toujours celui du calcul distribué : un serveur envoie aux clients Folding@Home diverses données à traiter et c'est ensuite la carte graphique qui va résoudre les calculs en question.

0000010901367496-photo-nvidia-geforce-gtx-280-folding-home.jpg

Folding@Home tournant sur le GeForce GTX 280


Dans un autre registre, la firme a travaillé avec Elemental Technologies sur le développement d'un convertisseur média logiciel. Baptisé BadaBOOM, celui-ci utilise CUDA et donc les ressources de la puce graphique pour transcoder une vidéo vers le format H.264, divers profils étant du reste proposés (iPhone, iPod, PSP, PS3, Xbox 360, etc.). Attention, il s'agit ici d'une application payante.

000000F501367284-photo-nvidia-geforce-280-gtx-badaboom.jpg

L'encodeur vidéo BadaBOOM d'Elemental


Dans les faits, l'encodage vidéo opéré par BadaBOOM se révèle particulièrement véloce. Nous avons mesuré, chronomètre en main, le temps nécessaire pour encoder une vidéo MPEG2 de 2 minutes au format H.264 avec trois logiciels différents :

01367830-photo-nvidia-geforce-gtx-280-badaboom-bench.jpg


On le voit, BadaBOOM, qui utilise notre carte graphique GeForce GTX 280, est le plus rapide à encoder notre vidéo test. Toutefois il faut tempérer ces bons résultats en précisant que l'encodeur vidéo d'iTunes est mono-threadé et n'utilise donc qu'un seul coeur du processeur alors qu'il nous est très difficile d'opérer les mêmes réglages lors de la compression vidéo, les trois logiciels n'ayant pas un seul réglage en commun.
Modifié le 01/06/2018 à 15h36
0 réponses
0 utilisateurs
Suivre la discussion

Les actualités récentes les plus commentées

De nouveaux modèles climatiques ont été créés... et la situation est pire que prévue
Stallman quitte la Free Software Fundation après la divulgation d'emails évoquant l'affaire Epstein
Ça y est, le Fold est disponible en France... pour 1,6 SMIC (net).
Des défauts de fabrication découverts sur six réacteurs nucléaires en activité en France
OVNI : l'US Navy avoue (enfin) avoir filmé des objets aériens non identifiés
En Californie, Donald Trump tente d’annuler la loi sur les limites d'émissions de CO2
Le TGI de Paris invalide la clause de non-revente de jeux dématérialisés de Steam
Avec sa Model S, Tesla aurait battu le record de la Porsche Taycan sur le circuit de Nürburgring
Les salariés de Microsoft appellent leur direction à cesser d'être
En France, une campagne est lancée contre la

Notre charte communautaire

1. Participez aux discussions

Nous encourageons chacun à exprimer ses idées sur les sujets qui l'intéressent, et à faire profiter l'ensemble de la communauté de son expertise sur un sujet particulier.

2. Partagez vos connaissances

Que vous soyez expert ou amateur passionné, partagez vos connaissances aux autres membres de la communauté pour enrichir le niveau d'expertise des articles.

3. Échangez vos idées

Donnez votre opinion en étayant votre propos et soyez ouverts aux idées des autres membres de la communauté, même si elles sont radicalement différentes des vôtres.

4. Faites preuve de tolérance

Qu'il s'agisse de rédacteurs professionnels ou amateurs, de lecteurs experts ou passionnés, vous devez faire preuve de tolérance et vous placer dans une démarche d'entraide.

5. Restez courtois

Particulièrement lorsque vous exprimez votre désaccord, critiquez les idées, pas les personnes. Évitez à tout prix les insultes, les attaques et autres jugements sur la forme des messages.

6. Publiez des messages utiles

Chaque participation a vocation à enrichir la discussion, aussi les partages d'humeurs personnelles ne doivent pas venir gêner le fil des échanges.

7. Soignez votre écriture

Utilisez la ponctuation, prohibez le langage SMS et les majuscules, relisez-vous afin de corriger un peu les fautes de frappe et de français : trop de fautes n’engagent ni à lire le message, ni à répondre à une question.

8. Respectez le cadre légal

Ne publiez pas de contenus irrespectueux, racistes, homophobes, obscènes ou faisant l'apologie de courants radicaux, qu'ils soient politiques ou religieux. N'utilisez pas plusieurs comptes utilisateurs.

9. Ne faites pas de promotion

Ne profitez pas d'une discussion pour faire la publicité d'un produit, d'un service ou même de votre site web personnel.

10. Ne plagiez pas

Exprimez uniquement vos opinions ou partagez des idées en citant vos sources.

scroll top