CUDA-GDB CUDA Debugger - NVIDIA Developer

CUDA-GDB

Release 12.4 NVIDIA

Mar 28, 2024

Contents

1 What is CUDA-GDB?

3

2 Supported Features

5

3 About This Document

7

4 Release Notes

9

5 Getting Started

21

5.1 Setting Up the Debugger Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

5.1.1 Temporary Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

5.1.2 Using the CUDA-GDB debugger on Jetson and Drive Tegra devices . . . . . . . . . . . 21

5.2 Compiling the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5.2.1 Debug Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5.2.2 Compilation With Linenumber Information . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5.2.3 Compiling For Specific GPU architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5.3 Using the Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5.3.1 Single-GPU Debugging with the Desktop Manager Running . . . . . . . . . . . . . . . 23

5.3.2 Multi-GPU Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5.3.3 Remote Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5.3.4 Multiple Debuggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5.3.5 Attaching/Detaching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

6 CUDA-GDB Extensions

27

6.1 Command Naming Convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6.2 Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6.3 Initialization File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6.4 GUI Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6.5 GPU core dump support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

7 Kernel Focus

35

7.1 Software Coordinates vs. Hardware Coordinates . . . . . . . . . . . . . . . . . . . . . . . . 35

7.2 Current Focus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

7.3 Switching Focus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

8 Program Execution

37

8.1 Interrupting the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

8.2 Single Stepping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

9 Breakpoints and Watchpoints

39

9.1 Symbolic Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

9.2 Line Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

9.3 Address Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

9.4 Kernel Entry Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

i

9.5 Conditional Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 9.6 Watchpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

10 Inspecting Program State

43

10.1 Memory and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

10.2 Variable Storage and Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

10.3 Info CUDA Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

10.3.1 info cuda devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

10.3.2 info cuda sms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

10.3.3 info cuda warps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

10.3.4 info cuda lanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

10.3.5 info cuda kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

10.3.6 info cuda blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

10.3.7 info cuda threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

10.3.8 info cuda launch trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

10.3.9 info cuda launch children . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

10.3.10 info cuda contexts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

10.3.11 info cuda managed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

10.4 Disassembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

10.5 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

10.6 Const banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

11 Event Notifications

53

11.1 Context Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

11.2 Kernel Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

12 Automatic Error Checking

55

12.1 Checking API Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

12.2 GPU Error Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

12.3 Autostep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

13 Walk-Through Examples

61

13.1 Example: bitreverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

13.1.1 Walking through the Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

13.2 Example: autostep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

13.2.1 Debugging with Autosteps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

13.3 Example: MPI CUDA Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

14 Tips and Tricks

69

14.1 Command line arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

14.2 set cuda break_on_launch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

14.3 set cuda launch_blocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

14.4 set cuda notify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

14.5 set cuda ptx_cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

14.6 set cuda single_stepping_optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

14.7 set cuda thread_selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

14.8 set cuda value_extrapolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

14.9 Debugging Docker Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

14.10 Switching to Classic Debugger Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

14.11 Thread Block Clusters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

14.12 Debugging OptiX/RTCore applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

14.13 Debugging on Windows Subsystem for Linux . . . . . . . . . . . . . . . . . . . . . . . . . . 73

15 Supported Platforms

75

ii

16 Common Issues on Supported Operating Systems

77

17 Known Issues

79

18 Notices

81

18.1 Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

18.2 OpenCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

18.3 Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

iii

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download