Developpez.com

Le Club des Développeurs et IT Pro

Les processeurs graphiques sont-ils voués à disparaître ?

Le 2009-09-13 03:24:56, par Katleen Erna, Expert éminent sénior
Les processeurs graphiques sont-ils voués à disparaître ?

Selon Tim Sweeny, CEO fondateur de Epics Game (moteurs Unreal Tournament), le processeur graphique serait à inscrire sur la liste des espèces menacées.

La technologie OpenCL (Open Computing Language) est le résultat du mariage entre une API et un langage de programmation dérivé du C. Elle a été crée pour faciliter la programmation de l'intersection entre les CPU (de plus en plus parallèles) et les GPU (de plus en plus programmables).

Mais alors que la technologie Grand Central (qui simplifie le développement multithread) semble être bien absorbée, la technologie OpenCL pose, elle, de très gros problèmes de par l'éloignement géographique entre le processeur graphique (relégué à la terminaison d'un port PCI Express) et la mémoire centrale. Dans ce cas, le transfert mémoire des données nécessaire au calcul coûte énormément de temps et d'argent, et il faudra alors évaluer si le processeur est plus interessant en termes financiers par rapport à la parallélisation des calculs.

En effet, bien qu'il soit extrêmement puissant pour les calculs parallèles, le processeur graphique est en général assez mauvais pour les tests. Comment vaincre ce problème, d'autant plus lorsque l'on ne connaît pas la complexité des calculs qui seront à effectuer (ce qui est fréquent pour les projets de haute performance) ?

