CUDA-GDB提供了无缝的调试体验,可以同时调试应用程序的CPU和GPU部分。...CUDA-GDB是用于调试在Linux和QNX上运行的CUDA应用程序的NVIDIA工具。CUDA-GDB是GNU项目调试器GDB的扩展。...CUDA-GDB在Linux上运行,并针对Linux和QNX系统。 CUDA-GDB旨在为使用者提供一个无缝调试环境,该环境允许在同一应用程序中同时调试GPU和CPU代码。...CUDA-GDB支持调试C / C ++和Fortran CUDA应用程序。(Fortran调试支持仅限于64位Linux操作系统)CUDA-GDB可以调试NVCC编译器支持的所有C ++功能。...https://docs.nvidia.com/cuda/cuda-gdb/index.html ?
简要教程 仿佛对于.cu程序的调试是需要关闭x的,所以学习了一下如何用cuda-gdb在tty下调试.cu程序. 1....直接在命令行里输入cuda-gdb就可以进入cuda-gdb了 4....获取帮助 使用下面的语句可以获得相应指令的帮助 (cuda-gdb) help cuda cuda指令 (cuda-gdb) help set cuda cuda设置 (cuda-gdb) help info...cuda info-cuda 指令 使用方法 # 下面的语句可以获取当前所处的设备各种信息 (cuda-gdb) cuda device sm warp lane block thread block...(0,0,0), thread (0,0,0), device 0, sm 0, warp 0, lane 0 (cuda-gdb) cuda kernel block thread kernel 1
这次也会简要介绍下cuda-gdb的用法, 其实和gdb用法几乎一样, 也就是多了个cuda命令. ---- cuda-gdb 如果之前没有用过gdb, 可以速学一下, 就几个指令....想要用cuda-gdb对程序进行调试, 首先你要确保你的gpu没有在运行操作系统界面, 比方说, 我用的是ubuntu, 我就需 要用sudo service lightdm stop关闭图形界面, 进入...但是注意, 编译的使用需要改变一下, 加入-g -G参数, 其实和gdb是相似的. nvcc -g -G CUDAAdd.cu -o CUDAAdd.o 然后使用cuda-gdb CUDAAdd.o即可对程序进行调试
在应用层,可以通过 分析应用日志、使用 GDB 或 cuda-gdb 调试应用,pystack 查看调用栈信息。...最后,我们对应用层进行分析,增加一些环境变量,增加程序hang超时退出时的日志,并利用集群排障工具,对所有rank,使用cuda-gdb进行调用栈分析,以检测是否有进程或线程存在不一致的情况。...使用 cuda-gdb 工具对调用栈进行分析cuda-gdb 用于调试 cuda应用程序,是 GDB的扩展。...官方介绍:https://docs.nvidia.com/cuda/cuda-gdb/index.html, cuda-gdb 通常情况下,一般会在驱动安装时安装好。...需要注意的是,在容器中,需要使用 cuda-gdb 时,需要映射 libcudadebugger.so 文件到容器中,否则cuda-gdb可能无法正常工作。
overflows, the kernel call fails with a stack overflow error if the application is run via a CUDA debugger (cuda-gdb...overflows, the kernel call fails with a stack overflow error if the application is run via a CUDA debugger (cuda-gdb...没有调试器就是直接启动程序,有调试器就是在调试器下面启动程序(例如cuda-gdb your_program或者nsight->start cuda debugging)。
如果需要调试GPU程序,可以使用cuda-gdb,文档地址为:http://docs.nvidia.com/cuda/cuda-gdb/index.html#axzz4nAAR7ujZ。
其他工具 CUDA 工具包中还包含用于 CPU 和 GPU 线程调试的CUDA-GDB以及用于功能正确性检查的Compute Sanitizer都支持 NVIDIA Hopper 架构。
调试 可以使用CUDA-GDB,这个我也写过,详情见这里:使用cuda-gdb调试cu程序 或者用NVIDIA Parallel Nsight来调试:http://developer.nvidia.com
cuda-gdb-10-0 10.0.130-1 amd64 CUDA-GDB...cuda-gdb-10-0 10.0.130-1 amd64 CUDA-GDB...cuda-gdb-10-2 10.2.89-1 amd64 CUDA-GDB...cuda-gdb-10-2 10.2.89-1 amd64 CUDA-GDB
使用debug工具:如果排查问题仍然困难,可以使用CUDA提供的debug工具,例如cuda-gdb或者NVIDIA Visual Profiler(nvprof)来获取更详细的错误信息和调试信息。
CUDA软件是独立运行的, 直接就会彻底的挂掉, context被损坏, 完全无法继续, 必须重置设备或者重建context(后者对于driver api),如果是在调试器下运行(例如nsight下, 或者cuda-gdb
遗憾的是,整个inference还是没有跑起来,当我用尽了我当时力所能及的cuda的debug工具(cuda-gdb,cuda-memcheck,...)最终发现还是败在了模型的多张帧输入没办法做到CPU
需要注意的是: printf()辅助调试, 并非是"非侵入式"的, (一般认为cuda-gdb, 或者nsight这种是, 不会造成额外干扰),用它进行调试, 会引入额外的代码执行变化.
cuobjdump nsys nvlink ptxas cuda-gdb
领取专属 10元无门槛券
手把手带您无忧上云