kernel は 2.6.32-5-amd64.
基本的には CUDA Getting Started Guide (Linux) http://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc/CUDA_C_Getting_Started_Linux.pdf に従う. ただし, Debian はサポートされていない. CUDA Toolkit for Ubuntu 10.10 64bit http://www.nvidia.com/object/thankyou.html?url=/compute/cuda/4_0/toolkit/cudatoolkit_4.0.17_linux_64_ubuntu10.10.run があるのでこれを使えばいいことを期待する.
まず
# lspci
でPCIにCUDA対応のGraphics Cardが認識されていることを確認する.
ドライバ(kernel module)の組み込み
- Developer Drivers for Linux 64-bit http://developer.download.nvidia.com/compute/cuda/4_0/drivers/devdriver_4.0_linux_64_270.41.19.run を取得
- Xは使ってないので, Xを止めたりする作業はなし.
# apt-get install gcc make linux-source-2.6.32 $ cd /home/hig3/src; tar fvjz /usr/src/linux-source-2.6.32.tar.bz2 # kernel source が必要 # sh ./devdriver_4.0_linux_64_270.41.19.run -a --kernel-source-path=/home/hig3/src/linux-source-2.6.32/
ここでふたつ警告/エラーが出る
/bin/sh: scripts/mod/modpost: not found
kernel の recompile
カーネル再構築onDebian5.0(lenny) - 備忘録@とろさん を見て思い出しながらやりました.
# aptitude install kernel-package # vi /etc/kernel-pkg.conf # edit maintainer and email $ cd /tmp/kbuild; tar fvxj /usr/src/linux-source-2.6.32 $ cd linux-source-2.6.32 $ cp /boot/config-2.6.32-5-amd64 .config $ make-kpkg --rootcmd fakeroot clean $ make-kpkg --append_to_version VER --revision REV configure
modpost が生成されたらそこでやめちゃってもいいのかも.
GPU Computing SDK の導入とコンパイル
$ sh ./gpucomputingsdk_4.0.17_linux.run
サンプルなどをmakeするには, gcc-4.4を使う必要があり, また
# apt-get libglu1-mesa-dev libxi-dev libxmu-dev freeglut3-dev
くらいと依存性で導入されるパッケージが必要. ドキュメントには
$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
と書いてあった.
deviceQuery などを実行するには
$ path=$path:/usr/local/cuda/bin # zsh $ LD_LIBRARY_PATH=/usr/local/cuda/lib_x64; export LD_LIBRARY_PATH
つきつめていないこと
以下のような non-free packages があるけど, これらは何? libcuda1-dev の /usr/include/cuda/cuda.h は CUDA 3.0 だった.
開発の際には干渉しないように注意が必要.
上の作業のときには一部インストールされていたけど, 影響はなかったはず.
# apt-cache search cuda
- libcuda1-dev - NVIDIA CUDA development files
- libcuda1-ia32 - NVIDIA CUDA runtime library (32-bit)
- libcuda1 - NVIDIA CUDA runtime library
- libnvidia-compiler-ia32 - NVIDIA runtime compiler library (32-bit)
- libnvidia-compiler - NVIDIA runtime compiler library
# apt-cache search nvidia
...
- nvidia-kernel-common - NVIDIA binary kernel module support files
- libgl1-nvidia-alternatives - simplifies replacing MESA libGL with GPU vendor libraries
- nvidia-kernel-dkms - NVIDIA binary kernel module DKMS source
- nvidia-libopencl1-dev - NVIDIA OpenCL development files
- nvidia-libopencl1-ia32 - NVIDIA OpenCL 32-bit library
- nvidia-libopencl1 - NVIDIA OpenCL library
- nvidia-opencl-common - NVIDIA OpenCL driver
- nvidia-opencl-icd-ia32 - NVIDIA OpenCL ICD (32-bit)
- nvidia-opencl-icd - NVIDIA OpenCL ICD
- nvidia-kernel-2.6-amd64 - NVIDIA kernel module for Linux 2.6 (amd64 flavor)
- nvidia-kernel-2.6-vserver-amd64 - NVIDIA kernel module for Linux 2.6 (vserver-amd64 flavor)
- nvidia-kernel-2.6.32-5-amd64 - NVIDIA binary kernel module for Linux 2.6.32-5-amd64
- nvidia-kernel-2.6.32-5-vserver-amd64 - NVIDIA binary kernel module for Linux 2.6.32-5-vserver-amd64
...