Si l'on se penche pour prendre le pouls de ce marché, on s'aperçoit que NVIDIA y est leader, talonné à distance respectueuse par Intel (dont la puissance des processeurs graphiques ne rivalise pas encore avec ceux du "maître" mais des innovations sont en route - implémentation de traitements graphiques et d'architectures superscalaires).

NVIDIA serait donc logiquement le premier à pâtir de cette situation qui pourrait malmener ce marché dans sa globalité.

Source : L'étude de Tim Sweeny

NVIDIA réussira-t-il à se sortir de cette mauvaise passe simplement en incorporant des processeurs graphiques dans des ARM ?

ATI se plaçant juste après NVIDIA en terme de performances, et appartenement à AMD qui serait en mesure d'instaurer un traitement graphique dans ses processeurs, pourrait-il doubler NVIDIA et lui prendre sa place de leader ?
  Discussion forum
31 commentaires
  • djo.mos
    Expert éminent
    Bonjour,
    Tiens c'est drôle, j'avais justement eu cette même discussion avec un ami, où je prévoyais la même chose justement (Je devrais vraiment me mettre au VC on dirait )

    Perso, je crois que oui. Pas taper car j'ai plus touché à la programamtion graphique (3D) depuis des années, mais j'avais quand même suivi le passage de l'architecture fixed stage pour le pipeline du rendering à une architecture plus ouverte, où plusieurs unités de calcul opèrent indifféramment sur les transformations, texturing, lighting et autres effets.

    Donc, si les processurs centraux arrivent à avoir assez de puissance et à supporter les calculs vectoriels, je ne verrais plus de raisons d'être pour les processurs graphiques.
  • smyley
    Expert éminent
    Il n'y aurai pas des problèmes d'alimentation/refroidissement si absolument tous les calculs d'un pc (de gamer ou d'un graphiste ?), que ce soit graphiques ou non, étaient rassemblés sur une puce de 5 x 5 ?
  • Mouais, vu la tendance actuelle chez NVidia (de plus en plus puissants et polyvalents), et le design des futurs processeurs Intel (certes amenés à être rendre inutiles des puces bas de gammes, mais en AUCUN CAS des puces haut de gamme), je parie sur un avenir plus que radieux pour les cartes graphiques.
    La démocratisation de la stéréo-vision et des technos genre CUDA me confortant dans mon impression

    D'ailleurs, on parle facilement de l'évolution des CPU, et de la possibilité de les voir remplir les tâches des (petits) GPU, mais pourquoi ne parle t-on pas de l'inverse ? Eux aussi évoluent. Nous ne sommes qu'au début de l'ère des GPU :p

    Oui à une fusion CPU-GPU pour la bureautique, mais nous somme encore loin des résultats attendus pour tout ce qui touche à la 3D.
  • djo.mos
    Expert éminent
    Envoyé par entreprise38

    D'ailleurs, on parle facilement de l'évolution des CPU, et de la possibilité de les voir remplir les tâches des (petits) GPU, mais pourquoi ne parle t-on pas de l'inverse ? Eux aussi évoluent.
    Justement, les GPUs évoluent dans le sens où ils s'approchent de plus en plus des CPUs : des jeux d'instructions de plus en plus étendues et génériques (excepté le support natif des vecteurs et matrices). Même qu'on programme avec du C-like pour les GPUs

    Mais effectivement, encore faut il que les CPUs puissent assurer la montée en charge, quoi qu'avec les multi-core ça devrait être jouable (théoriquement, je ne suis pas spécialiste dans le domaine).
  • monwarez
    Membre actif
    On a besoin du GPU n' ont pas que pour les jeux, mais pour tous se qui touche la 3D, par exemple: l' animation etc..

    Comme le dit smyley, rassembler tous les calculs sur une seule puce, pose des problèmes de refroidissement, qui je crois ne doit pas dépasser les 80° C
  • rem02
    Membre régulier
    Salut

    Pourquoi ne pas changer totalement l'architecture materiel. Faire un truc plus simple, une carte mere, avec un slot processeur, un slot pour un processeur graphique ( adieux les cartes graphique mais la encore probleme car chaque marque aura sa norme de slot ), le chipset nord et sud en un seul et le reste.

    Je ne connais absolument pas l'architecture des GPU.
    Mais pourquoi ne pas séparer les fonctions, par exemple faire plusieurs coeurs:
    Un maitre, un qui calculerait la physique, un qui calculerait le lumiere...

    Enfin cela m'ennuirais de chager tout mon materiel juste pour faire passer le dernier FPS. Déjà que lorsque l'on change de processeur faut, dans certain cas, changer la carte mére.
  • Isukthar
    Membre régulier
    Envoyé par rem02
    Salut

    Pourquoi ne pas changer totalement l'architecture materiel. Faire un truc plus simple, une carte mere, avec un slot processeur, un slot pour un processeur graphique ( adieux les cartes graphique mais la encore probleme car chaque marque aura sa norme de slot ), le chipset nord et sud en un seul et le reste.

    Je ne connais absolument pas l'architecture des GPU.
    Mais pourquoi ne pas séparer les fonctions, par exemple faire plusieurs coeurs:
    Un maitre, un qui calculerait la physique, un qui calculerait le lumiere...

    Enfin cela m'ennuirais de chager tout mon materiel juste pour faire passer le dernier FPS. Déjà que lorsque l'on change de processeur faut, dans certain cas, changer la carte mére.
    Vu la taillle des cartes graphiques actuelles, je vois mal comment tu les mettrais sur un socket à la manière d'un processeur.
    Et pour les coeurs sur un GPU, ça sert à rien de les spécialiser cas c'est souvent les mêmes opérations qui reviennent (multiplication de matrices essentiellement).

    Mon opinion: depuis quelques années, la puissance des GPU augmente bien plus vite que celle des CPU. Et avec la généralisation de la HD, des effets graphiques, et du GPGPU, je pense le GPU prend un peu l'ascendant sur le CPU (en tout cas c'est le cas pour les joueurs et de plus en plus le cas pour les autres utilisateurs).
  • monwarez
    Membre actif
    Dans le cas des jeux, le GPU peut servir pour tous les calculs d' affichage.
    Tandis que le CPU se chargerait de faire les calculs de collision et de
    gravité (plus ceux du jeux pour le score etc...).
    Comme le dit Isukthar , la puissance des GPU croît plus que celle des CPU.
  • kedare
    Membre chevronné
    Monwarez, ce que tu décrit, c'est déja le boulot du PPU ( [ame]http://fr.wikipedia.org/wiki/Physics_processing_unit[/ame] )
  • PPU que l'on retrouve aujourd'hui dans les cartes graphiques