As long as humans write software, there will be software bugs. And as many computational scientists today are orchestrating thousands of threads across massively parallel GPU systems, debugging and correctness tools are key pieces in the programmer’s toolchest. In this seminar, we’ll begin with an overview of runtime error-checking best practices and how to recover from CUDA errors using CUDA-GDB. Next we’ll take a look at the CUDA Compute Sanitizer suite, which contains tools to detect race conditions and memory access errors. We’ll finish with a demonstration with CUDA-GDB on Polaris.