2014年4月25日金曜日

ubuntuでGPUを使おう!!その2


前に書いたubuntuでGPUを使えるようにする記事からcudaもアップデートがありまして、非常に簡単に使えるようになったので覚え書き程度に。環境によってはうまくいかないこともあるかもです。

もろもろの環境→ubuntu12.04,cuda-5.5,GPU→nvidia,PC→G-TUNE
(ubuntuのバージョンが古いのはご容赦くださいw)

今回はレポからインストール。
cuda-repo-ubuntu1204_5.5-0_i386.deb
をサイトからダウンロード。
最新版しかダウンロード出来ないかも...。
てことでcuda toolkitのアーカイブ↓
https://developer.nvidia.com/cuda-toolkit-archive
(なぜ5.5にこだわるのか!...気分ですw)

で、下記コマンドをターミナルで。

sudo dpkg cuda-repo-ubuntu1204_5.5-0_i386.deb
sudo apt-get update
sudo apt-get install cuda

That's all!!!!

か・ん・た・ん!!
たぶんcuda-6.0でも同じ方法で大丈夫だと思います。

で、optimus対応PCは前のと同じでbumblebeeを導入。

------------------------------------------------------------------------------------------------------------------------
optimusをハック!!

sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic

sudo stop bumblebeed

sudo vim /etc/bumblebee/bumblebee.conf
で編集.以下変更点.
[bumblebee] section
Driver=nvidia
[driver-nvidia] section
KernelDriver=nvidia-current-updates
LibraryPath と XorgModulePath の nvidia-current を nvidia-current-updates に変更.

sudo start bumblebeed

書き換えたら、たぶん再起動しないとダメかな。

(ちなみに、↑nvidia-currentでもおっけー。その時はDriver=nvidiaだけ記述してあげれば大丈夫)

------------------------------------------------------------------------------------------------------------------------

SDKが統合されたからのでSDKのディレクトリはありません。
sampleとかは/usr/local/cuda-5.5/の下にあります。

で、sampleをmakeしたいところですが、read onlyなので
sudo chownで権限奪ってからmakeで、前のSDKみたいに
/usr/local/cuda-5.5/sample/bin/i686/linux/release/のなかに色々とできます。

直接いじるのやだな...て人は
cuda-install-sample-5.5.sh ターゲットディレクトリ
でターゲとディレクトリにコピーが作られるので、そこでmakeしてくださいね。

opencvで使えるようにするのはたぶん一緒かな。まだやってないからなんとも言えないけど...。
一応載せときます。

------------------------------------------------------------------------------------------------------------------------
<OpenCVでGPUを使おう>

最新のOpenCVをダウンロード.rosと一緒に入るのはGPUが使えない.
とりあえず,ホームフォルダに解凍.

cd opencv_VERSION
mkdir release

sudo apt-get install cmake-curses-gui

ccmake ..             ←cmakeの設定ができる.

cでコンパイルみたいなやつ.
tでアドバンスモード.
Enterで挿入モード

CUDA_CUDA_LIBRARYのとこを設定
not foundにってるから↓に書き換える(全部)
/usr/lib/nvidia-current-updates/libnvcuvid.so

cでコンパイルみたいなやつ
gで終了

cmake .
make
もっかいmake(make漏れがあるかも)

/opt/ros/fuerte/lib
の中に/libの中身をぶち込む.
所有権がない場合はchownで.

<実行方法>
適当なsampleを取ってくる(opencvのsampleのGPUから)
optirun rosrun pkg名 実行名 読み込む画像
ex)     optirun rosrun image_sample hog road.png
ex)     optirun rosrun image_sample --left tsucuba_left.png --right tsucuba_right.ping

optirunはGPUをハックして使うおまじない.

------------------------------------------------------------------------------------------------------------------------



そういえば、ubuntu 13.10以降はbumblebee入れなくても使えるようになるらしい...

ではでは(・∀・)ノ