为啥我的 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.hpp
或opencl.hpp
,所以你可以使用CL_HPP_TARGET_OPENCL_VERSION
宏来指定目标OpenCL版本:
#define CL_HPP_TARGET_OPENCL_VERSION 110
#include <CL/opencl.hpp>
【讨论】:
以上是关于为啥我的 OpenCL.dll 没有 clReleaseDevice 功能?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 Chrome Profiler 没有为我的对象显示正确的保留路径,为啥我的对象从未被释放?
为啥我的 ModalViewController 没有释放?