ubuntu12.04/Fuerteにてnvidiaを使用できるようにする&CUDA4.2のインストール手順
<nvidia関連インストール&設定>
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install nvidia-current-updates
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 vim /etc/bumblebee/xorg.conf.nvidia
で編集.
option "ConnectedMonitor" "DFP" を
option "ConnectedMonitor" "CRT" に変更
sudo start bumblebeed
optirun glxsheres を実行.
(エラーが出る場合は再起動)
ちなみに,bumblebeeはoptimusをハックするものなので,optimusじゃないPCはCUDAから.
<CUDAダウンロード> 新型iMacの場合はここから.
CUDAtoolkit&GPU computing SDK をダウンロード
↓ダウンロードサイト↓
cd ~/download
権限変更
chmod +x *.run
インストール
sudo ./cudatoolkit_4.2.9_linux_32_ubuntu11.04.run
途中でインストール先を聞かれるがデフォルトのまま/usr/local/cudaにインストール(Enter押すだけ)
<ライブラリ及び実行ファイルの検索パスの設定>
sudo vim /etc/ld.so.conf.d/cuda.conf
を作成.中身は以下のように.
/usr/local/cuda/lib64
/usr/local/cuda/lib
この設定を有効にするために以下のコマンドを実行.
sudo ldconfig
sudo vim /etc/profile.d/cuda.sh
を作成.中身は以下のように.
export PATH="/usr/local/cuda/bin:$PATH"
export LIBRARY_PATH="/usr/lib/nvidia-current-updates:$LIBRARY_PATH"
この設定を有効にするために再ログイン.
<GPU Computing SDKのインストール>
sudo ./gpucomputingsdk_4.2.9_linux.run
途中でインストール先を聞かれるがデフォルトのまま~/NVIDIA_GPU_Computing_SDKにインストール(Enter押すだけ)
makeのエラー回避
sudo vim ~/NVIDIA_GPU_Computing_SDK/C/common/common.mk
271,275,282行目を修正.修正は以下のように.
ロックかかってたら…
sudo chown -R amsl NVIDIA_GPU_Computing_SDK/
(271行目)
LIB += ${OPENGLLIB} $(PARAMGLLIB) $(RENDERCHECKGLLIB) ${LIB} -ldl -rdynamic
↓
LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB} -ldl -rdynamic
(275行目)
LIB += -lcuda ${OPENGLLIB} $(PARAMGLLIB) $(RENDERCHECKGLLIB) ${LIB}
↓
LIB += -lcuda $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB}
(282行目)
LIB += ${OPENGLLIB} $(PARAMGLLIB) $(RENDERCHECKGLLIB) ${LIB}
↓
LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB}
<サンプルプログラムのビルド>
cd ~/NVIDIA_GPU_Computing_SDK/C
make
<サンプルプログラムの実行>
cd ~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release
optirun ./smokeParticles
<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をハックして使うおまじない.
追記)2014/04/04
cudaのバージョンが新しいものならもっと簡単に出来ます.
bumblebeeは同様で,cuda toolkitの部分は↓で出来ます.
cuda 5.5 32bit版をダウンロードしますが,この時は.debのものをダウンロード.
次のコマンドでリポジトリ追加.
sudo dpkg cuda-repo-ubuntu1204_5.5-0_i386.deb
アップデートして...
sudo apt-get updatecudaをインストール! sudo apt-get install cuda
That's all!!