debug cuda程序貌似并没有想象中那么容易。
我的环境是ubuntu16.04, cuda_toolkit 8.0 ,显卡驱动为nvidia-367,debug提示:
|
|
查阅CUDA-GDB发现:
Debugging a CUDA GPU involves pausing that GPU. When the graphics desktop manager is running on the same GPU, then debugging that GPU freezes the GUI and makes the desktop unusable。
解决办法
如果不用图形界面的话,可以直接停止X11 server通过停止lightdm服务;
如果要用图形界面的话,需要使用cuda software preemption.
- 一种方法cuda-gdb 中使用以下命令,不过这种需要每次cuda-gdb都输入,比较麻烦。
|
|
- 另一种方法设置环境变量,具体为设置~/.bashrc文件,最下方加入以下命令。不过这种支持设备SM3.5 compute capability
|
|
在无意中发现,其实还有一种方法,使用IDE为Nsight Sclipse Edition,选择 window->preferences->Nsight,其中有一个选项Enable CUDA software preemption debugging,,只要勾选即可。再次Debug,没有问题啦~