Ubuntu14.04でpycudaを使えるようにした際のメモ

Ubuntuのバージョンなどは以下の通り.

$ cat /etc/lsb-release

 

DISTRIB_ID=Ubuntu

DISTRIB_RELEASE=14.04

DISTRIB_CODENAME=trusty

DISTRIB_DESCRIPTION="Ubuntu 14.04.5 LTS"

 

$ uname -a

 

Linux ubuntu-XXXXX 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x8664 x8664 x86_64 GNU/Linux

基本的には下記のサイトを参考にインストールを実施.

Installing PyCUDA on Ubuntu Linux

1.必要なライブラリ群をインストール

$ sudo apt-get install build-essential python-dev python-setuptools libboost-python-dev libboost-thread-dev -y

2.pycudaのダウンロードとインストール

執筆時点での最新版をダウンロードしてくる.pycuda 2016.1.2

$ wget https://pypi.python.org/packages/e8/3d/4b6b622d8a22cace237abad661a85b289c6f0803ccfa3d2386103307713c/pycuda-2016.1.2.tar.gz#md5=e2a4fb3d304fc20b24aeb9414b8af303

$ tar xzvf pycuda-2016.1.2.tar.gz

$ cd pycuda-2016.1.2/

今回利用するのはPython2.xなので

$ ./configure.py --cuda-root=/usr/local/cuda --cudadrv-lib-dir=/usr/lib/x8664-linux-gnu --boost-inc-dir=/usr/include --boost-lib-dir=/usr/lib --boost-python-libname=boostpython --boost-thread-libname=boost_thread --no-use-shipped-boost

$ sudo python setup.py install

$ sudo pip install .

3.エラーが出たら・・・

./configure.pyの実行時に下記のようなエラーが出た.

ImportError: No module named packaging.version

調べてみると,pipも動かない

$pip --version

Traceback (most recent call last):

File "/usr/bin/pip", line 5, in

from pkg_resources import load_entry_point

File "/usr/local/lib/python2.7/dist-packages/pkg_resources/init.py", line 70, in

import packaging.version

ImportError: No module named 'packaging'

調べてみると最近流行ってるようなエラーだったので,下記サイトの記述を参考に対処してみる.

setuptools-34.0 fails with 'ImportError: No module named packaging.version' #937

$ apt-get purge -y python-pip

$ wget https://bootstrap.pypa.io/get-pip.py

$ python ./get-pip.py

$ apt-get install python-pip

上記の処置によりpipが復活した.

$ pip --version
pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7)

4.サンプルを動かしてみる

下記からソースコード持ってきて実行してみる.

PyCuda/Examples/SimpleSpeedTest

$ python SimpleSpeedTest.py

Using nbr_values == 8192

Calculating 100000 iterations

SourceModule time and first three results:

0.018592s, [ 0.005477 0.005477 0.005477]

Elementwise time and first three results:

2.536487s, [ 0.005477 0.005477 0.005477]

Elementwise Python looping time and first three results:

3.282005s, [ 0.005477 0.005477 0.005477]

GPUArray time and first three results:

6.638698s, [ 0.005477 0.005477 0.005477]

CPU time and first three results:

3.707684s, [ 0.005477 0.005477 0.005477]

動いた気がする.

MapReduce Word Count with GPUs using Pycuda

hadoopからこの辺りの処理移管したい

コメント(0)

コメントを投稿する