Accurately identifying the source and cause of memory access errors can be frustrating and time-consuming.  CUDA-MEMCHECK detects these errors in your GPU code and allows you to locate them quickly.  CUDA-MEMCHECK also reports runtime execution errors, identifying situations that could otherwise result in an “unspecified launch failure” error when your application is running.

Running CUDA-MEMCHECK on your application is easy; simply pass your application’s name as a parameter to CUDA-MEMCHECK on the command line. CUDA-MEMCHECK can also be enabled within CUDA-GDB while debugging your CUDA applications.

     

Key Features

(click images to expand)

  • Monitors hundreds of thousands of threads running concurrently on each GPU
  • Reports detailed information about global memory access errors such as out of bounds accesses and misaligned memory accesses, including instruction offet in CUDA Function/Kernel name or source file and line number
  • Reports runtime executions errors such as device or user stack overflows and Illegal instructions
  • Misaligned or Out of range accesses to shared and local memory
  • Reports detailed information about potential race conditions between accesses to shared memory. Including severity information about hazard, block and thread index, CUDA function/kernel name & instruction offset, source file and line number and data values being written
  • Displays stack back traces on host and device for errors
  • Reports if any CUDA API calls returned errors
  • Support for 32-bit and 64-bit application with or without debug information
  • Support Kepler based GPUs, SM 3.0 and SM 3.5
  • Support for dynamic parallelism
  • Precise error detection for most access tyles include nonconherent globals loads on SM3.5
  • Error detection on device side malloc()/free()
  • Increased functionality in integration mode with CUDA-GDB to detect memory access errors while debugging
  • *New* in CUDA 5.5 : Racecheck Analysis Mode
    Use the new analysis mode built into the racecheck tool to quickly summarize the causes of races in the application
  • *New* in CUDA 5.5 : Early reporting
    On Linux and Mac, cuda-memcheck will start printing error messages before the application terminates.
     

 

Availability

The latest version of CUDA-MEMCHECK with support for CUDA C and CUDA C++ applications is available with the CUDA Toolkit and is supported on all platforms supported by the CUDA Toolkit.
Developers should be sure to check out NVIDIA Nsight for integrated debugging and profiling. Nsight Eclipse Edition for Linux and MAC support, and Nsight Visual Studio Edition for Windows.

References

 

Questions on CUDA Tools?

If you encounter difficulty with any of the CUDA Tools or have more questions please contact the NVIDIA tools team at cudatools@nvida.com