170 votes

Introduction à la programmation des GPU

Tout le monde a ce superordinateur massivement parallélisé énorme sur leur poste de travail sous la forme d’une carte graphique GPU.

  • Quel est l’équivalent de « hello world » de la communauté GPU ?
  • Queest-ce que je fais, où dois-je aller, pour commencer la programmation GPU pour les principaux vendeurs GPU ?

67voto

Nazgob Points 4548

Découvrez CUDA de NVidia, l’OMI, c’est la meilleure plate-forme programmation GPU. Il y a des tonnes de matériaux cool à lire. http://www.NVIDIA.com/Object/cuda_home.html

Bonjour monde serait de faire tout type de calcul à l’aide du GPU.

Espoir qui aide.

16voto

DavidG Points 948

je ne suis pas sûr de la question exacte, mais c'est ce que je sais.

  1. Vous obtenez programmable vertex et les pixel shaders qui permettent l'exécution de code directement sur le GPU pour manipuler les tampons qui sont à être tirées. ces langues ( openGL GL Shader Lang et de Haute Niveau Shader Lang - direct x equiv ), sont C la syntaxe de style, et vraiment facile à utiliser. Quelques exemples de HLSL peut être trouvé ici pour le XNA game studio et en Direct X. je n'ai pas tout décent GLSL références, mais je suis certes, il y a beaucoup autour de. Ces shader langauges donner un immense montant de pouvoir être en mesure de manipuler ce qui est établi par vertex ou par pixel de niveau directement sur la carte graphique, de faire des choses comme des ombres, l'éclairage et la floraison vraiment facile à mettre en œuvre.
  2. La deuxième chose qui vient à l'esprit est l'aide de openCL de code pour la nouvelle les lignes de general purpose GPU. Je suis vous ne savez pas comment l'utiliser, mais mon comprendre, c'est que openCL donne vous les débuts de pouvoir l'accès des processeurs à la fois sur les carte graphique et le processeur normal. Ce n'est pas la technologie grand public, encore, et semble être dicté par apple.
  3. CUDA semble être un sujet chaud. CUDA est nvidia moyen d'accéder à l'énergie GPU. Ici sont quelques-uns des intros

8voto

biozinc Points 2760

Je pense que les autres ont répondu à votre deuxième question. Comme pour la première, le "Hello World" de CUDA, je ne pense pas qu'il y est un ensemble standard, mais personnellement, je recommanderais un additionneur parallèle (c'est à dire un programme qui calcule la somme de N entiers).

Si vous regardez la "réduction" par exemple dans le SDK NVIDIA, la superficiellement tâche simple peut être étendue à la démonstration de nombreux CUDA considérations telles que coalisées lit, la banque de mémoire des conflits et le déroulement de la boucle.

Voir cette présentation pour plus d'info:

http://www.gpgpu.org/sc2007/SC07_CUDA_5_Optimization_Harris.pdf

7voto

graphics Points 414

Jetez un oeil à l' ATI Stream Computing SDK. Il est basé sur BrookGPU développé à l’Université Stanford.

À l’avenir tous les travaux GPU vont être standardisée en utilisant OpenCL. C’est une initiative parrainée par Apple qui sera fournisseur de la carte graphique neutre.

6voto

Jay Conrod Points 12375

CUDA est un excellent cadre pour commencer. Il permet d'écrire des GPGPU noyaux, C. Le compilateur produira GPU microcode de votre code et envoyer tout ce qui s'exécute sur le PROCESSEUR de votre compilateur. Il est NVIDIA seulement si, et fonctionne uniquement sur la série de 8 cartes ou mieux. Vous pouvez consulter le CUDA de la zone pour voir ce qui peut être fait avec elle. Il ya quelques grands des démonstrations dans le CUDA SDK. La documentation qui vient avec le kit de développement est un assez bon point de départ pour l'écriture de code. Il vous guidera à travers l'écriture d'une multiplication de matrice noyau, qui est un excellent endroit pour commencer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X