我使用的是 Windows 7、CUDA 5,但在使用 CUDA 4.2 时也遇到了这个问题(提示升级到 5)。
我通过 SSH 进行远程登录(使用 cygwin 的 ssh),当我运行以下测试程序时,它告诉我没有设备存在。
$ ./a.exe
CUDA error: no CUDA-capable device is detected
$ cat test.cu
#include <stdio.h>
__global__ void foo()
{
}
int main()
{
foo<<<1,1>>>();
printf("CUDA error: %s\n", cudaGetErrorString(cudaGetLastError()));
return 0;
}
当我尝试运行 deviceQuery 时,它会无限循环。以下是代码片段:
CUDA Device #91366
Major revision number: 0
Minor revision number: 0
Name: pqrstuvwB
Total global memory: 1895825521
Total shared memory per block: 3
Total registers per block: -1073741632
Warp size: 0
Maximum memory pitch: 132
Maximum threads per block: -1819111168
Maximum dimension 0 of block: -1751738988
Maximum dimension 1 of block: 1997970554
Maximum dimension 2 of block: 0
Maximum dimension 0 of grid: 1895825521
Maximum dimension 1 of grid: 0
Maximum dimension 2 of grid: 0
Clock rate: 0
Total constant memory: 0
Texture alignment: 0
Concurrent copy and execution: Yes
Number of multiprocessors: 0
Kernel execution timeout: No
这些程序在本地运行时给出了预期的输出。我有两台 GTX 480 和一台 9500 GT。在之前的版本(我猜是 4.2 之前的版本)中,这确实有效,我用它来远程开发 CUDA 应用程序。现在我不能了。
我看到了一些关于 CUDA 无法通过远程桌面运行的评论,并建议人们改用 VNC - 但没有关于 SSH 的评论。不管怎样,这种情况在显示器打开和关闭时都会发生。