Question

Selon vous, quel est l’avenir des initiatives GPU en tant que CPU comme CUDA ?Pensez-vous qu’ils vont devenir courants et devenir la prochaine mode adoptée dans l’industrie ?Apple construit un nouveau cadre pour utiliser le GPU pour effectuer des tâches CPU et le projet Nvidias CUDA dans le domaine scientifique a connu beaucoup de succès.Suggérez-vous à un étudiant de consacrer du temps dans ce domaine ?

Était-ce utile?

La solution

Tout d’abord, je ne pense pas que ces questions appartiennent vraiment à SO.

À mon avis, le GPU est une alternative très intéressante lorsque vous effectuez des mathématiques flottantes vectorielles.Cependant cela se traduit par :Cela ne deviendra pas courant.La plupart des applications grand public (de bureau) effectuent très peu de calculs en virgule flottante.

Il a déjà gagné du terrain dans les jeux (physique-moteurs) et dans les calculs scientifiques.Si vous considérez l’un de ces deux comme « grand public », alors oui, le GPU deviendra courant.

Je ne considérerais pas ces deux éléments comme courants et je pense donc que le GPU deviendra la prochaine mode adoptée dans l'industrie grand public.

Si, en tant qu'étudiant, vous êtes intéressé par les calculs scientifiques fortement basés sur la physique, vous devez absolument y consacrer du temps (les GPU sont de toute façon des éléments matériels très intéressants).

Autres conseils

Consacrez du temps si vous êtes intéressé par le calcul scientifique et parallèle.Ne pensez pas à CUDA et à faire apparaître un GPU comme un CPU.Il permet uniquement une méthode de programmation des GPU plus directe que les anciennes techniques de programmation GPGPU.

Les processeurs à usage général tirent leur capacité à bien fonctionner sur une grande variété de tâches de tout le travail effectué en matière de prédiction de branche, de pipeline, de superscaler, etc.Cela leur permet d'obtenir de bonnes performances sur une grande variété de charges de travail, tout en les rendant nuls dans les opérations en virgule flottante à haut débit et gourmandes en mémoire.

Les GPU ont été initialement conçus pour faire une chose, et ils le font très, très bien.Les opérations graphiques sont intrinsèquement parallèles.Vous pouvez calculer la couleur de tous les pixels de l'écran en même temps, car il n'y a aucune dépendance de données entre les résultats.De plus, les algorithmes nécessaires n'avaient pas besoin de gérer les branches, puisque presque toutes les branches nécessaires pouvaient être réalisées en fixant un coefficient à zéro ou un.Le matériel pourrait donc être très simple.Il n'est pas nécessaire de s'inquiéter de la prédiction de branchement, et au lieu de créer un superscaler de processeur, vous pouvez simplement ajouter autant d'ALU que possible sur la puce.

Grâce aux textures et aux vertex shaders programmables, les GPU ont acquis une voie vers la programmabilité générale, mais ils sont toujours limités par le matériel, qui est toujours conçu pour les opérations en virgule flottante à haut débit.Certains circuits supplémentaires seront probablement ajoutés pour permettre des calculs plus généraux, mais seulement jusqu'à un certain point.Tout ce qui compromet la capacité d'un GPU à créer des graphiques ne sera pas intégré.Après tout, les sociétés de GPU sont toujours actives dans le secteur graphique et le marché cible reste celui des joueurs et des personnes ayant besoin d’une visualisation haut de gamme.

Le marché des GPGPU n’est encore qu’une goutte d’eau dans l’océan et le restera dans une certaine mesure.Après tout, « c'est joli » est une norme bien inférieure à respecter que « des résultats 100 % garantis et reproductibles, à chaque fois ».

En bref, les GPU ne seront jamais réalisables en tant que CPU.Ils sont simplement conçus pour différents types de charges de travail.Je m'attends à ce que les GPU bénéficient de fonctionnalités qui les rendront utiles pour résoudre rapidement une plus grande variété de problèmes, mais ils le seront toujours. graphique unités de transformation avant tout.

Il sera toujours important de toujours faire correspondre le problème que vous rencontrez avec l’outil le plus approprié dont vous disposez pour le résoudre.

