Welches theoretische Parallelmodell ist CUDA am nächsten?

8

Welches theoretische Parallelmodell kommt dem CUDA / OpenCL-Programmiermodell am nächsten?

Zum Beispiel passt es zu einem gewissen Grad zum generischen PRAM-Modell (Parallel Random Access Machine). Dies ist jedoch zu allgemein, da dadurch verschiedene Speicherzugriffslatenzen und Synchronisationsprobleme abstrahiert werden.

Meine Frage ist, welches theoretische Modell der CUDA-Architektur am besten entspricht (unter Berücksichtigung der hierarchischen Parallelität von Threads und Blöcken von Threads, die zusammenarbeiten).

isti_spl
quelle

Antworten:

6

Nach meinem besten Wissen kann es sich um das QSM-Modell (Queuing Shared Memory) handeln , obwohl die hierarchische Parallelität von Threads nicht berücksichtigt wird. Zugriffe auf lokalen Speicher und globalen Speicher (unterschiedliche Bandbreite) sowie Massensynchronität (bei der Threads zwischen Barrieresynchronisierungen asynchron arbeiten können) werden jedoch berücksichtigt.

Massimo Cafaro
quelle
1

Da alle SMs im Gleichschritt denselben Befehl vom CUDA-Kernel ausführen, würde ich sagen, dass es sich um eine einfache alte SIMD handelt.

user2251346
quelle
Nun, verschiedene SMs können verschiedene Anweisungen ausführen, oder? Innerhalb eines einzelnen SM führen alle Threads in einem Warp denselben Befehl aus ... aber auch verschiedene Warps innerhalb desselben Blocks können ohne Strafe voneinander abweichen. Das heißt, SIMD wäre auch meine Antwort gewesen, wenn auch in der Granularität von Warp, nicht SM oder sogar Block.
Patrick87
Fand dies heute liest in GPU ausführen basierend auf dem Single-Instruction-Multiple-Thread (SIMT) Zitiert von J. Nickolls, I. Buck, M. Garland und K. Skadron, Scalable Parallel Programming mit CUDA, Queue 6, 2 ( März 2008), 40-53
user2251346