我正在运行一个小型CUDA应用程序:QuickSort基准算法(请参阅here)。我的双系统配有NVIDIA 660GTX(设备0)和8600GTS(设备1)。
在Windows 8和Visual Studio下,应用程序在设备0上编译并运行完美。在Linux(Ubuntu 12.04 LTS)下,应用程序使用nvcc和gcc进行编译,但突然停在其轨道上,返回(unspecified launch failure)
。
我有两个问题:
bandwidhtTest
块,但运行deviceQuery
继续执行良好。 如何重置我的GPU?我已经尝试了cudaDeviceReset()
方法,但没有帮助提前感谢您的帮助!
答案 0 :(得分:1)
使用nvidia-smi实用程序,如果GPU兼容,您可以重置GPU
根据我的知识和经验,(unspecified launch failure)
通常会裁断分段错误。您是否指定了正确使用的GPU?尝试使用cuda-memcheck来查看是否有任何内存超出限制的场景。
答案 1 :(得分:0)
根据我的经验,XID 31总是由访问错误的指针(也就是内存访问冲突)引起的。
我首先要追寻这条道路。使用cuda memcheck运行您的应用程序。像那个cuda-memcheck you_app args to your app
一样,看它是否发现任何错误的内存访问。
也可以尝试使用cuda-gdb
或Nsight Eclipse Edition踩踏代码。
答案 2 :(得分:0)
我发现使用
cuda-memcheck -b ...
阻止设备锁定。