为啥我的 OpenCL.dll 没有 clReleaseDevice 功能?

Posted

技术标签:

【中文标题】为啥我的 OpenCL.dll 没有 clReleaseDevice 功能?【英文标题】:Why my OpenCL.dll doesn't have clReleaseDevice function?为什么我的 OpenCL.dll 没有 clReleaseDevice 功能? 【发布时间】:2022-01-14 10:12:54 【问题描述】:

初始化设备变量时出错。

cl::Device device;

问题:

过程入口点 clReleaseDevice 不能位于 动态链接库 OpenCL.dll

我从C:\Windows\System32 with "Dependency Walker"打开OpenCL.dll,确实没有这个功能。我使用的是 Windows 7 和 NVIDIA CUDA Toolkit 11.5,无法运行最简单的程序。

为什么会这样?如何解决?

【问题讨论】:

【参考方案1】:

clReleaseDevice 已添加到 OpenCL 1.2。因此,如果您的 OpenCL 库不包含此功能,则意味着该库仅支持 OpenCL 1.1 或更早版本。因此,您可以通过两种方式解决此问题:

    更新 OpenCL.dll(例如,构建指令可用here) 根据 OpenCL 1.1 或更早版本重写示例。看起来你使用cl2.hppopencl.hpp,所以你可以使用CL_HPP_TARGET_OPENCL_VERSION宏来指定目标OpenCL版本:
#define CL_HPP_TARGET_OPENCL_VERSION 110
#include <CL/opencl.hpp>

【讨论】:

以上是关于为啥我的 OpenCL.dll 没有 clReleaseDevice 功能?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Chrome Profiler 没有为我的对象显示正确的保留路径,为啥我的对象从未被释放?

为啥我的 CAGradientLayer 没有显示?

为啥我的 ModalViewController 没有释放?

为啥我的 ABPersonViewController 没有显示所有属性?

为啥我的 onNext 没有触发我的 rx 订阅?

为啥我的 SecurityWebFilterChain 没有被调用?