Scientific Linux 6.3インストールログ2:NVidia GEForce GTX 660 & 750Tiを挿す
使用マシン:DELL PowerEdge T410, T420
ビデオカードを追加インストールする方法。
本当は、最初からカードさしておいてシステムをインストールすればいいのかもしれないが、諸事情であとから付け加える方法が必要なので、そのメモ。
※ちなみに、ビデオカードを積んだのはゲームのためではなく、バリバリ計算プログラムを動かすためです。
1)ハードをそろえる。
うちのプログラムで動作実績があり、そこそこパフォーマンスがよくて、Dell T410の電源でもなんとかなりそうなのは、GEForce GTX 660だ、ということでこれを購入。
メーカーは、これも既にPowerEdge T640などで動作実績があった、EVGAの製品。
http://jp.evga.com/articles/00700/
※フツーにグラフィック用に使いたい人は、このカードをDell PowerEdge T410と一緒に使うのはおすすめしません。
T410の場合、予備の電源口がSATAに1つしか空いていないので、SATA電源 - VGA 6Pin変換ケーブルも購入。
2014/5/21追記:
今度はPowerEdge T420にGEForce GTX 750Tiを差すことになったので、それも購入。750Tiは消費電力が少なく、補助電源がいらないのが有り難い。
コア数は660より少ないが、ブレードサーバまで買う余裕がないけど、研究室に500W程度の電源のついたタワーサーバがあるので遊ばせておくのは惜しい、という場合には使えるかも。
購入したカードは、やはりEVGA。なんでかというと、アメリカではこれが安くて、うちのグループで動作実績があって、しかもSuper Clockで速いから(しかし日本では結構高いな…)
2)カードを挿す。
まず、BiosでプライマリのグラフィックアダプタがPCIになっていると、カード挿すと何も映らなくなるので、カードを挿す前にプライマリのグラフィックアダプタををオンボードに変えておくこと。
さて、いざやってみると、デフォルトでは物理的に刺さらない(爆)。
というか、PowerEdge T410って、それなりに拡張もある、と思って買ったのだけど、実は後から自分で足すにはかなり融通きかない、と実感(PCIe x4が4ポート、PICe x8が1ポートあるのに!)
まず、グラフィックカードなので場所は2つ分とるわけだけど、この2つのインターフェース部分の幅が会わない。
ただ、インターフェース部の化粧板をはずすと、なんとか無理矢理刺さります。
ただし、このためホントにインターフェース部分だけでカードの重さを支えることになるし、ビスで固定する場所もないので、ケーブルを抜き差ししなければならない用途では実質使用不可。(だからこれにモニタをつないで……という用途には向かない)。
内部で計算だけできりゃいいや、という人にはこれでもなんとかいけるでしょう。
コンピュータを動かしたら、その度にカードが外れてないか、確かめた方がいいかも。
それから、ヒートフロー制御ための黒いカバーも一部改造が必要です。
PCIe x8が1個しかないので、そこに挿すしかないわけですが、そこにでかいグラフィックカードを差してしまうと、このヒートフローカバーとぶつかる……。
というわけで、無理矢理ぶつかる部分を除去。
さらに、このヒートフローカバーを押さえるアーム(黒いプラスチック)も取り外さないと、今度はもとからついてきたSerial ATA用のカードが刺さりません。
T420 と GTX750ti の組み合わせは、何も無理せずに刺さりました。
ただし、カードはスロット3に刺さないと認識しない(優先順位が3、5の順番のため)。折角x16のgen3が2ポートあるんだから、と思いましたが、2つ目はCPUを二個積んでいないと認識しないようです。
こんな感じ。
3)NVidia のドライバをインストール。
以下のリンクからドライバをダウンロード。
http://www.nvidia.com/Download/index.aspx?lang=en-us
以下、インストールの参考にしたページです。
- Scientific Linux 6.2にNVIDIAドライバーをインストールする
- http://www.unix.com/red-hat/233151-nvidia-grahics-card-enormous-display-rhel-6-4-a.html
- CUDA プログラミング
1)必要なもののインストール
# yum install kernel-devel # yum install gcc
2)カーネルのバージョンを固定する
# vi /etc/yum.conf
exclude=kernel*
という行を追加する。
3)nouveauを無効化する
# cd /boot # mv initramfs-$(uname -r).img initramfs-$(uname -r).img.nouveau # dracut --omit-drivers nouveau /boot/initramfs-$(uname -r).img $(uname -r)
これで、新しい.imgファイルができる。
nouveauをブラックリスト化
# cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.old # vi /etc/modprobe.d/blacklist.conf 最後に以下を追加 blacklist nouveau options nouveau modeset=0 更に # cp /boot/grub/grub.conf /boot/grub/grub.conf.old # vi /boot/grub/grub.conf kernel=で始まる行の最後に以下を追加 rdblacklist=nouveau
CentOS7 の場合、以下の2つのファイルを変更(なければ作る)
Smiling Life : CentOS7におけるNVIDIAドライバのインストール方法
># vi /etc/modprobe.d/modprobe.conf # # /etc/modprobe.d/modprobe.conf (to omit nouveau driver) # blacklist nouveau ># vi /etc/modprobe.d/nouveau_blacklist.conf blacklist nouveau
4)ランレベルを変更して再起動
# vi /etc/inittab
id:5:initdefault: を id:3:initdefault: に書き換える.
# shutdown -r now
5)ダウンロードしてきたrunファイルを実行する
カーネルのバージョンをチェック # uname -r 2.6.32-279.el6.x86_64 この値を使って次のコマンドを実行 # sh NVIDIA-Linux-x86_64-290.10.run --kernel-source-path='/usr/src/kernels/2.6.32-279.el6.x86_64' --kernel-name='2.6.32-279.el6'
karnel-source-path等のオプションなしでもインストール成功することもある(多分一度もカーネルをアップデートしていない場合?)、コケることもある。
その場合は、上に書いた通り--オプションをつけて実行。
質問には全てyesで答えてインストールして良い(最後のxorg.confについてはNoでも良い)
ちなみにアンインストールは -uninstallをつければ良い。
6)xorg.conf をリネーム
…と、インストールは成功したけど、どうにもモニタが映らない。
計算機として使いたいだけなので、モニタはデフォルトのモニタを使うことにする。xorg.confをリネームしてXを起動すればデフォルトのモニタに戻る。
# mv /etc/X11/xorg.conf /etc/X11/xorg.conf.nvidia
7)ランレベルを戻したい場合は再度編集。
ランレベル3でもログイン直後にstartxと打てばランレベル5と変わらないので、メンテ用にこのままにしておいても良い。
# vi /etc/inittab
id:3:initdefault: を id:5:initdefault: に書き換える.
8)再起動
# shutdown -r now
CUDA tool kit インストール
CUDA開発環境(CUDA tool kit)をインストールすると、実は上でインストールしたNVidia開発環境を一度削除することになります。
まあ、CUDAのインストールスクリプト(.run)が勝手にドライバを削除するので問題はないですが、どうも消されるドライバーも先にいれておかないと駄目っぽいです。
以下にこまかく方法がかいてあります。
NVIDIA CUDA Getting Started Guide for Linux
rpmは使わない方が良い。.runは全部ひとつのディレクトリにかためてくれるので、アンインストールも楽。
cudaのドライバをとってくる。rpm版はlibvdpauのバージョンが合わないと怒られたので、.runファイルをダウンロードする。
https://developer.nvidia.com/cuda-downloads
以下、ランレベル3で実行。
# sh cuda_5.5.22_linux_64.run または # sh cuda_6.0.37_linux_64.run (コケることもあり)
とにかく全部Yesでインストール。
インストールが終わると、/root/NVIDIA_CUDA-6.0_Samples というディレクトリが出来ている。
# export PATH=/usr/local/cuda-6.0/bin:$PATH # export LD_LIBRARY_PATH=/usr/local/cuda-6.0/lib64:$LD_LIBRARY_PATH # cd /root/NVIDIA_CUDA-6.0_Samples # make
結構makeは時間がかかる。
/root/NVIDIA_CUDA-6.0_Samples/bin の下に大量に実行ファイルができるので、とりあえず以下の二つのコマンドを探して実行、PASSするかどうかを見る。
# /root/NVIDIA_CUDA-6.0_Samples/bin/..../deviceQuery # /root/NVIDIA_CUDA-6.0_Samples/bin/..../bandwidthTest cat /proc/driver/nvidia/version #バージョン確認
あとは出来たバイナリを色々実行してみて、動いているか確認。