在Windows上安装pyopencl
我有一块GTX 770显卡,显然它的图形驱动安装了opencl 1.1。不过我还是安装了AMD的APP工具(因为我有AMD的CPU),但这也没什么用,因为pyopencl就是不工作!每次导入的时候都报同样的错。
Traceback (most recent call last):
File "C:\Users\Vegard\Dropbox\programming\opencl\Something RT\PT.py", line 15, in <module>
import pyopencl as cl
File "C:\Python34\lib\site-packages\pyopencl\__init__.py", line 28, in <module>
import pyopencl._cl as _cl
ImportError: DLL load failed: The specified procedure could not be found.
我运行的大多数opencl
示例和程序都能正常工作,所以我觉得问题可能出在pyopencl
上。我想我可能缺少一些依赖项,或者这个程序是用更高版本的opencl
编译的?我有Visual Studio 2008和2010。我试着安装了2013.1和2014.1的版本。
我想也许如果我从这个 .tar.gz运行setup.py
,可能会更顺利,但这也不行。不过这更像是一个普遍的问题,似乎是cygwincompiler.py
找不到我安装的ld
、gcc
和dllwrap
的版本。
我尝试了很多方法,比如安装.NET和boost,还有其他一些不常见的东西。我真的不知道该怎么办。我运行了“depends”,但在64位的Windows 7上似乎效果不太好。我也无法让pycuda工作,它几乎报出同样的错误信息。cuda倒是能正常工作。也许这也是版本不对,或者因为它们都是兄弟项目,作者可能有一些我不知道的共同依赖。
我在网上搜索了很多,但就是找不到解决办法。任何帮助都很感激。
3 个回答
对我来说,下载了AMD Catalyst包里的支持文件和驱动程序后就解决了问题。
检查一下你的OpenCL运行环境、驱动程序或者SDK是否安装成功。我之前也遇到过同样的错误信息,因为我忘了为英特尔核心(英特尔高清显卡4400)安装OpenCL运行环境和驱动程序。虽然你可能认为安装了NVIDIA驱动后就自动有了运行环境。英特尔提供了一个链接,里面有相关的驱动下载:https://software.intel.com/en-us/articles/opencl-drivers#win64。我不太清楚NVIDIA是否也有类似的资源页面。
我用Python(x,y) 2.7版本把它搞定了。安装了mako、pytools、numpy和pyopencl(2012.2)之后,一切都正常运行了。只用了来自http://www.lfd.uci.edu/~gohlke/pythonlibs/的二进制文件。是不是2012.2版本用的是opencl 1.1?因为我只找到了2013.2和2014.1的py3.4版本。