CUDA / インストール / CUDA 3.2, Ubuntu 10.04

参考 http://d.hatena.ne.jp/iRiE/searchdiary?word=*[CUDA]

NVIDIA デバイスドライバのインストール
「システム > システム管理 > ハードウェア・ドライバ」からインストールできますが、バージョンが古いので、Ubuntu-X team の X Updates PPA を利用して新しいバージョンを入れます. (バージョンが古いとGPU Computing SDKコンパイル時にエラーが出る. )

sudo add-apt-repository ppa:ubuntu-x-swat/x-updates sudo apt-get update sudo apt-get install nvidia-current nvidia-current-modaliases nvidia-settings

インストールが終わったら、「システム > システム管理 > ハードウェア・ドライバ」でNVIDIAのドライバが有効になっていることを確認し、再起動します.

依存ライブラリのインストール
sudo apt-get install g++ freeglut3-dev libxi-dev libxmu-dev sudo apt-get install openmpi-bin openmpi-dev

CUDA toolkitのインストール
sudo ./cudatoolkit_3.2.16_linux_64_ubuntu10.04.run 途中でインストール先を聞かれますが、デフォルトの /usr/local/cuda に入れます.

インストールが終わったら、各種のファイル検索パスを設定します.

以下の内容の /etc/ld.so.conf.d/cuda.conf というファイルを作成します. /usr/local/cuda/lib64 /usr/local/cuda/lib この設定を有効にするために、以下のコマンドを実行します. sudo ldconfig

以下の内容の /etc/profile.d/cuda.sh というファイルを作成します. (~/.bashrcに追記でも良い. 自分しか使わないなら. ） export PATH=/usr/local/cuda/bin:$PATH export LIBRARY_PATH=/usr/lib/nvidia-current

GPU Computing SDKのインストール
CUDA Toolkitと同じ場所から gpucomputingsdk_3.2.16_linux.run をダウンロードし、インストールします. sh gpucomputingsdk_3.2.16_linux.run 途中でインストール先を聞かれますが、デフォルトの $HOME/NVIDIA_GPU_Computing_SDK に入れます.

次にサンプルプログラムをビルドします. cd ~/NVIDIA_GPU_Computing_SDK/C make ビルドが終わると、$HOME/NVIDIA_GPU_Computing_SDK/C/bin/linux/release にいろいろなバイナリが生成されているので、動かしてみます. 例えばnbodyというのは、N体問題を解くプログラムです.

cd ~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release ./nbody

deviceQueryで、認識されているGPUの情報を眺める. oo@rgm3:~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release$ ./deviceQuery ./deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)

There are 2 devices supporting CUDA

Device 0: "Tesla C1060" CUDA Driver Version:                          4.0 CUDA Runtime Version:                         3.20 CUDA Capability Major/Minor version number:   1.3 Total amount of global memory:                4294770688 bytes Multiprocessors x Cores/MP = Cores:           30 (MP) x 8 (Cores/MP) = 240 (Cores) Total amount of constant memory:              65536 bytes Total amount of shared memory per block:      16384 bytes Total number of registers available per block: 16384 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:                         2147483647 bytes Texture alignment:                            256 bytes Clock rate:                                   1.30 GHz Concurrent copy and execution:                Yes Run time limit on kernels:                    No  Integrated:                                    No  Support host page-locked memory mapping:       Yes Compute mode:                                 Default (multiple host threads can use this device simultaneously) Concurrent kernel execution:                  No  Device has ECC support enabled:                No  Device is using TCC driver mode:               No

Device 1: "Quadro NVS 295" CUDA Driver Version:                          4.0 CUDA Runtime Version:                         3.20 CUDA Capability Major/Minor version number:   1.1 Total amount of global memory:                267714560 bytes Multiprocessors x Cores/MP = Cores:           1 (MP) x 8 (Cores/MP) = 8 (Cores) 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:                         2147483647 bytes Texture alignment:                            256 bytes Clock rate:                                   1.30 GHz Concurrent copy and execution:                No  Run time limit on kernels:                     Yes Integrated:                                   No  Support host page-locked memory mapping:       Yes Compute mode:                                 Default (multiple host threads can use this device simultaneously) Concurrent kernel execution:                  No  Device has ECC support enabled:                No  Device is using TCC driver mode:               No

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 4.0, CUDA Runtime Version = 3.20, NumDevs = 2, Device = Tesla C1060, Device = Quadro NVS 295

PASSED

Press  to Quit... ---

参考: 遺伝研スパコンのGPU (Tesla M2090)
$ /usr/local/NVIDIA_GPU_Computing_SDK/C/bin/linux/release/deviceQuery [deviceQuery] starting... /usr/local/NVIDIA_GPU_Computing_SDK/C/bin/linux/release/deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)

Found 1 CUDA Capable device(s)

Device 0: "Tesla M2090" CUDA Driver Version / Runtime Version         4.0 / 4.0 CUDA Capability Major/Minor version number:   2.0 Total amount of global memory:                5375 MBytes (5636554752 bytes) (16) Multiprocessors x (32) CUDA Cores/MP:    512 CUDA Cores GPU Clock Speed:                              1.30 GHz Memory Clock rate:                            1848.00 Mhz Memory Bus Width:                             384-bit L2 Cache Size:                                786432 bytes Max Texture Dimension Size (x,y,z)            1D=(65536), 2D=(65536,65535), 3D=(2048,2048,2048) Max Layered Texture Size (dim) x layers       1D=(16384) x 2048, 2D=(16384,16384) x 2048 Total amount of constant memory:              65536 bytes Total amount of shared memory per block:      49152 bytes Total number of registers available per block: 32768 Warp size:                                    32 Maximum number of threads per block:          1024 Maximum sizes of each dimension of a block:   1024 x 1024 x 64 Maximum sizes of each dimension of a grid:    65535 x 65535 x 65535 Maximum memory pitch:                         2147483647 bytes Texture alignment:                            512 bytes Concurrent copy and execution:                Yes with 2 copy engine(s) Run time limit on kernels:                    No  Integrated GPU sharing Host Memory:            No  Support host page-locked memory mapping:       Yes Concurrent kernel execution:                  Yes Alignment requirement for Surfaces:           Yes Device has ECC support enabled:               Yes Device is using TCC driver mode:              No  Device supports Unified Addressing (UVA):      Yes Device PCI Bus ID / PCI location ID:          36 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 4.0, CUDA Runtime Version = 4.0, NumDevs = 1, Device = Tesla M2090 [deviceQuery] test results... PASSED

Press ENTER to exit...

$

jCudaのインストール
JCuda-All-0.3.2-bin-linux-x86_64.zip