C++ 为什么cuda程序会冻结我的显示?

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)

我是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)
{
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(如图形卡)配合使用效果良好,问题出在其他地方。