【问题标题】:openCL clEnqueueNDRangeKernel fails; does not return a listed error typeopenCL clEnqueueNDRangeKernel 失败;不返回列出的错误类型
【发布时间】:2012-07-17 14:57:31
【问题描述】:

我的应用程序正在 openCL 内核中进行图像处理,并将输出写入 openGL 纹理以供显示。

我正在创建上下文、命令队列、编译程序并创建内核、采样器和 2D 图像对象而没有错误。在我尝试将内核排队执行之前,一切都运行良好,没有报告错误:

errNum = clEnqueueNDRangeKernel(commandQueue, kernel, 2, NULL, globalWorkSize, localWorkSize, 0, NULL, NULL);

此调用返回值 -1000。

根据 clEnqueueNDRangeKernel 的在线manpage,可以设置几个值 errNum(在 cl.h 头文件中定义)。这些值都不匹配 -1000。

关于这个错误的任何想法?


如果相关的话,我在 Nvidia NVS 4200M gpu 上运行。

【问题讨论】:

  • 我假设 errNum 是 cl_int 类型?全球和本地工作组的规模是多少?
  • 平台?选择 OpenCL SDK?
  • @James:听起来他正在使用带有 GPU 设备的 NVIDIA OpenCL 实现。 Milky_joe,你也可以发布内核吗?
  • @James 我在带有 Nvidia NVS 4200M gpu 芯片的 Windows 机器上运行。我也在运行 Nvidia 的 openCL sdk。
  • @TimChild 是的,errNum 是 cl_int。全局和本地工作组大小的类型为 size_t[2]

标签: opencl


【解决方案1】:

我不完全确定,但您可能会从 nvidia 的 OpenCL 实现小猪的底层 CUDA 库中看到(否定的?)CUDA_ERROR_UNKNOWN(曾经是 999,但可能已经增加到 1000)背在上面。我之前曾看到弹出 CUDA_ERROR_INVALID_VALUE 错误(在我的 ErrorCode 枚举中的第一个值处查看 here),这就是我怀疑这一点的原因。

【讨论】:

    【解决方案2】:

    我假设您正在使用 cl gl interop? 见 cl_gl.h:

    #define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR  -1000
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 2019-06-21
      相关资源
      最近更新 更多