【问题标题】:What can cause CL_INVALID_CONTEXT (-34) on clCreateBuffer?什么会导致 clCreateBuffer 上的 CL_INVALID_CONTEXT (-34)?
【发布时间】:2021-06-30 23:25:15
【问题描述】:

我正在使用 2015 MacBook Pro 和 Iris Pro 设备,当我尝试使用 clCreateBuffer clCreateBuffer(context, flags, v.size() * sizeof(int), NULL, &error) 分配 1024 int 内存时,我收到错误 CL_INVALID_CONTEXT (-34) 但上下文没有返回错误,我甚至用它创建了一个命令队列。 有什么想法吗?。

【问题讨论】:

  • 您应该提供更多“上下文”以获得一些帮助。你有任何opencl代码工作吗?如果不是第一件事,请尝试运行 clinfo 命令来检查您的平台、设备并了解您的 opencl 版本。之后,您可以从hands on opencl 编译一些示例。他们在 c、c++ 和 python 上有 opencl 代码。
  • 这可能是这里指出的线程问题:stackoverflow.com/a/63263399/9178992

标签: c++ opencl


【解决方案1】:

我找到了答案,我在clCreateBuffer 之前发布了上下文clReleaseContext。发生这种情况是因为我使用了 clases,并且在析构函数中我输入了 clReleaseContext,但我没有意识到析构函数被调用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 2011-04-19
    • 2020-02-03
    • 1970-01-01
    • 2011-02-11
    相关资源
    最近更新 更多