Previous | Next --- Slide 67 of 79
Back to Lecture Thumbnails
haboric

I am confused about the relationship between execution context and warp. I think a warp corresponds to one execution context, but here says a CUDA thread corresponds to one execution context. Can anyone explain?

jrgallag

A warp contains many execution contexts for multiple threads, not just one. A warp is a group of CUDA threads (like a "gang" in ISPC) that are all running simultaneously using SIMD execution units. So every thread has its own execution context, but many threads run on a warp simultaneously (32 threads/warp on modern hardware).

There's more about this on Slide 71.

maxdecmeridius

Yup you got it!

Here's part of a comment from @kayvonf: " It would be reasonable to think about a warp like a traditional x86 thread executing a SIMD instruction stream, and a warp execution context to be the state required to manage all of those CUDA threads."