The ISPC analogy given in lecture that I found useful:
In an ISPC program you would write the void main() function that calls your ISPC function. With CUDA, you write the "host" code which calls your "CUDA device" code.
The "host" code which calls matrixAdd is similar to the void main() function from ISPC, and matrixAdd, or the "CUDA device" code, is similar to the ISPC function we implemented separately.
Both the "host" and "CUDA device" code are written by you.
blipblop
Would it be fair to say that CUDA thread \approx ISPC program instance, and CUDA Block \approx ISPC task?
The ISPC analogy given in lecture that I found useful:
In an ISPC program you would write the void main() function that calls your ISPC function. With CUDA, you write the "host" code which calls your "CUDA device" code.
The "host" code which calls matrixAdd is similar to the void main() function from ISPC, and matrixAdd, or the "CUDA device" code, is similar to the ISPC function we implemented separately.
Both the "host" and "CUDA device" code are written by you.