Je suis en train d'entrer dans la programmation GPU pour une partie de mon travail de simulation, et j'ai suivi ce tutoriel:Quelqu'un pourrait-il m'expliquer l'architecture nVidia GPU?
http://www.drdobbs.com/parallel/cuda-supercomputing-for-the-masses-part/208401741
Cependant, je reçois la terminologie confuse et visiter la documentation de nVidia me confusion plus loin.
Ces termes: le streaming multiprocesseurs, fils, funes, blocs, grille, occupation, shaders
sont accablants me un peu.
Ceci est ma compréhension très approximative:
Un GPU est divisé en multiprocesseurs (peut-être comme deux d'entre eux). Chaque multiprocesseur est divisé en warps, qui sont divisés en blocs, qui sont divisés en threads. Je ne sais pas ... J'aimerais avoir un diagramme. Est-ce que quelqu'un peut m'aider?
EDIT: Laissez-moi vous expliquer pourquoi je pose cette question. Supposons que j'essaie de comprendre ce qu'est un "warp". Je Google "CUDA Warp". La première chose qui arrive est http://developer.download.nvidia.com/CUDA/training/cuda_webinars_WarpsAndOccupancy.pdf. Donc, je défiler vers le bas et il dit:
Une grille est composée de blocs qui sont complètement indépendants
D'accord, je comprends.
Un bloc est composé de fils qui peuvent communiquer au sein leur propre bloc
D'accord ...
32 fils forment une chaîne
Maintenant, je suis perdu. 32 threads forment une chaîne? Tous les threads doivent-ils être dans le même bloc? Pourquoi avons-nous arbitrairement étiqueté 32 threads un "warp"? Puis-je appeler 12 threads une "sacoche"? Donc, si un bloc peut contenir 20 threads, cela signifie-t-il que j'ai besoin de 2 blocs pour contenir un warp? Vous pouvez voir d'où vient ma confusion. Tout ce que je recherche dépend de la connaissance d'autres termes, donc c'est un peu comme essayer d'apprendre une langue en lisant le dictionnaire - tout est circulaire.
En quoi consistent les demandes de fermeture? Comment puis-je modifier cela pour l'empêcher de se fermer? – Nick
Je ne sais pas si votre question devrait être fermée ou non, mais pourquoi ne pas essayer de lire les documents CUDA (http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html)? Il explique tout ce que vous demandez. Cela donne l'impression que vous n'avez pas fait beaucoup de recherche avant de demander. En outre, l'article de Dr. Dobbs était une bonne ressource, mais il est un peu daté maintenant – alrikai
Ces choses sont datées si vite ... Je pense que j'ai trouvé cela à partir de la question Stack Overflow de quelqu'un d'autre. – Nick