【发布时间】:2015-08-07 12:55:02
【问题描述】:
我是 CUDA 的新手,我只是想制作一个使用大量 GPU 的程序。唯一的问题是我也在使用该卡进行显示,这冻结了我的屏幕并要求我重新启动。
__global__ void cuda_burn(int* sum)
{
int x = 0;
for(int i = 0; i < 1000000000; i++)
{
x += i;
}
atomicAdd(sum, x);
}
我最初像 cuda_burn<<<1024, 1024>>>(sum_d); 一样启动它,这杀死了我的显示。这对我来说很有意义,因为我有足够的块和线程来充分利用我的 gpu,这没有时间用于图形。
接下来我尝试像这样cuda_burn<<<1, 1024>>>(sum_d); 启动它,我认为由于我只使用一个块,它无法充分利用 GPU 资源并且不会冻结我的显示。不幸的是,它仍然存在。为什么?
还有什么奇怪的是鼠标不死机?
还有没有比重启更好的解冻显示器的方法?
【问题讨论】:
-
1024 个线程仍然在你所有的 CUDA 内核中执行,所以它仍然可能冻结你的屏幕。
-
是的,但是我虽然因为所有这些线程都在同一个块中,所以它们只能占用一个 SM。
-
你用的是什么显卡?
-
Nvidia GTX 960 2GB
-
看来显卡工作正常,问题出在其他地方。