読者です 読者をやめる 読者になる 読者になる

CUDA4.0 開発環境構築 on Ubuntu 11.04

追記:現在の配布されているCUDAは5.0なので,ここで紹介している方法は使えません.
CUDAのダウンロードからドライバー、ツールキット、SDKをダウンロードする。
今回はUbuntu server 11.10 64bit を使ったので、CUDA FOR LINUX Ubuntu 11.04 64bit, Drivers 64bit, SDKの3つを使う.

# 3ファイルをダウンロード
% wget http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
% wget http://developer.download.nvidia.com/compute/cuda/4_2/rel/drivers/devdriver_4.2_linux_64_295.41.run
% wget http://developer.download.nvidia.com/compute/cuda/4_2/rel/sdk/gpucomputingsdk_4.2.9_linux.run
# 実行権限付加
% chmod +x cudatoolkit_4.2.9_linux_64_ubuntu11.04.run devdriver_4.2_linux_64_295.41.run gpucomputingsdk_4.2.9_linux.run
# 3ファイルをインストール
% sudo ./cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
% echo "export PATH=\$PATH:/usr/local/cuda/bin" >> .bashrc
% echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/lib" >> .bashrc
% sudo ./devdriver_4.2_linux_64_295.41.run
# ドライバインストーラが標準で用意されているドライバーを無効化してくれるので
# 再起動して、もう1回ドライバインストーラを走らせる。
% sudo reboot
% sudo ./devdriver_4.2_linux_64_295.41.run
% sudo reboot
% ./gpucomputingsdk_4.2.9_linux.run
# サンプルのコンパイルに必要なパッケージをインストール
% sudo apt-get install gcc-4.4 g++-4.4 libxi-dev libxmu-dev freeglut3-dev
# gcc4.4を使うのでシンボリックリンクを張り直す
% sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
% sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
# これで環境構築完了
# CUIで実行するときはデバイスを認識するスクリプトファイルが必要
# http://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc/CUDA_Toolkit_Release_Notes_And_Errata.txt
% cat > recoginize.sh
#!/bin/bash

/sbin/modprobe nvidia

if [ "$?" -eq 0 ]; then

# Count the number of NVIDIA controllers found.
N3D=`lspci | grep -i NVIDIA | grep "3D controller" | wc -l`
NVGA=`lspci | grep -i NVIDIA | grep "VGA compatible controller" | wc -l`

N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i;
done

mknod -m 666 /dev/nvidiactl c 195 255

else
exit 1
fi
% chmod +x recoginize.sh
% sudo ./recoginize.sh
% cd NVIDIA_GPU_Computing_SDK
% make
% ./C/bin/linux/release/matrixMulDrv