Quale modello parallelo teorico è il più vicino a CUDA?


8

Quale modello parallelo teorico è il più vicino al modello di programmazione CUDA / OpenCL?

Ad esempio, si adatta in una certa misura al modello generico di macchina ad accesso casuale parallelo (PRAM). Tuttavia, questo è troppo generico, poiché crea l'astrazione di varie latenze di accesso alla memoria e problemi di sincronizzazione.

La mia domanda è: qual è il modello teorico che l'architettura CUDA si adatta maggiormente (tenendo presente il parallelismo gerarchico di fili e blocchi di fili che cooperano)?

Risposte:


6

Per quanto ne so , potrebbe essere il modello di Accodamento memoria condivisa (QSM) , anche se il parallelismo gerarchico dei thread non viene preso in considerazione. Tuttavia, vengono considerati gli accessi alla memoria locale e alla memoria globale (diversa larghezza di banda) e alla sincronia di massa (in cui i thread possono funzionare in modo asincrono tra sincronizzazioni di barriera).


1

Dato che tutti gli SM eseguono la stessa istruzione dal kernel CUDA in lockstep, direi che è semplicemente vecchio SIMD.


Bene, diversi SM possono eseguire diverse istruzioni, giusto? All'interno di un singolo SM, tutti i thread in un ordito eseguono la stessa istruzione ... ma anche diversi orditi all'interno dello stesso blocco possono divergere senza alcuna penalità. Detto questo, anche SIMD sarebbe stata la mia risposta, anche se per la granularità dell'ordito, non di SM o addirittura di blocco.
Patrick87,

Ho scoperto che oggi si legge in GPU esegui basato sul SIMT (single-istruzione-multiple-thread) citato da J. Nickolls, I. Buck, M. Garland e K. Skadron, Programmazione parallela scalabile con CUDA, Queue 6, 2 ( Mar. 2008), 40-53
user2251346
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.