我在Windows10上通过Anaconda运行python 3.5.4和conda-forge的pyopencl 2017.2,通过Anaconda安装。我的系统是带有R9 290的i5 4670K,运行的驱动程序版本为17.11.1和OpenCL版本23.20.788.0。
在尝试导入pyopencl模块时,我遇到以下错误
>>> import pyopencl as cl
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "[my home folder]\Anaconda3\lib\site-packages\pyopencl\__init__.py", line 37, in <module>
import pyopencl.cffi_cl as _cl
File "[my home folder]\Anaconda3\lib\site-packages\pyopencl\cffi_cl.py", line 39, in <module>
from pyopencl._cffi import ffi as _ffi
ImportError: DLL load failed: The specified module could not be found.加载_cffi.pyd时出现错误。此错误与之前线程中显示的问题有相似之处:
cffi load failure when trying to import PyOpenCL
pyopencl import error cffi.so undefined symbol
然而,尽管安装完成(似乎)没有错误,我从AMD和英特尔安装OCL SDK:s问题仍然存在。我还更新了我的图形卡驱动程序。
我尝试使用Dependency Walker检查_cffi.pyd的依赖关系,如下线程所述:
Python pyopencl DLL load failed even with latest drivers
这确实在名称以API-MS-WIN和EXT-MS-WIN开头的opencl.dll下出现了许多循环依赖和缺失依赖。在/System32中重命名opencl.dll并改用\Anaconda3\Library\bin中的名称时,依赖项错误仍然存在。
我搜索了一下,发现了这个帖子:
Dependency Walker: missing dlls
这基本上是说,丢失的依赖项没有什么可担心的。
发布于 2018-12-18 03:18:15
我也遇到了这个问题,我的研究使我找到了这个文档,它帮助我安装了一个兼容的版本:https://media.readthedocs.org/pdf/mot/master/mot.pdf
该错误是因为您没有适用于AMD或Intel的pyopencl和opencl驱动程序的兼容版本。
引用:
安装预编译的二进制轮子(.whl)是安装PyOpenCL的最简单方法,但只有在为您的特定Python实现编译轮子的情况下才有效。在Christoph Gohlke网站(http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopencl)上,您可以找到一系列PyOpenCL二进制包。如果有适用于您系统的兼容版本,请下载该版本。如果二进制名中的Python版本和OpenCl版本与您安装的Python版本和驱动程序支持的版本匹配,您可以查看它是否兼容。请注意,许多驱动程序,例如nVIDIA的,只支持OpenCL 1.2,因此在这种情况下,请在名称中使用“+cl12”,而不是例如“+cl21”。例如,如果你有64位Windows系统,Python3.5,并且你的图形处理器或中央处理器驱动程序支持OpenCL 1.2,你需要下载名称中带有“+cl12”,
win-amd64和cp35m的轮子(注意格式,cpm,m是重要的)。(要检查您的Python版本,可以在命令行中运行python --version)。
这应该会对你有帮助
发布于 2019-12-18 04:52:48
我在我的英特尔核芯显卡4400 GPU上遇到了同样的问题。它以前工作过(我记不清之前是怎么工作的了)。在某种程度上,我得到了与Asker描述的完全相同的pyopencl导入错误。
经过一些尝试之后,我从这里安装了英特尔OpenCL驱动程序:https://software.intel.com/en-us/articles/opencl-drivers。在安装过程中,它显示我的常规英特尔HD4400驱动程序需要先卸载,这是安装工具为我做的。然后安装了OpenCL驱动程序,我可以再次在我的图形处理器上使用OpenCL了。我的理论是:可能,我的设置在Windows更新期间被损坏了,而Windows更新有时也倾向于更新设备驱动程序。
https://stackoverflow.com/questions/47161850
复制相似问题