8
$\begingroup$

Which theoretical parallel model is closest to CUDA/OpenCL programming model?

For example, it fits at some degree to the generic Parallel Random Access Machine (PRAM) model. However, that is too generic, since it makes abstraction of various memory access latencies and synchronization issues.

My question is which is the theoretical model that CUDA architecture fits closest (having in mind the hierarchical parallelism of threads and blocks of threads that cooperate)?

$\endgroup$
6
$\begingroup$

To the best of my knowledge, it may be the Queuing Shared Memory (QSM) model, even though hierarchical parallelism of threads is not taken into account. However, accesses to local memory and global memory (different bandwidth), and bulk synchrony (in which threads can work asynchronously beetween barrier synchronizations) are considered.

$\endgroup$
1
$\begingroup$

Since all the SMs execute the same instruction from the CUDA kernel in lockstep, I would say it is plain old SIMD.

$\endgroup$
  • $\begingroup$ Well, different SMs can execute different instructions, right? Within a single SM, all the threads in a warp execute the same instruction... but even different warps within the same block can diverge without any penalty. That said, SIMD would have been my answer as well, albeit at the granularity of warp, not SM or even block. $\endgroup$ – Patrick87 Nov 18 '13 at 23:30
  • $\begingroup$ Found this today reads in GPU execute based on the single-instruction-multiple-thread (SIMT) Cited from J. Nickolls, I. Buck, M. Garland, and K. Skadron, Scalable Parallel Programming with CUDA, Queue 6, 2 (Mar. 2008), 40-53 $\endgroup$ – user2251346 Dec 4 '13 at 19:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.