0

nVidia Quattro 6000 デバイスで長時間カーネルを実行しています。カーネルには、数万回の反復を伴うループが含まれます。

カーネルを実行すると、2 秒後に画面が真っ暗になり、Windows が GPU ドライバーを再起動し、clFinish がエラーを返しました。そのため、表示するためだけに2枚目の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;
    }
}
4

1 に答える 1

1

TDR レジストリ キーを確認し、それに応じて調整します

http://msdn.microsoft.com/en-us/library/windows/hardware/ff569918%28v=vs.85%29.aspx

于 2012-08-03T14:31:20.017 に答える