NVIDIA Developer Zone

CUDA-GDB

When developing massively parallel applications on the GPU, you need a debugger capable of handling thousands of threads running simultaneously on each GPU in the system.  CUDA-GDB delivers a seamless debugging experience that allows you to debug both the CPU and GPU portions of your application simultaneously.

If you already use GDB to debug your CPU application then getting started with CUDA-GDB involves learning just a few additional debugger commands. Just like GDB, CUDA-GDB provides a console-based debugging interface you can use from the command line on your local system or any remote system on which you have Telnet or SSH access. If you prefer debugging with a GUI frontend, CUDA-GDB also supports integration with DDD and EMACS.

CUDA-GDB Feature Set Overview

CUDA-GDB supports debugging of both 32 and 64-bit CUDA C/C++ applications. It provides full control over the execution of the CUDA application including breakpoints and single-stepping. You can examine variables, read/write memory and registers and inspect the GPU state when the application is suspended. Third party developers can leverage CUDA-GDB powerful features using the CUDA Tools SDK , which can be downloaded from the latest CUDA Toolkit  page

CUDA-GDB on Linux and MAC
>  Debug CUDA C and C++ applications directly on the GPU
>  Simultaneously debug threads on the CPU and thousands of threads executing in parallel on one or more GPUs
>  Debug at either high-level C/C++ source or low-level GPU assembly
>  Use conditional breakpoints to identify and correct errors in CUDA code
>  Identify memory access violations
>  Break on every kernel launch without explicitly setting breakpoint on each kernel
>  *new in CUDA 4.1* Use the autostep mode to detect errors more precisely
>  *new in CUDA 4.1* Debug multiple instances of your application using multiple instances of CUDA-GDB
>  *new in CUDA 4.1* Selectively assert in CUDA code
> Run CUDA-MEMCHECK in integrated mode to detect precise exceptions.

 Debugging Desktop and Graphics Applications with CUDA-GDB
>  Debug CUDA applications that use OpenGL interop on systems with multiple GPUs
>  Remotely debug CUDA application that use OpenGL interop on single GPU system from non-interactive mode on X.

CUDA Debugging on Clusters

NVIDIA partners with the following vendors to provide cluster-class debugging solutions for CUDA applications:

Windows developers should be sure to check out NVIDIA Parallel Nsight for debugging and performance analysis capabilities integrated into Microsoft Visual Studio.

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@nvidia.com