官方网站上给了一个这样的攻略,但是得结合自己的情况来看,官网地址是https://wiki.tiker.net/PyOpenCL/Installation/Windows。根据自己的系统和python版本来安装即可。
首先上官网安装攻略,如图所示:
由于电脑升级至win10,导致以前安装的pyopencl无法正常使用,所以只能卸掉重装。
1. python安装版本
讲真按照攻略上安装3.4没有错,3.5版本可以在此攻略上试一试,但是我毕竟是从3.5退到3.4才安装成功的。
2. 安装Nvidia’s CUDA 7.5 Tool Kit
简单容易,下载下来直接安装即可,注意记住安装的路径。
3. 安装MingWpy
攻略上说的不能直接安装。我的方法是直接在
https://pypi.anaconda.org/carlkl/simple/mingwpy/下载对应的版本,而且windows下下载速度巨慢,在ubuntu下用wget轻松解决。
4. 下载pyopencl包
在https://github.com/pyopencl/pyopencl上下载pyopencl源代码 ,如果是像我这样直接下的zip包,需要注意的是src/c_wrapper/mingw-std-threads和pyopencl/compyte两个包需要另外单独下载。
5. 修改wrap_constants.cpp
按照攻略上的即可。
6. 可忽略的一步
Edit ".\pyopencl\compyte\ndarray\gen_elemwise.py"and ".\pyopencl\compyte\ndarray\test_gpu_ndarray.py" and convert mostPython 2.x style print statements to python 3 syntax. Basically wrap printarguments in brackets "(..)" and ignore any lines containing StringIO">>" operator.这一步可以忽略,没做也安装成功了。(运行可能会失败)
7. Run configure.py
跑完这个程序才会生成siteconf.py
8. 修改siteconf.py
如图修改即可
9. run最后两条命令
可能出现的错误:
(1) error: Unable to findvcvarsall.bat
解决方法是修改python安装目录下的文件.\Python34\Lib\distutils\msvc9compiler.py中的vc_env =query_vcvarsall(VERSION, plat_spec)改为vc_env = query_vcvarsall(12.0,plat_spec)(其中12.0是对应vs的版本)
与此同时,看到官方攻略下面的有一段话为
也按照这个试过了,不知道是不是也启了一定的作用。
(2) can’t find xx.h
某个文件没找到,仔细看看是什么文件,我就是4中忘记下载src/c_wrapper/mingw-std-threads文件夹导致找不到mingw.mutex.h和mingw.thread.h导致。
最后经过漫长的编译(也就1-2min吧),终于成功了,可以在.\Python34\Lib\site-packages看到pyopencl啦!撒花!