为什么这个 cuda 程序会冻结我的显示?

Why does this cuda program freeze my display?

我是 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 资源并且不会冻结我的显示。不幸的是,它仍然如此。为什么?

奇怪的是鼠标不卡顿?

还有比重启更好的解冻显示的方法吗?

目前CUDA和显示任务不能同时运行。虽然 CUDA 内核是 运行ning,但无论它使用多少 GPU,显示任务都将是 "frozen"。