ubuntu14.04 + cuda6.5 + pycuda 安装
本人用了差不多一周的时间终于在ubuntu14.04的环境下成功安装pycuda-2014.01.
在进行deep learning 过程中,为了提高程序的运行效率,我们通常会借助gpu进行并行计算,本人以前进行过cuda并行计算的研究和学习,所以想借助于cuda对deep learning程序进行加速,但是之前是基于cuda c进行编程,而python最大的特点就是支持的库很多,如numpy,使用起来比c语言更具优势,但在速度方面python不如c,由于pycuda的出现能很好的解决相应的问题。
安装步骤如下:
1.首先安装ubuntu-64bit
2.python-six更新
ubuntu14.04好像自带的python-six版本是1.5.2,但是pycuda-2014.01必须要用到python-six的高级版本,笔者在进行python-six的更新时浪费了很多时间,并且在pycuda的wiki邮件列表里上能找到python-six的问题,但是邮件列表内并没有解决该问题。通过语句
sudo apt-get python-six upgrade
虽然可以对python-six进行更新,但是更新之后系统仍然使用的是python-six1.5版本。可以通过
ThinkCentre-M57e:~/pycuda-2014.1$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import six
>>> six.__version__
'1.5.2'
>>>
来看python-six的版本。解决此问题的方法为在装所有软件之前先从网上下载python-six1.9.0,然后安装即可。
3.下载 cuda6.5按照该博文中cuda6.5的安装方法对cuda6.5进行安装install但是需要注意的是后面的nvcc不需要安装,因为如果安装没有出错的话,nvcc是已经安装好的,若重新再装后面在测试pycuda时会报错(后面会讲到)。
4.接下来就是按照pycuda wiki上的提示进行安装:
$ sudo apt-get install python-numpy -y
$ sudo apt-get install build-essential python-dev python-setuptools libboost-python-dev libboost-thread-dev -y
上面最后一步可能会出现libboost-thread-dev 不会被安装的情况,此时需要换一下软件源再进行安装。
下载pycuda
$ tar xzvf pycuda-VERSION.tar.gz
$ cd pycuda-VERSION
$ ./configure.py --cuda-root=/usr/local/cuda --cudadrv-lib-dir=/usr/lib/x86_64-linux-gnu --boost-inc-dir=/usr/include --boost-lib-dir=/usr/lib --boost-python-libname=boost_python --boost-thread-libname=boost_thread
$ make -j 4
运行到这步时可能会报错说找不到nvcc的路径,此时我们可以通过下面的语句进行替代:
$ sudo env PATH=$PATH make -j 4
$ sudo env PATH=$PATH python setup.py install
安装完成以后我们对pycuda-2014.1里面的例子进行测试一下:
ThinkCentre-M57e:~/pycuda-2014.1/examples$ ls
demo_elementwise.py demo_meta_template.py demo_struct.py dump_properties.py hello_gpu.py
demo_meta_codepy.py demo.py download-examples-from-wiki.py fill_gpu_with_nans.py MORE_EXAMPLES_ON_THE_WIKI
ThinkCentre-M57e:~/pycuda-2014.1/examples$ python demo.py
original array:
[[ 0.10045559 -0.41886264 1.12284923 -1.50559962]
[ 0.12778306 0.71348238 -1.15700686 -0.17418264]
[ 0.34565908 -0.17478919 0.01356251 1.16269362]
[-0.61118865 -0.1080422 -0.9229185 1.49180794]]
doubled with kernel:
[[ 0.20091118 -0.83772528 2.24569845 -3.01119924]
[ 0.25556612 1.42696476 -2.31401372 -0.34836528]
[ 0.69131815 -0.34957838 0.02712502 2.32538724]
[-1.2223773 -0.21608439 -1.845837 2.98361588]]
doubled with InOut:
[[ 0.20091118 -0.83772528 2.24569845 -3.01119924]
[ 0.25556612 1.42696476 -2.31401372 -0.34836528]
[ 0.69131815 -0.34957838 0.02712502 2.32538724]
[-1.2223773 -0.21608439 -1.845837 2.98361588]]
original array:
[[ 0.75977862 1.92598414 -0.63168722 0.5591501 ]
[-0.0852133 -1.49266922 0.11701498 -2.12219763]
[ 0.32364693 -0.49749166 1.68889701 1.03296471]
[ 0.39916766 -2.47587013 -0.50792807 0.08566957]]
doubled with gpuarray:
[[ 1.51955724 3.85196829 -1.26337445 1.1183002 ]
[-0.17042661 -2.98533845 0.23402996 -4.24439526]
[ 0.64729387 -0.99498332 3.37779403 2.06592941]
[ 0.79833531 -4.95174026 -1.01585615 0.17133914]]
ThinkCentre-M57e:~/pycuda-2014.1/examples$
- 上一篇 »Ubuntu下PyDev安装
- 下一篇 »ubuntu安装pyCUDA