ubuntu14.04 theanoとかgpgpu環境構築メモ
まっさらなlinux環境にtheano, pylearn2のgpgpu環境を導入する手順をメモする
ほぼ自分用みたいなとこある
環境は以下
ubuntu14.04LTS
GeForce GTX 970
インストール
ubuntu14.04にはpython2.7が最初から入っているのでパッケージから入れてく。
sudo apt-get install python-numpy python-scipy python-dev python-matplotlib python-pip python-setuptools python-nose g++ libopenblas-dev git sudo pip install Theano git clone git://github.com/lisa-lab/pylearn2.git cd pylearn2 python setup.py develop
できたら
import pylearn2
とかして確認。
pylearn2のデータパスを追加しておく。
ホームディレクトリ内の .bashrc の末尾に以下を追加
export PYTHON_DATA_PATH="/home/username/pylearn2data"
別に場所はどこでもいいと思うので適当に。
CUDA入れる
以前Caffeのインストールを試みた時に、CUDAのパッケージからそのままインストールするとうまく行かなかった(今はわからん)。CUDAのパッケージにビデオドライバも含まれているらしく、先にドライバを入れてたのでそのせいかもしれない。
なのでtoolkitとサンプルを別々に入れる。
参考は以下
Caffe(本家サイト版)をインストールして試してみる - 論理 Hearts Club Band
GPUドライバの導入はこの記事の下の方で書いたのでその通りにする。
まずCUDAの最新版を入手する↓
CUDA Toolkit 9.2 Download | NVIDIA Developer
2016/2/11現在で最新は7.5
環境を選択してrunファイルをダウンロード
作業しやすいようにホームディレクトリにおいておく
その後ランレベルを変えるため再起動する。
ぶっちゃけこの辺の仕組みとか理由とかわかってない・・・Linux勉強しなきゃなあ
GRUBのメニュー画面に入る(自動で表示しない場合はUbuntu起動中にEscキーぽちぽちする)
カーソルをUbuntuに合わせた状態で「e」キーを押してオプションを表示
linux の行のところに"quiet splash"って書いてあるので、その直後に"text 3"と追記する。
その後F10で起動
この設定は今回のみ有効となっている。
できたらCUDAインストーラの実行権限を変更して、
sudo chmod 755 cuda_7.5.18_linux.run
インストーラを生成するため-extractオプションをつけて実行する
sudo ./cuda_7.5.18_linux.run -extract=$HOME/nvidia_install
するとディレクトリが生成され、中にドライバ、ツールキット、サンプルのインストーラが入っている。
生成されたディレクトリ内に入り、
sudo ./cuda-linux64-rel-7.5.18-19867135.run
を実行
するとEULAが表示されるのでスペースキーで進んでいく
各項目について聞かれるので、以下のように入力する
- ソフトウェア使用許諾: "accept"
- インストールパス:[Enter]
- デスクトップメニューショートカットの作成:[Enter]
- シンボリックリンクの作成:[Enter]
Installation Completeと表示されたら完了。
同様の手順でサンプルもインストールする。
sudo ./cuda-samples-linux-7.5.18-19867135.run
各項目について以下で回答。
- ソフトウェア使用許諾: "accept"
- インストールパス: [Enter]
ここまでできたら再起動しておく。
theanoでgpu設定
theanoでgpuを使えるようにする。
以下のテキストを.theanorcというファイルとしてホームディレクトリに保存する。
[global] floatX = float32 device = gpu0 [lib] cnmem = True [cuda] root = /usr/local/cuda-7.5
cudaの項目はバージョンに合わせて変更する。
その後pythonを起動し、以下のcheck.pyを実行する
# check.py from theano import function, config, shared, sandbox import theano.tensor as T import numpy import time vlen = 10 * 30 * 768 # 10 x #cores x # threads per core iters = 1000 rng = numpy.random.RandomState(22) x = shared(numpy.asarray(rng.rand(vlen), config.floatX)) f = function([], T.exp(x)) print f.maker.fgraph.toposort() t0 = time.time() for i in xrange(iters): r = f() t1 = time.time() print 'Looping %d times took' % iters, t1 - t0, 'seconds' print 'Result is', r if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]): print 'Used the cpu' else: print 'Used the gpu'
Anaconda入れる
ここは別に入れなくてもいい
まあ使えるとなにかと便利なので
Anacondaを公式からダウンロードしてくる
https://www.continuum.io/downloads
bashする
bash bash Anaconda2-2.5.0-Linux-x86_64.sh
指示に従ってインストール
パスを追加するか聞かれるので、追加する。
するとubuntuに元から入ってた方のpythonパッケージが使えなくなるので、パスを通す。
.bashrcに以下を追加
export PYTHONPATH="/usr/local/lib/python2.7/dist-packages:/home/username/pylearn2:"$PYTHONPATH
できたらpythonを起動して以下を試す。
import pylearn2
GPU使ってますよーみたいなメッセージが出ればおけ。