À long terme, je pense que le GPU cessera d’exister, à mesure que les processeurs à usage général évolueront pour prendre en charge ces fonctions. Larrabee d'Intel est la première étape.L’histoire a montré que parier contre x86 est une mauvaise idée.

L'étude des architectures massivement parallèles et du traitement vectoriel restera utile.

Les GPU ne supplanteront jamais les CPU.Un CPU exécute un ensemble d’instructions séquentielles et un GPU effectue en parallèle un type de calcul très spécifique.Ces GPU sont d'une grande utilité dans le calcul numérique et le graphisme ;cependant, la plupart des programmes ne peuvent en aucun cas utiliser cette forme d’informatique.

Vous commencerez bientôt à voir de nouveaux processeurs d'Intel et d'AMD qui incluent des calculs vectoriels à virgule flottante de type GPU ainsi que des calculs CPU standard.

Je pense que c'est la bonne voie à suivre.

Étant donné que Les GPU ont été exploités pour créer des supercalculateurs bon marché, cela semble être l’évolution naturelle des choses.Avec autant de puissance de calcul et de R&D déjà réalisées pour vous, pourquoi ne pas exploiter la technologie disponible ?

Alors allez-y et faites-le.Cela donnera lieu à des recherches intéressantes, ainsi qu'à une raison légitime d'acheter cette carte graphique haut de gamme afin de pouvoir jouer à Crysis et Assassin's Creed avec tous les détails graphiques ;)

C'est l'une de ces choses pour lesquelles vous voyez 1 ou 2 applications, mais bientôt quelqu'un proposera une « application qui tue » qui comprendra comment faire quelque chose de plus généralement utile avec elle, à des vitesses ultra-rapides.

Des pixel shaders pour appliquer des routines à de larges tableaux de valeurs flottantes, peut-être verrons-nous des applications de couverture SIG ou bien, je ne sais pas.Si vous n'y consacrez pas plus de temps que moi, vous aurez le même niveau de perspicacité que moi, c'est-à-dire peu !

J'ai le sentiment que cela pourrait être une très grande chose, tout comme Intel et S3, peut-être qu'il suffit d'ajouter un petit ajustement au matériel, ou de quelqu'un avec une ampoule au-dessus de sa tête.

Avec autant de puissance inexploitée, je ne vois pas comment elle pourrait rester inutilisée trop longtemps.La question est cependant de savoir comment le GPU sera utilisé à cet effet.CUDA semble être une bonne supposition pour le moment, mais d'autres technologies émergent à l'horizon, ce qui pourrait le rendre plus accessible au développeur moyen.

Apple a récemment annoncé OpenCL qui, selon eux, est bien plus que CUDA, mais assez simple.Je ne sais pas exactement quoi en penser, mais le groupe khronos (les gars qui travaillent sur le standard OpenGL) travaille sur le standard OpenCL et essaie de le rendre hautement interopérable avec OpenGL.Cela pourrait conduire à une technologie mieux adaptée au développement logiciel normal.

C'est un sujet intéressant et, d'ailleurs, je suis sur le point de commencer mon mémoire de maîtrise sur la meilleure façon de mettre la puissance du GPU à la disposition des développeurs moyens (si possible) avec CUDA comme objectif principal.

Il y a longtemps, il était très difficile de faire des calculs en virgule flottante (des milliers/millions de cycles d'émulation par instruction sur des processeurs terriblement performants (selon les standards actuels) comme le 80386).Les personnes ayant besoin de performances en virgule flottante pouvaient obtenir un FPU (par exemple, le 80387.Les anciens FPU étaient assez étroitement intégrés au fonctionnement du CPU, mais ils étaient externes.Plus tard, ils ont été intégrés, le 80486 ayant un FPU intégré.

L'ancien FPU est analogue au calcul GPU.Nous pouvons déjà l'obtenir avec les APU d'AMD.Un APU est un processeur doté d’un GPU intégré.

Donc, je pense que la vraie réponse à votre question est que les GPU ne deviendront pas des processeurs, mais que les processeurs auront un GPU intégré.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top