【问题标题】:Repeated calling of enqueueNDRangeKernel in OpenCL在 OpenCL 中重复调用 enqueueNDRangeKernel
【发布时间】:2011-12-09 23:13:37
【问题描述】:

enqueueNDRangeKernel 重复调用时还应该调用哪些其他 OpenCL 函数?

我无法找到以这种方式显示 enqueueNDRangeKernel 使用的教程,不幸的是,我的编码尝试导致了未处理的异常错误。之前有人问过类似的问题,但回答似乎不适用于我的情况。

我目前有一个循环,我在其中按以下顺序调用 OpenCL 函数:

  1. setArg
  2. enqueueNDRangeKernel
  3. enqueueMapBuffer
  4. enqueueUnmapMemObject

我调用 setArg 是因为内核的输入在每次调用 enqueueNDRangeKernel 之前都会发生变化。我正在调用 enqueueMapBuffer 和 enqueueUnmapMemObject,因为内核的输出用于主机代码。内核第一次运行正常(输出正确),但在第二次通过循环时,调用 enqueueMapBuffer 时出现未处理的异常错误。

我正在使用以下设置:

  1. 带有 CL_DEVICE_TYPE_CPU 的 Intel OpenCL SDK(在 Intel i7 CPU 上)
  2. Windows 7 上的 Visual Studio 2010 IDE
  3. 主机代码是用 C++ 编写的,带有 OpenCL C++ 绑定。

谢谢。

【问题讨论】:

    标签: opencl gpgpu gpu


    【解决方案1】:

    问题已解决...事实证明,我使用了正确的 OpenCL 函数调用序列。我的内核中存在一个问题,该问题仅在循环的第一次迭代后才出现。

    【讨论】:

      【解决方案2】:

      我正在尝试和你做同样的事情,但我被困在某一点上。我设法使 OpenCL 程序和内核都工作,但是当我尝试循环它几次时,它只有在我循环整个代码从创建分配设备到释放所有 mem_...

      【讨论】:

        猜你喜欢
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-29
        • 1970-01-01
        • 1970-01-01
        • 2020-06-01
        相关资源
        最近更新 更多