What is CUDA?

NVIDIA's platform for general-purpose computing on its GPUs. Kernels are written in an extended C++, with parallelism expressed as a grid, blocks and threads.

Field: GPU Programming

CUDA in the explanations

Questions that mention CUDA (18)

  1. In GPU programming such as CUDA, what is a "kernel"?
  2. Which correctly orders the CUDA thread hierarchy from largest to smallest?
  3. A CUDA kernel computes each thread's index i with the expression above. What is i for the thread with blockIdx.x = 2, blockDim.x = 256 and threadIdx.x = 5?
  4. Why does the CUDA kernel above include "if (i < n)"?
  5. What is a characteristic of CUDA shared memory?
  6. What does CUDA's __syncthreads() do?
  7. In CUDA, __syncthreads() is placed inside "if (threadIdx.x < 16)" so that only some threads reach it. What can happen?
  8. Which describes a bank conflict in CUDA shared memory?
  9. In CUDA, what is the relationship between blocks and SMs (streaming multiprocessors)?
  10. In CUDA, you want to wait mid-kernel for every other block to finish before moving to the next phase. What is the usual approach?
  11. What is the main purpose of using multiple CUDA streams?
  12. Which describes CUDA unified memory?
  13. What is a common guideline for choosing the number of threads per block in CUDA?
  14. For what kind of access does CUDA constant memory perform especially well?
  15. In CUDA, what generally happens right after the CPU-side program launches a kernel?

Related terms

GPU Bank conflict Bank Unified memory Constant memory OpenCL GPU kernel GPU occupancy GPU shared memory Grid-stride loop

Back to the glossary