安装Intel CPU Runtime for OpenCL Applications 后程序无法获取OpenCL Providers 问题的解决方法

Jason 发布于 2024-01-01 887 次阅读


如图,第一次执行需要用到OpenCL的程序时报错

在修复后,能正常获取OpenCL Provider

安装Intel CPU Runtime for OpenCL Applications时使用的安装包为: w_opencl_runtime_p_2024.0.0.49848.exe 

在经过排查后发现是注册表中英特尔OpenCL提供的 intelocl64.dll文件路径有问题

注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors

原来的值为:C:\Program Files (x86)\Common Files\Intel\Shared Libraries\intelocl64.dll

实际上此文件的位置位于:C:\Program Files (x86)\Common Files\Intel\Shared Libraries\bin\intelocl64.dll

因此只需要将原来的值改为:C:\Program Files (x86)\Common Files\Intel\Shared Libraries\bin\intelocl64.dll 即可


更新:

笔者在不同机器上测试后发现,修改前注册表中的值是不固定的(会有微小的差别,但总体是:\Program Files (x86)\Common Files\Intel\Shared Libraries\,其后的目录可能有所不同)。

但intelocl64.dll文件的实际位置基本都在C:\Program Files (x86)\Common Files\Intel\Shared Libraries\bin\intelocl64.dll

以防万一,建议在修改前手动搜索一下intelocl64.dll (在Shared Libraries文件夹下搜索即可),并将注册表的值修改为你实际找到的路径。

另外,部分机器可能会缺失一个名为 IntelOpenCLProfiler.dll 的项,类型为dword,值为0,如果没有,需要手动加上。