MODULE 01 / Days 1-10

First kernels

All lessons
  1. 1
    Your first CUDA kernel (and why it prints nothing)Why does my CUDA hello world print nothing?
    run logged
  2. 2
    How a GPU differs from a CPUHow is a GPU different from a CPU?
    run logged
  3. 3
    How to set up CUDA (Linux, Windows, WSL2, Colab, Kaggle)How do I install CUDA and check that it actually works?
    run logged
  4. 4
    CUDA grid, block and thread indexing explainedHow do blockIdx, blockDim and threadIdx map a thread to an array element?
    run logged
  5. 5
    CUDA vector addition, end to end with error checkingHow do I write a CUDA vector addition, and why does mine run without reporting an error?
    run logged
  6. 6
    How to check for errors in CUDAHow do I check for errors in CUDA, and why is the error reported at the wrong line?
    run logged
  7. 7
    Two-dimensional grids and image kernelsHow do I launch a 2D grid in CUDA, and does x map to the row or the column?
    run logged
  8. 8
    Bounds checks and CUDA grid-stride loopsHow do I write a CUDA kernel that is correct for any N?
    run logged
  9. 9
    Why your GPU code looks slower than your CPUWhy is my CUDA code slower than my CPU?
    run logged
  10. 10
    How to choose threads per block and blocks per gridHow do I choose the number of threads per block and blocks per grid for a CUDA kernel?
    run logged