Skip to content

compute-sanitizer: functional correctness checking suite for CUDA programs

Available

  • Roihu-GPU: version depends on the CUDA environment

License

Usage is possible for both academic and commercial purposes.

Usage

compute-sanitizer is a functional correctness checking suite included in the CUDA toolkit (cuda module needs to be loaded). In order to use the tool, the CUDA code has to be compiled with the extra flags -g and -G.

Running the tool can be done either in an interactive session or in a batch job. The application is started as (prepend compute-sanitizer by srun in a batch job):

compute-sanitizer  --tool <tool> ./cuda_program
where <tool> is one of the several sub-tools for different type of checks:

  • memcheck: is capable of precisely detecting and attributing out of bounds and misaligned memory access errors in CUDA applications. It can also report hardware exceptions encountered by the GPU (default)

  • racecheck: can report shared memory data access hazards that can cause data races.

  • initcheck: can report cases where the GPU performs uninitialized accesses to global memory

  • synccheck: can report cases where the application is attempting invalid usages of synchronization primitives

Info

Sometimes external libraries (e.g. MPI) generate a lot of false positives

Do you find this page useful?
Thank you for your feedback!
Thank you! Your feedback is appreciated.

Please let us know how we could improve this page by contacting us or by creating an issue in GitHub. You can also edit this page yourself and contribute your improvements by creating a pull request.