繁体   English   中英

pyopencl 导入错误

[英]pyopencl Import Error

我在 Windows 10 上通过 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时出现该错误。 此错误与之前线程中显示的问题有相似之处:

Python pyopencl 导入错误

尝试导入 PyOpenCL 时 cffi 加载失败

pyopencl 导入错误 cffi.so 未定义符号

然而,尽管安装完成(似乎)没有错误,我从 AMD 和英特尔安装 OCL SDK:s 问题仍然存在。 我还更新了我的图形卡驱动程序。

我尝试使用 Dependency Walker 检查_cffi.pyd依赖_cffi.pyd ,如以下线程中所述:

即使使用最新的驱动程序,Python pyopencl DLL 加载也失败

这确实在opencl.dll下出现了很多循环依赖项和缺失的依赖opencl.dll ,名称以API-MS-WINEXT-MS-WIN开头。 重命名/System32opencl.dll并改用\\Anaconda3\\Library\\binopencl.dll时,依赖项错误仍然存​​在。

做了一些搜索,我发现了这个线程:

Dependency Walker:缺少 dll

这基本上说缺少的依赖项无需担心。

我也遇到了这个问题,我的研究使我找到了帮助安装兼容版本的文档: 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”。 例如,如果您使用 Python 3.5 的 64 位 Windows 系统并且您的 GPU 或 CPU 驱动程序支持 OpenCL 1.2,您需要下载名称中带有“+cl12”、 win-amd64和 cp35m 的轮子(注意格式,cp<version >m,m 很重要)。 (要检查您拥有哪个 Python 版本,您可以在命令行中运行python --version )。

这应该可以帮助你

我在 Intel HD Graphics 4400 GPU 上遇到了同样的问题。 它以前工作过(我不记得我之前是如何让它工作的)。 在某些时候,我遇到了与 Asker 描述的完全相同的 pyopencl 导入错误。

经过一些尝试,我从这里安装了英特尔 OpenCL 驱动程序: https : //software.intel.com/en-us/articles/opencl-drivers 在安装过程中,它显示需要先卸载我的常规 Intel HD 4400 驱动程序,这是安装工具为我所做的。 然后安装了 OpenCL 驱动程序,我可以再次在我的 GPU 上使用 OpenCL。 我的理论:可能是我的设置在 Windows 更新期间损坏了,有时也会更新设备驱动程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM