2010年1月7日木曜日

Linux Fedora 12 + Geforce GT 240 でCUDA

1. NVIDIA ドライバのインストール

  • ドライバの入手
NVIDIAのwebページでGT 240 用 Linux ドライバを検索しても該当無し、という結果が返される。オフィシャルに対応している分けではなさそうだが、195.30あたり以降なら動作可能らしいので適当なビデオカードで検索してドライバのファイルをダウンロードする。

  • ドライバインストール準備
Fedora12ではnVIDIA用ドライバとしてnouveauがインストールされており、これはプロプライエタリドライバと競合する。そこでgrubでkernel指定する時 nouveau.modeset=0をつけてnovuveauドライバが起動しないようにする
kernel /vmlinuz-2.6.31.9-174.fc12.x86_64 ro root=/dev/md1 rhgb quiet LANG=ja_JP.UTF-8 KEYTABLE=jp106 nouveau.modeset=0

  • ドライバインストール
ランレベル3で起動してXの動いていない状態で
sudo sh NVIDIA-Linux-x86_64-195.30-pkg2.run
を実行。インストール完了。後は適当にxorg.confを編集して nvidia ドライバを有効にする。/usr/share/doc/NVIDIA_GLX-1.0/ あたりを参照。インストーラで実行するか聞いてくる、自動設定スクリプトを走らせても大体動く。


2.CUDAインストール
  • ファイルのダウンロード
CUDAダウンロードページで「オペレーションシステム→Linux64ビット」、「Linux版→Fedora10」を選択し、出てくる
  1. CUDAツールキット cudatoolkit_2.3_linux_64_fedora10.run
  2. CUDA SDK     cudasdk_2.3_linux.run
をダウンロードする。CUDAダウンロードページのCUDAドライバは既にビデオカードのドライバが入っていれば不要。というか、大体CUDAダウンロードページのドライバの方が古い。

  • インストール
CUDAツールキットをrootユーザーで実行・インストールする。
sudo sh cudatoolkit_2.3_linux_64_fedora10.run

CUDA SDKを一般ユーザーで実行・インストールする。
sh cudasdk_2.3_linux.run
  • 共通設定
パス、ライブラリパスを通す。
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH;/usr/local/cuda/lib64
を.bash_profileに追加


3.CUDA設定 for Fedora12
  • gcc34のインストール
Fedora12(や11)のgcc4.4にCUDAは対応していない。このためgcc3.4をインストールする。
yum install compat-gcc-34 compat-gcc-34-c++
でインストール


  • コンパイル時の変数設定
ソースをコンパイルするときに、Cならgcc34、C++ならg++34を用いるようにmakefileを書き換える。例えばSDKのサンプルNVIDIA_GPU_Computing_SDK/C/common/common.mkの場合
CXX := g++34
CC := gcc34
LINK := g++34 -fPIC
など。また、nvccはC/C++の部分をコンパイルする時にgcc/g++を呼ぶので、gcc34を「gcc」g++34を「g++」で呼ぶようにする必要がある。gcc/g++がどこにあるかは --compiler-bindir オプションで指定できるので /tmpに
ln -s /usr/bin/gcc34 gcc
ln -s /usr/bin/g++34 g++
とリンクを張っておき、前述common.mkで
NVCCFLAGS := --compiler-bindir=/tmp
と修正する。これでNVIDIA_GPU_Computing_SDK/C/でmakeすればSDKのサンプルはコンパイル可能。

0 件のコメント:

コメントを投稿