小编Ped*_*dro的帖子

CUDA调试,或如何在不禁用优化的情况下获取cuda-gdb中的源代码行?

我有一个相当大而复杂的CUDA代码,可以很好地挂起大量的块/线程.我试图找出代码挂起的确切位置.

当我运行代码时cuda-gdb,我可以看到哪些线程/块挂起,但我无法看到"虚拟PC"之外的位置.

如果我使用"-G"编译代码来获取调试信息,那么无论我运行多长时间,它都会运行得慢很多并且拒绝挂起.

有没有办法将"虚拟PC"映射到源代码中的一行代码,甚至大约?或者有没有办法在不关闭所有优化的情况下获取调试信息?

我尝试过使用"-G3",但无济于事.这只是给了我"#nvcc warning : Setting optimization level to 0 as optimized debugging is not supported" 类型的警告.我正在使用CUDA编译工具4.1版.

debugging cuda nvidia cuda-gdb

4
推荐指数
1
解决办法
2757
查看次数

如何在CUDA中测量流式多处理器的使用/空闲时间?

一个简单的问题,确实:我有一个内核,它可以运行每个Streaming Multiprocessor(SM)的最大块数,并且想知道我理论上可以从中提取多少性能.理想情况下,我想知道空闲的SM周期的百分比,即所有warp在内存访问时被阻止.

我真的只是想找到这个号码.我想要的是

  • 增加入住率的一般提示.我正在使用我可以获得的所有占用,即使我设法获得更多性能,它也不会告诉我理论上可能有多少.
  • 如何计算GFlops的理论峰值.我的计算不是以FP为中心的,还有很多整数运算和逻辑.

profiling cuda multiprocessor

0
推荐指数
1
解决办法
1411
查看次数

标签 统计

cuda ×2

cuda-gdb ×1

debugging ×1

multiprocessor ×1

nvidia ×1

profiling ×1