Nvidia Fermi : le premier GPU compatible C++ ?
Bon, inutile de s'en cacher, ce mercredi sera une journée Nvidia. Faisant suite à nos informations selon lesquelles Jen Hsun Huang annoncera l'architecture du GT300 ce soir, BrightSideofNews affirme savoir avec quelques heures d'avance quelle sera l'annonce principale de la soirée : le GT300 ne serait plus, il s'appellerait Fermi, et serait le premier processeur de Nvidia capable d'exécuter nativement du code C++.
Nvidia aurait un nouveau nom pour sa puce : un cGPU. Elle contiendrait 3 milliards de transistors, soit environ 1 milliard de plus que le RV870 des Radeon HD 5800. Ses unités de calcul seraient réparties en 16 ensembles (des shaders clusters) de 32 coeurs (des CUDA cores), soit un total de 512. Par comparaison, le GT200 des GTX 285 et 275 n'en a que 240. Au total, la puce aurait 1 Mo de cache L1 (réparti en blocs de 16 ko) et 768 ko de cache L2 unifié. Les unités de calcul seraient capables d'exécuter 1 opération FMA (fused multiply-add) par cycle en simple précision. Le passage en double précision (satisfaisant la norme IEEE 754-2008) diminue cette vitesse par deux.
L'interface mémoire ne serait pas sur 512 bits comme on a pu le lire ici ou là mais sur 384 bits. En fait, 8 canaux de 64 bits seraient prévus dans le design de la puce, mais seuls 6 auraient pu être gravés en 40 nm. Les deux derniers pourraient apparaître sur les prochaines révisions en 28 ou 22 nm du cGPU. La quantité de mémoire vive maximum serait de 6 Go (sur les cartes Tesla).
Mais revenons à l'essentiel : la compatibilité C++. Si c'est bel et bien le cas, c'est une vraie révolution. La puce Nvidia deviendrait alors utilisable par tous les développeurs et par bon nombre de programmes existants. Et si l'architecture Nvidia est performante (quid des fréquences ?), aidée par des compilateurs optimisés, elle pourrait se placer en réelle alternative aux CPU traditionnels. Fermi gardera en outre sa compatibilité avec DirectX 11, OpenGL, OpenCL, Direct Compute, CUDA C ou CUDA Fortran.
- En préparation de ce soir, nous vous invitons à relire le dossier que nous avions consacré à l'architecture des GT200 GeForce GTX 260 et 280 : les nouvelles références ?.
- AMD et Bullet Physics : vive la physique libre
- Une carte Mini-ITX, ION, Atom et PCI-Express
- Fortran pour CUDA débarque en bêta
- Ce soir, Nvidia abat ses cartes
- La SNCF veut du multitouch dans ses bornes
- Adobe Flash bientôt accéléré par les GPU Nvidia
- Test de la Radeon HD 5850 !
- Expliquer l’OLED avec un cornichon
- Des détails sur l’interface de Courier
- Panasonic doit vendre pour acheter Sanyo
- Apple veut transformer la presse papier
- Botnet : plus c’est petit, plus c’est dangereux
- Fermi : la nouvelle architecture NVIDIA
- Nexus : CUDA sur Visual Studio
- Flash sur GPU : NVIDIA confirme
- NVIDIA, C++ et GPU
- Un Athlon II X4 proche des 3 GHz
- Tyan annonce des cartes d'extension





