Fedora 12 で CUDA を動かすには多少コードの修正が必要です。
1.準備(その1)
gcc-3.4およびカーネルのヘッダーなど、CUDAが必要とするパッケージををyumでインストールしておく。
# yum install compat-gcc-34 compat-gcc-34-c++
# yum install kernel-devel
# yum install freeglut freeglut-devel
(参考)http://benzo-501.blogspot.com/2010/01/fedora12geforce-gt-240-cuda.html
2.準備(その2)
NVIDIA(エヌビディア)のCUDAサイトから、ファイルをダウンロードする。「オペレーションシステムの選択」で「Linux 32ビット」または「Linux 64ビット」を選択後、「Fedora 10」を選択し、下記のファイルをダウンロード。
- CUDAドライバ
- CUDAツールキット
- CUDA SDKコードサンプル
3.準備(その3)
カーネルモジュールnouveauがOS立ち上げ時にロードされていると、CUDAドライバがインストールできないので、以下の例のように/etc/grub.conf を修正して、nouveauのモジュールロードを止める(nouveau.modeset=0を末尾に追加)。
kernel /vmlinuz-2.6.32.12-115.fc12.x86_64 ro root=/dev/mapper/vg_srv2-lv_root LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106 rhgb quiet nouveau.modeset=0
4.Run level の修正
CUDAのドライバのインストールには、Xを停止している必要がありますので、一旦 run levelを3に落とす。
/etc/inittabの該当行(通常最後の行)を下記のように修正(5 --> 3に)
id:3:initdefault:
リブートする。
5.ドライバのインストール
コンソール画面でログインして、root権限にてドライバをインストール。
sh NVIDIA-Linux-x86_64-195.30-pkg2.run
(x86_64の場合。執筆時点での最新バージョン。)
カーソルキーとリターンキーを使って普通に操作を進めてけば、そのまま完了まで進む。
6.X Window に戻る
コンソールでそのまま操作を続けてもいいのですが、操作性を良くするためXに戻る。
/etc/inittabの修正をもとに戻してリブート(別のオプションとしては init 5を実行してもOK)。
id:5:initdefault:
7.ツールキットをインストール
# sh cudatoolkit_2.3_linux_64_fedora10.run
8.SDKとサンプルプログラムをインストール
ここはハマりどころ。
まず、ユーザー権限でSDKをインストール。ホームディレクトリの下にインストールされる。
% sh cudasdk_2.3_linux.run
VIDIA_CUDA_SDK/common/common.mkの該当部分を下記のように修正する(gcc-3.4でコンパイルするように指定するため)。
CXX := g++34
CC := gcc34
LINK := g++34 -fPIC
NVCCFLAGS := --compiler-bindir /tmp
シンボリックリンクの作成
# ln -s /usr/bin/gcc34 /tmp/gcc
「undefined reference to std::basic_ostream」というエラーを避けるために、下記の修正を行なう。
cd VIDIA_CUDA_SDK/
mv src/smokeParticles/Makefile src/smokeParticles/0makefile
mv src/particles/Makefile src/particles/0makefile
mv src/nbody/Makefile src/nbody/0makefile
(参考)http://forums.nvidia.com/index.php?showtopic=99139
もしうまくいかなければ、CUDA 3.0を試してください。
http://developer.nvidia.com/object/cuda_3_0_downloads.html