Quel modèle parallèle théorique est le plus proche de CUDA?


8

Quel modèle parallèle théorique est le plus proche du modèle de programmation CUDA / OpenCL?

Par exemple, il correspond dans une certaine mesure au modèle générique de machine d'accès parallèle parallèle (PRAM). Cependant, c'est trop générique, car cela rend abstraction les diverses latences d'accès à la mémoire et les problèmes de synchronisation.

Ma question est de savoir quel est le modèle théorique auquel l'architecture CUDA correspond le mieux (compte tenu du parallélisme hiérarchique des threads et des blocs de threads qui coopèrent)?

Réponses:


6

À ma connaissance, il peut s'agir du modèle de mise en file d'attente de mémoire partagée (QSM) , même si le parallélisme hiérarchique des threads n'est pas pris en compte. Cependant, les accès à la mémoire locale et à la mémoire globale (bande passante différente) et à la synchronisation en masse (dans laquelle les threads peuvent fonctionner de manière asynchrone entre les synchronisations de barrière) sont pris en compte.


1

Étant donné que tous les SM exécutent la même instruction à partir du noyau CUDA en mode verrouillé, je dirais que c'est un SIMD ancien.


Eh bien, différents SM peuvent exécuter différentes instructions, non? Au sein d'un même SM, tous les threads d'une chaîne exécutent la même instruction ... mais même des chaînes différentes au sein d'un même bloc peuvent diverger sans aucune pénalité. Cela dit, SIMD aurait également été ma réponse, bien qu'à la granularité de la chaîne, pas du SM ou même du bloc.
Patrick87

Trouvé ce lit aujourd'hui dans GPU exécuter basé sur le single-instruction-multiple-thread (SIMT) cité par J. Nickolls, I. Buck, M. Garland et K. Skadron, Scalable Parallel Programming with CUDA, Queue 6, 2 ( Mars 2008), 40-53
user2251346
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.