j'ai hâte de voir ca, en tant que développeur, ca peut ouvrir de nouvelles perspectives
du c++ en natif, ça veut rien dire...
Le C++ est un langage (et loin d'être le plus simple), donc à moins que leur "GPU" interprete directement les fichiers texte (ce dont je doute très fortement), ce n'est pas du natif.
Le C++ ça se compile, ça ne "s'execute" pas...
Après ils ont peut être développé une espèce d'environnement en C++ permettant de programmer leurs cartes.
Heuuu je suis plus que d'accord avec Daam vu que le langage C++ est un langage compilé. Autant j'aurais compris un langage interprété comme le HTML par exemple, autant là je ne suis pas trop le raisonnement.
D'autant plus que le rôle du compilateur est essentiel: il est adapté à l'OS, et donc impose de compiler le composant pour chaque périmètre.
Alors quoi? Eventuellement un équivalent d'une JVM? Ce ne serait plus du "C++" mais une approche virtual machine où les sources sont précompilés, puis exécutés à travers un "OS" virtuel. (Java Virtual Machine)
Moi aussi hâte de voir ce que va nous faire réellement nvidia.
On verra ce soir, Wait And See
Heuuu je suis plus que d'accord avec Daam vu que le langage C++ est un langage compilé. Autant j'aurais compris un langage interprété comme le HTML par exemple, autant là je ne suis pas trop le raisonnement.D'autant plus que le rôle du compilateur est essentiel: il est adapté à l'OS, et donc impose de compiler le composant pour chaque périmètre.Alors quoi? Eventuellement un équivalent d'une JVM? Ce ne serait plus du "C++" mais une approche virtual machine où les sources sont précompilés, puis exécutés à travers un "OS" virtuel. (Java Virtual Machine)
Vous avez pas tort vous deux ^^
De tte façon on verra bien ce que va proposer nvidia
Je ne m'y connais pas bien en langage informatique, est-ce que Microsoft windows est un dérivé de C++?
Est-ce que cela signifie que pour faire tourner windows la cGPU sera suffisante?
Bref, Intel veut intégrer la puissance graphique dans ses CPU (notamment Larrabee) , il me semble judicieux que nVidia veuille intégrer des tâches normalement faites par une CPU en série.
A quand un un cGPU COBOL ?
Je relève ça parce que ce n'est pas la première fois que je vois cette horreur
Moi j'attends surtout de voir s'ils arriveront à le decliner en version d'entree de gamme ce "cGPU"

Parce que bon les variations par dixaine du G80/G90 ça va 2-3ans, mais faudrait passer à autre chose maintenant
non mais comment peut-on simplement écrire une énormité pareil????
non mais comment peut-on simplement écrire une énormité pareil????
Ca s'appelle du marketing !!
@efranchi: le c++ est un language informatique (comme l'ada, le C, le fortran et bien d'autres plus au moins connus et utilisés). C'est à dire qu'il permet de décrire le fonctionnement d'un programme (au sens large) informatique de manière "pratique" pour un humain.
La représentation du programme dans un langage se fait dans des fichiers textes, il est donc ensuite nécessaire d'utiliser un compilateur pour transformer tout ceci en langage machine (les instructions du processeur) (un fichier .exe pour windows par exemple).
On peut ne pas compiler un programme et utiliser un interpréteur pour exécuter directement à partir des sources (les fichiers textes) (le perl/php, ruby, python sont par exemple des langages qui sont interprétés directement), mais les performances sont moindres.
Certains langages comme le java où les langages .net sont à cheval sur les deux principes, un compilateur transforme les sources dans un format intermédiaire qui est ensuite interprété.
Il compile du C vers de l'exe ?
ou il execute le C comme un language non compilé (dit interprété comme le basic, donc en mode protégé, et le niveau de protection dépend plus de l'interpréteur que du programme)?
Tain, mais c'est n'importe quoi!
Un marketeux à la con transforme un compilateur C++ => Fermi (qui, je crois existait déjà pour les Geforce 8) en un GPU compatible C++. Non seulement ça veut rien dire, mais c'est ridicule!
Et le pire là dedans, c'est que vous, tomshardware, qui êtes censé avoir de bonnes connaissances en informatique, tombez dans le panneau.....
La crédibilité en prend en coup là
Surtout que c'est pas pour dire, mais dans la mesure ou tout les jeux sont plus ou moins écrit en C++, et invoque DirectX, lui-même écrit en C++, si on va par là, ça fait beau temps que les GPU "exécutent" du C++. Ca ne veut rien dire à plein de niveau. C'est forcément le système d'exploitation, qui tourne sur le CPU, qui exécute le code. Ce qu'il peut faire, le système d'exploitation, c'est déléguer certaines tâches à des sous-systèmes spécialisés.
Finalement Nvidia à complètement lâcher le gaming pour se concentrer sur les solution de calculs que les CPU font déjà??
décidément en plus du correcteur orthographique il va falloir acheter un correcteur de conneries à toms hardware !! pas sérieux tout ça !!
a mon sens, "capable d'exécuter nativement du code C++", cela veut juste dire que contrairement a CUDA, qui ajoute des mots clefs au C, les nouveaux GPU permet d'exécuter des programmes écrit en C++ "pure", c'est a dire qu'il n'ajoute pas de mot clef et que par consequan n'importe qu'elle programme serais capable de s'exécuter sur le GPU (moyennant recompilation ?)
Ca ne voudrais pas dire aussi qu'au lieu de programmer la carte dans un langage type assembleur il serait possible d'utiliser la syntaxe du C++, beaucoup plus confortable ?
Un autre détail me chiffonne : Fermi serait une "réelle alternative aux CPU traditionnels". Sauf qu'à mon sens, programmable avec du C++ ou pas, une carte graphique reste un "tanker" du calcul.
a mon sens, "capable d'exécuter nativement du code C++", cela veut juste dire que contrairement a CUDA, qui ajoute des mots clefs au C, les nouveaux GPU permet d'exécuter des programmes écrit en C++ "pure", c'est a dire qu'il n'ajoute pas de mot clef et que par consequan n'importe qu'elle programme serais capable de s'exécuter sur le GPU (moyennant recompilation ?)
Ca ne marche pas ainsi.
Le C++ est un langage qui doit être compilé. Tu fournis des sources à un compilateur qui te génère un exécutable. Rien à voir avec des fichiers textes qu'un moteur interprète comme typiquement le HTML qui est de l'interprété! Donc aucune chance, si ce n'est de revoir fondamentalement le mode de fonctionnement du C++...
Ca ne voudrais pas dire aussi qu'au lieu de programmer la carte dans un langage type assembleur il serait possible d'utiliser la syntaxe du C++, beaucoup plus confortable ?
C'est déjà le cas pour la plupart des programmes : le développeur utilise un langage haut niveau, style C++, car compréhensible par un humain, et un compilateur se charge de "traduire" le code C++ (ou autre) en un langage que comprend le processeur (proche de l'assembleur).
C'est le fonctionnement de tout programme compilé. Il n'y a rien de nouveau là dedans.
Un autre détail me chiffonne : Fermi serait une "réelle alternative aux CPU traditionnels". Sauf qu'à mon sens, programmable avec du C++ ou pas, une carte graphique reste un "tanker" du calcul.
Non, pour que Fermi soit une réelle alternative aux CPU traditionnels, il faudrait qu'il soit compatible avec l'architecture X86, ce qui n'est pas le cas.
De toute façon il faut compiler le truc en Binaire
aucune puce ne sait traiter autre chose que du binaire.. des 0 et des 1. Donc meme l'assembleur doit etre compilé (en quelque sorte.. parce que là c'est plutot une traduction qu'une compilation)
@daam, en java le code est précompilé, ensuite il est compilé à la volé
Bon , je pense que Nvidia devrait déjà pour 2010 se pencher sur le problème des millions de gens qui on un PC portable cramé sur les bras à cause de leur GPU défectueux soudé à la carte mère ! En effet cette nouvelle puce devrais doit - on croire faire de nouvelles victimes ?
je vous invite à taper dans votre moteur préféré ces mots :
“nvidia scandal ”. Ca ne vous coutera rien, au contraire, vous réfléchirez mieux avant d’investir chez Nvidia surtout au vu du prix