在大量搜索该问题的解决方案之后,我发现此特定错误尚未针对Windows正确记录。因此,我决定将这个问题与解决方案一起发布。抱歉,如果我在错误的部分发布了此内容。我希望该解决方案将来能帮助用户解决PyOpenCL安装错误。请注意,此处使用的示例适用于支持ATI Radeon GPUs
SDK的AMD OpenCL SDK
。对于其他GPUs
,请引用它们各自的参数并根据需要实现它们。如果安装失败,也不要尝试使用pip
进行安装。而是从here下载zipt_code的压缩副本。
因此,在安装PyOpenCL时的错误消息是:
为了解决这个问题,必须知道默认的CL/cl.h通常存储在pyopencl
中。但是由于C:/Program Files (x86)/.../include/CL
编译器无法识别(x86),因此您可以执行以下操作:
gcc
内的CL
文件夹,并将其粘贴到单独的位置,例如您下载C:/Program Files (x86)/AMD APP SDK/2.9-1/include
的目录。 pyopencl.zip
内的x86_64
文件夹,并将其粘贴到与C:/Program Files (x86)/AMD APP SDK/2.9-1/lib
文件夹相同的目录中。 CL
文件夹并转到pyopencl.zip
(location of pyopencl)/src/wrapper
文件夹中,打开文件wrapper
。 wrap_cl.hpp
更改为#include <CL/cl.h>
#include <cl.h>
并打开文件CL
。再次重复步骤5。 cl_platform.h
文件夹中找到cl_ext.h
文件,然后将其打开。再次重复步骤5。 CL
模式下的cmd
窗口内,转到admin
的目录并运行命令pyopencl
。这将生成一个python configure.py
文件,其中包含一些用于安装的参数。 siteconf.py
文件,将siteconf.py
替换为CL_INC_DIR = []
,然后将CL_INC_DIR = [r'(path to the new location of the CL folder)']
替换为CL_LIB_DIR = []
。 CL_LIB_DIR = [r'(path to the new location of the x86_64 folder)']
中,从cmd
目录中运行python setup.py install
并开始使用。 希望此解决方案在Windows 8(x64)中安装
pyopencl
期间对您有所帮助。欢迎其他任何建议。 最佳答案
经过2天的尝试和错误,我做到了。已安装PyOpenCL。这是我的硬件:
装有已安装Catalyst且大多数已导入的ATI Radeon 7970:安装AMD APP SDK(2.9.1)
从PyOpenCL开始安装的软件:
1. Python 2.7.9(x86)
2.脾气暴躁(x86)
3. pywin32
4. Visual Studio 2008年
5. Mako(-> easy_install Mako)
6.提升
对我来说,最重要的步骤是正确设置SITECONF.py文件。为拿到它,为实现它:
在pyopencl目录中运行“python configure.py”以获取示例siteconfig.py。
这是修改后的文件。请注意,如果您想使用nVidia,则CL_INC_DIR = []和CL_LIB_DIR = []将有所不同,也许看起来像这样:
CL_INC_DIR = [r'C:\Program Files\NVIDIA GPU计算工具包\CUDA\v4.1\include']
CL_LIB_DIR = [r'C:\Program Files\NVIDIA GPU计算工具包\CUDA\v4.1\lib\x64']
因此,我的siteconf.py文件:
BOOST_INC_DIR = [r'C:\C++ Projects\boost_1_55_0']
BOOST_LIB_DIR = [r'C:\C++ Projects\boost_1_55_0\stage\lib']
BOOST_COMPILER = 'gcc43'
BOOST_PYTHON_LIBNAME = ['boost_python']
USE_SHIPPED_BOOST = True
CL_TRACE = False
CL_ENABLE_GL = True
CL_ENABLE_DEVICE_FISSION = True
CL_INC_DIR = [r'C:\Program Files (x86)\AMD APP SDK\2.9-1\include']
CL_LIB_DIR = [r'C:\Program Files (x86)\AMD APP SDK\2.9-1\lib\x86_64']
CL_LIBNAME = ['OpenCL']
CXXFLAGS = ['/EHsc']
LDFLAGS = ['/FORCE']
您可以在线找到许多示例,其中Microsoft SDK也放在CL_INC_DIR = []和CL_LIB_DIR = []中,但是我不打算在我的i3处理器上使用OpenCL,因此没有使用MS文件构建pyopencl。
我希望这可以帮到你!和梦想的结果:
>>>将pyopencl导入为cl
>>>