Note that there are some explanatory texts on larger screens.

plurals
  1. POCould someone explain nVidia GPU architecture to me?
    primarykey
    data
    text
    <p>I am just getting into GPU programming for some of my simulation work, and I've been following this tutorial:</p> <p><a href="http://www.drdobbs.com/parallel/cuda-supercomputing-for-the-masses-part/208401741" rel="nofollow">http://www.drdobbs.com/parallel/cuda-supercomputing-for-the-masses-part/208401741</a></p> <p>However, I'm getting the terminology confused and visiting nVidia's documentation is confusing me further.</p> <p>These terms: streaming multiprocessor, threads, warps, blocks, grid, occupancy, shaders</p> <p>are overwhelming me a little bit.</p> <p>This is my very rough understanding:</p> <p>A GPU is split into multiprocessors (maybe like 2 of them). Each multiprocessor is split into warps, which are split into blocks, which are split into threads. I don't know... I wish I had a diagram. Could someone help me out?</p> <p><strong>EDIT</strong>: Let me explain why I'm asking this. Suppose I'm trying to figure out what a "warp" is. I Google "CUDA warp". The first thing that comes up is <a href="http://developer.download.nvidia.com/CUDA/training/cuda_webinars_WarpsAndOccupancy.pdf" rel="nofollow">http://developer.download.nvidia.com/CUDA/training/cuda_webinars_WarpsAndOccupancy.pdf</a>. So I scroll down and it says:</p> <blockquote> <p>A grid is composed of blocks which are completely independent</p> </blockquote> <p>Okay, I get that.</p> <blockquote> <p>A block is composed of threads which can communicate within their own block</p> </blockquote> <p>Okay...</p> <blockquote> <p>32 threads form a warp</p> </blockquote> <p>Now I'm lost. 32 threads form a warp? Do all threads have to be in the same block? Why have we arbitrarily labeled 32 threads a "warp"? Can I call 12 threads a "satchel"? So if a block can hold 20 threads, does that mean I need 2 blocks to contain a warp? You can see where my confusion is coming from. Everything I look-up depends on knowing other terms, so it's kind of like trying to learn a language by reading the dictionary — it's all circular.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload