【问题标题】:OpenCL errors on long running tasks长时间运行任务的 OpenCL 错误
【发布时间】:2012-08-01 12:40:03
【问题描述】:

我在 nVidia Quattro 6000 设备上运行一个长时间运行的内核。内核涉及具有数万次迭代的循环。

当我运行内核时,2 秒后屏幕变黑,Windows 重新启动 GPU 驱动程序并且 clFinish 返回错误。所以我给自己买了第二张 GPU 卡,只是为了显示,现在 2 秒超时不适用。

内核计算了 50 秒,然后出现了这些错误(以“GPU ERROR”为前缀的行是 clCreateContext 错误回调打印的错误):

GPU ERROR:
CL_OUT_OF_RESOURCES error executing clFinish on Quadro 6000 (Device 0).

Computation finished, took 50 seconds (00:00:50)
GPU ERROR:
CL_OUT_OF_RESOURCES error waiting for idle on Quadro 6000 (Device 0).

clFinish() returned CL_OUT_OF_RESOURCES
GPU ERROR:
CL_OUT_OF_RESOURCES error waiting for idle on Quadro 6000 (Device 0).

我该怎么办?

为简单起见,这是该内核的精简版。实际上它在曲面上执行积分,这就是我需要一个循环的原因 - 但这个简单的版本也会崩溃,对于足够大的 n。

__kernel void integrate(
                 __global float *input,
                 __global float *output,
                 unsigned int n,
         float c)
{
  size_t kernel_idx = (get_global_id(1)*get_global_size(0) + get_global_id(0));
  if(kernel_idx < inputWidth*inputHeight*inputDepth)
  {
    int j;
    ...
    float sum = 0.0;

    for(j = 0; j < n; j++) // y
    {
      sum += input[j];
    }

    output[kernel_idx] = sum;
    }
}

【问题讨论】:

  • 更新:更新驱动后,回调错误不存在,clFinish()返回CL_INVALID_COMMAND_QUEUE

标签: windows opencl nvidia


【解决方案1】:

【讨论】:

  • 我已经试过了,但没有帮助 - 这是我的 regedit 截图:i.imgur.com/uVthg.png
  • 好的,完全禁用检查,不像对超时的调整。谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-08-13
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
  • 2013-07-08
  • 2014-09-10
相关资源
最近更新 更多