【问题标题】: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,无法运行最简单的程序。
为什么会这样?如何解决?
【问题讨论】:
标签:
windows
dll
opencl
nvidia
【解决方案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>