2007年11月8日木曜日

CUDA on FreeBSD part 2

Linuxの開発環境を整えてからの話. 今回は"linux_base-fc4"を入れたことを前提に話を進める.

1. NVIDIAのドライバやらSDKをダウンロード
NVIDIAのドライバの最新版は多分ここの上に載っている.
portsから入れても多分大丈夫.

CUDAのSDKはここから.
"CUDA Toolkit version 1.0 for Redhat Enterprise Linux 4.x"と"CUDA SDK version 1.0 for Linux"をダウンロード.

2. Linux用のXorgのインストール
Fedora Core 4 の xorg-x11-6.8.2-31.i386.rpm, xorg-x11-libs-6.8.2-31.i386.rpm, xorg-x11-devel-6.8.2-31.i386.rpm をダウンロードして以下を実行.
freebsd$ su
freebsd# cd /usr/local/gentoo-stage3
freebsd# rpm2cpio xorg-x11-6.8.2-31.i386.rpm | cpio -idv
freebsd# rpm2cpio xorg-x11-libs-6.8.2-31.i386.rpm | cpio -idv
freebsd# rpm2cpio xorg-x11-devel-6.8.2-31.i386.rpm | cpio -idv


3. Linux用NVIDIAドライバーのインストール
portsで入れた人は省略.
freebsd# cd /tmp
freebsd# ./NVIDIA-Linux-x86-100.14.xx-pkg1.run -x
freebsd# cp -rp NVIDIA-Linux-x86-100.14.xx-pkg1/usr /usr/local/gentoo-stage3/


4. CUDAのインストール
ユーザー名は"foo"を仮定.
freebsd# chroot /usr/local/gentoo-stage3
linux # ./NVIDIA_CUDA_Toolkit_1.0_rhel4_x86.run
linux # su foo
linux $ ./NVIDIA_CUDA_SDK_1.0.run


5. GLU & GLUT のインストール
Mesa Home PageからMesaLibとMesaGLUTの最新版をダウンロードする.
linux$ tar jxvf MesaLib-X.Y.tar.gz
linux$ tar jxvf MesaGLUT-X.Y.tar.gz
linux$ cd Mesa-X
linux$ make linux-x86
(すぐにCtrl-Cで止める)
linux$ su
linux# cd src/glu; make install
linux# cd ../glut/glx/; make install
linux# cp /usr/local/lib/* /usr/X11R6/lib


6. 調整
linux$ su
linux# cd /usr/lib
linux# ln -sf libGL.so.100.14.xx libGL.so.1
linux# ln -sf libGL.so.100.14.xx libGL.so
linux# ln -sf libGLcore.so.100.14.xx libGLcore.so.1


(linux側)
linux$ export LD_LIBRARY_PATH=/usr/X11R6/lib:/usr/local/cuda/lib
linux$ export PATH=/usr/local/cuda/bin:/usr/local/bin:/usr/bin:/bin


(FreeBSD側)
freebsd$ setenv LD_LIBRARY_PATH /usr/local/gentoo-stage3/usr/lib: /usr/local/gentoo-stage3/usr/local/lib/: /usr/local/gentoo-stage3/usr/local/cuda/lib


7. 確認
CUDAのToolkitを展開したディレクトリにて
linux$ cd projects/deviceQuery
linux$ make
linux$ ../../bin/linux/release/deviceQuery
There is 1 device supporting CUDA

Device 0: "GeForce 8600 GTS"
Major revision number: 1
Minor revision number: 1
Total amount of global memory: 267714560 bytes
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 16384 bytes
Total number of registers available per block: 8192
Warp size: 32
Maximum number of threads per block: 512
Maximum sizes of each dimension of a block: 512 x 512 x 64
Maximum sizes of each dimension of a grid: 65535 x 65535 x 1
Maximum memory pitch: 262144 bytes
Texture alignment: 256 bytes
Clock rate: 1458000 kilohertz

Test PASSED

Press ENTER to exit...

と表示したらOK. 出力内容はビデオカードによって違います. 上の出力はGeForce 8600 GTSのもの. これが動けば他のもOpenGL関係のを除いて動くでしょう.

Happy CUDA Hack!

0 件のコメント: