Skip to content

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

compute-sanitizer: functional correctness checking suite for CUDA programs

Available

  • Puhti: version depends on the CUDA environment
  • Mahti: version depends on the CUDA environment
  • 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