pycuda的安装和错误解决(含boost安装编译的详细过程)

来源:互联网 发布:网络迷情女人视频 编辑:程序博客网 时间:2024/06/06 08:29


需要准备:
1.pytools库安装PyCUDA还需要pytools库,pytools库需要six,appdirs,decorator这三个库,可以通过easy_install进行安装.
这里提供一个地址,包含很多包,不过现在都是whl格式的,可以通过pip指令进行安装
http://www.lfd.uci.edu/~gohlke/pythonlibs
2.VS 20123.boost库
下载地址:http://www.boost.org
比较难安装,需要进行编译,具体的过程参考后面给出的链接。
我下载的是boost_1_52
4.cuda
下载地址:https://developer.nvidia.com/cuda-downloads
(建议下载最新版本 7.0)
5.Pycuda:
下载地址: https://pypi.python.org/pypi/pycuda
我下载的是pycuda-2014.1


安装过程:
建议参考PyCuda主页上提供的安装Document(Installing PyCuda on Windows,以下简称IPW):http://wiki.tiker.net/PyCuda/Installation/Windows
我的安装过程基本符合以上的文档步骤


python和pytools,VS2012的安装比较简单,就不再赘述了
uda安装完之后一定要检查是否安装成功,cuda的安装网上也有很多参考,也可以参考在下面我给出的链接


1. Boost库的安装编译:
下载之后需要自己编译
(1)解压
(2)获取bjam
执行根目录下的bootstrap.bat,然后会在根目录生成bjam.exe和b2.exe
(3)编译需要的库
对于安装pycuda来说,编译Boost Python, Boost DateTime, and BoostThread就足够了
编译命令:我使用的是bjam --toolset=msvc-11.0 --with-date_time --with-thread --with-python(想要查看指令的含义请参考下面给出的参考链接boost部分的第二篇文章
编译完成之后,可以在stage文件夹下查看了


2. pycuda的安装:
通过pip 进行安装的不行,import pycuda.driver会提示错误,driver模块应该是编译之后产生的,这样通过pip进行安装的话是不可以的
按照以下步骤进行安装:
(1)解压
(2)运行根目录下的configure,生成siteconf.py
(3)编辑siteconf.py,以我的为例,我也是参考IPW进行的修改
 

BOOST_INC_DIR = ['F:\\Install\\boost_1_52_0'] BOOST_LIB_DIR = ['F:\\Install\\boost_1_52_0\\stage\\lib']BOOST_PYTHON_LIBNAME = ['libboost_python-vc110-mt-1_52']BOOST_THREAD_LIBNAME = ['libboost_python-vc110-mt-1_52']CUDA_ROOT = 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v7.0'CUDADRV_LIB_DIR = ['C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v7.0\\lib\\x64']CUDADRV_LIBNAME = ['cuda']CXXFLAGS = ['/EHsc']LDFLAGS = ['/FORCE']

以上各路径根据自己的实际情况修改就行了
(4)在cmd输入命令,进行安装
python setup.py install

完成以上步骤之后,就可以测试pycuda是否安装成功了,运行pycuda源文件里examples里的demo看是否能够得到正确结果。


一些问题和错误:

由于安装的时候出现了很多问题,加上没有时间进行整理,所以现在只能大概回忆起部分错误:
(1)缺少VCFORPython27
下载安装即可
(2)之前我安装的是cuda6.5,然后在编译python中的cuda程序时出现错误:nvcc -arch sm_52 gives error “Value 'sm_52' is not defined for option 'gpu-architecture'”
反正在compiler文件下修改arch,死活都是sm_52。
估计是卡的计算能力cuda6.5版本过低不支持,所以重新安装了cuda 7.0
(3)安装cuda 7.0后,samples没有编译,自行编译就行。另外就是注意把pycuda的siteconf.py进行修改重新进行安装。
     另外在重新安装之后,好像驱动出了问题,在运行pycuda的demo时提示:no device,重新安装了驱动,在samples编译完成之后就可以了。
(4)编码问题,CUDA编译器会输出警告
 在python的安装目录下找到pycuda包,在compiler.py文件里找到
warn("The CUDA compiler succeeded, but said the following:\n"                + (stdout+stderr).decode("utf-8", "replace"), stacklevel=4)

     注释掉即可;

 或者在文件前面加上# -*- coding: utf-8 -*-

     
参考资料:
(关于cuda安装)
[1] http://www.cnblogs.com/xing901022/archive/2013/08/09/3248469.html(手把手教你cuda5.5与VS2010的编译环境搭建)


(关于boost编译)
[1] http://blog.csdn.net/wanglang1000/article/details/34101121 (编译Boost库 vs2012 + 1.54.0 )

[2] http://www.cnblogs.com/wondering/archive/2009/05/21/boost_setup.html(【原】Boost下载安装编译配置使用指南(含Windows、Linux以及ARM Linux))



0 0
原创粉丝点击