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)?

isti_spl
la source

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.

Massimo Cafaro
la source
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.

user2251346
la source
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