MODULE 07 / Days 61-70

Correctness and debugging

All lessons
  1. 61
    Finding memory bugs with compute-sanitizerHow do I find out-of-bounds accesses and memory leaks in a CUDA kernel?
    run logged
  2. 62
    Finding races with racecheck and synccheckHow do I find a data race in a CUDA kernel?
    run logged
  3. 63
    Debugging a kernel with cuda-gdbHow do I debug a CUDA kernel with cuda-gdb?
    run logged
  4. 64
    printf, assert and when printf liesWhy does printf in my CUDA kernel print nothing?
    run logged
  5. 65
    Deadlocks and hangsWhy does my CUDA kernel hang, and how do I find out where?
    run logged
  6. 66
    Testing GPU kernelsHow do I test CUDA kernels?
    run logged
  7. 67
    CUDA with CMake: separate compilation and which SMs to shipHow do I build CUDA with CMake, and which architectures should I put in CMAKE_CUDA_ARCHITECTURES?
    run logged
  8. 68
    Floating point and reproducibilityWhy does my CUDA reduction give a slightly different result every run?
    run logged
  9. 69
    One CUDA binary across GPU generationsHow do I build one CUDA binary that runs on every GPU generation?
    run logged
  10. 70
    Checkpoint: the CUDA bug catalogWhich tool catches which CUDA bug, and which bugs does no tool see?
    run logged