代码之家  ›  专栏  ›  技术社区  ›  fho

atom公司/atomic公司的cl_out_of_资源错误

  •  1
  • fho  · 技术社区  · 14 年前

    kernel exampleKernel(
      global volatile int * x, 
      global const int   maxX,
      global const int * buf1, 
      global const int * buf2
      )
    {
      if(x < maxX)
      {
        int y = atom_inc(x);
        buf2[y] = buf1[get_global_id(0)];
      }
    }
    

    但当我调用它时,它会给我一个clu OUT_OF_RESOURCES错误。 用0替换atom_inc(x)可以解决此问题。。。但却使内核无用。

    你知道什么会导致这个错误吗?

    编辑:我在程序中包含了这些扩展:

    #pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics : enable
    #pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics : enable
    

    kernel.setArgs(0,0);
    

    我需要在这里使用内存对象吗?

    谨致问候,

    1 回复  |  直到 14 年前
        1
  •  0
  •   fho    14 年前

    啊。。。好 啊。。。在这种情况下,似乎必须使用内存对象。

    这里的解决方案是创建一个单元素OpenCL缓冲区并将其设置为第一个参数。