C++ 为什么cuda程序会冻结我的显示?
我是CUDA的新手,我只是想制作一个利用了我的GPU的程序。唯一的问题是,我也使用我的显示卡,这冻结了我的屏幕,需要我重新启动C++ 为什么cuda程序会冻结我的显示?,c++,cuda,nvidia,C++,Cuda,Nvidia,我是CUDA的新手,我只是想制作一个利用了我的GPU的程序。唯一的问题是,我也使用我的显示卡,这冻结了我的屏幕,需要我重新启动 __global__ void cuda_burn(int* sum) { int x = 0; for(int i = 0; i < 1000000000; i++) { x += i; } atomicAdd(sum, x); } \uuuuu全局\uuuuuuu无效cuda\u燃烧(int*sum)
__global__ void cuda_burn(int* sum)
{
int x = 0;
for(int i = 0; i < 1000000000; i++)
{
x += i;
}
atomicAdd(sum, x);
}
\uuuuu全局\uuuuuuu无效cuda\u燃烧(int*sum)
{
int x=0;
对于(int i=0;i<100000000;i++)
{
x+=i;
}
原子加法(总和x);
}
我最初像cuda_burn(sum_d)一样发布它代码>它杀死了我的显示器。这对我来说是有意义的,因为我有足够的块和线程来充分利用我的gpu,这样就没有时间处理图形了
接下来我试着像这样启动它cuda_burn(sum_d)代码>我认为,由于我只使用了一个块,它将无法充分利用GPU资源,也无法冻结我的显示。不幸的是,它仍然存在。为什么?
更奇怪的是老鼠不冻
还有比重新启动更好的解冻显示器的方法吗?目前,CUDA和显示器任务不能同时运行。CUDA内核运行时,无论使用多少GPU,显示任务都将“冻结”.1024个线程仍在所有CUDA内核中执行,因此可能仍会冻结屏幕。是的,但我认为,由于所有这些线程都在同一块中,它们只能占用一个SM。您使用的是什么图形卡?Nvidia GTX 960与2gbLooks(如图形卡)配合使用效果良好,问题出在其他地方。