【问题标题】:Why does this cuda program freeze my display?为什么这个 cuda 程序会冻结我的显示?
【发布时间】: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&lt;&lt;&lt;1024, 1024&gt;&gt;&gt;(sum_d); 一样启动它,这杀死了我的显示。这对我来说很有意义,因为我有足够的块和线程来充分利用我的 gpu,这没有时间用于图形。

接下来我尝试像这样cuda_burn&lt;&lt;&lt;1, 1024&gt;&gt;&gt;(sum_d); 启动它,我认为由于我只使用一个块,它无法充分利用 GPU 资源并且不会冻结我的显示。不幸的是,它仍然存在。为什么?

还有什么奇怪的是鼠标不死机?

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

【问题讨论】:

  • 1024 个线程仍然在你所有的 CUDA 内核中执行,所以它仍然可能冻结你的屏幕。
  • 是的,但是我虽然因为所有这些线程都在同一个块中,所以它们只能占用一个 SM。
  • 你用的是什么显卡?
  • Nvidia GTX 960 2GB
  • 看来显卡工作正常,问题出在其他地方。

标签: c++ cuda nvidia


【解决方案1】:

目前,CUDA 和显示任务不能同时运行。当一个 CUDA 内核运行时,无论它使用多少 GPU,显示任务都将被“冻结”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-13
    • 2012-01-12
    • 2020-02-23
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 2022-01-23
    相关资源
    最近更新 更多