渡米生活。(日記)

渡米生活。本家から切り離しました。あまり渡米生活に関係のないプログラムネタや音楽ネタなど。

ASUS Z10PE-D8 WS にビデオカードを刺してCUDA8を動かす

ASUS Z10-PE-D8 WS が4枚グラフィックカードを挿せるというので、ただいま奮闘中。

以下、構成です。

1)BIOS設定でメインのVIDEO出力をonboardに変更。

これ、デフォルトでそうなっている、とマニュアルには書いてあるのに、そうなっていなかった…。
カード挿すとQ-Codeが62番を刺して「ピー」とか音がして起動が止まってしまうので、何が悪いのかとマザーボードを箱から出してみたり、奮闘2時間。もしやと思ってBIOSをチェックしたらいつのまにかoffboard deviceになってる…。

BIOSからIntelRCSetup→Miscellaneous Configuration→Active Videoで設定。

2)ドライバとCUDAのインストール

前の記事では.runファイルを使う方法で紹介したのだけれど、ELrepoを使うとrpmで簡単に入るのでそれでやってみる。

nouveauを無効化するところまでは前の記事と同じなので省略。


1) ELrepo をインストール

ELrepoの中のnvidia-detectがドライバを選んでくれるのだけれど、そのためにはまずelrepoをrpmにインポートする必要がある。

$ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ sudo rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
$ sudo yum install nvidia-detect

2)cuda RPMをとってくる。

RPMの場合、cudaをインストールしたら勝手にドライバもいれてくれる。
現時点での最新はCUDA8.0なので、nvidiaのホームページに行ってCUDAのrpmをとってくる。

NVIDIAのウェブサイトにある基本コマンドは以下のとおり。

$ sudo rpm -i cuda-repo-rhel6-8-0-local-ga2-8.0.61-1.x86_64.rpm
$ sudo yum clean all
$ sudo yum install cuda

しかし、SL6.Xにこれをやると、以下のエラーが出る。

Requires: libvdpau(x86-32) >= 0.5 

どうしたものかと思ったら、以下のサイトに解決法が書いてありました。ありがたや!

Scientific Linux 6でCUDA: satok weblog

転載すると、

1 /etc/yum.repos.d/linuxtech.repo と言うファイルを作成
[linuxtech]
name=LinuxTECH
baseurl=http://pkgrepo.linuxtech.net/el6/release/
enabled=1
gpgcheck=1
gpgkey=http://pkgrepo.linuxtech.net/el6/release/RPM-GPG-KEY-LinuxTECH.NET

2 以下のコマンドを実行
# yum install libvdpau

とのこと。たしかに、これでyum installが通るようになりました。

3)テスト

CUDA8.0では、テストプログラムのインストール スクリプトが用意されている。
コンパイルしてdeviceQueryを走らせてみる。

$ /usr/local/cuda-8.0/bin/cuda-install-samples-8.0.sh ~ 
$ cd ~/NVIDIA_CUDA-8.0_Samples/
$ make
$ bin/x86_64/linux/release/deviceQuery

すると、一応走るのだけど、GTX 1080だけこんなエラーが。

MapSMtoCores for SM 6.1 is undefined. Default to use 128 Cores/SM

なんか、せっかくのGTX 1080が遅くなっているような感じ?
で、このメッセージで検索をかけてみると、どうやらcuDNN とかいうライブラリが古いらしい

GTX 1080はPascalなので、cuDNNはバージョン5以上を使わなければダメ、とCUDAのdeveloper pageに書いてあるのだそうな。

というわけで、cuDNNのアップグレードの方法を探したら、これまたすでに解決されている方がおられました!

CUDA 8.0とcuDNN 5.1をUbuntu 16.04LTSにインストールする - Qiita

Ubuntsuについてのページですが、cuDNNのインストールの部分はまったく同じです。
これも一応転載しておきます。

https://developer.nvidia.com/rdp/cudnn-download からcuDNN 5.1 for CUDA 8.0をダウンロードする(アクセスするにはメンバー登録が必要)。 ダウンロードしたフォルダで以下のコマンドを実行して、cuDNNのライブラリをCUDAがインストールされているディレクトリにコピーする。シンボリックリンクシンボリックリンクとしてコピーされるように cp には -a をつける必要がある。

terminal
tar xzvf cudnn-8.0-linux-x64-v5.1.tgz 
sudo cp -a cuda/lib64/* /usr/local/cuda-8.0/lib64/
sudo cp -a cuda/include/* /usr/local/cuda-8.0/include/
sudo ldconfig

ちなみに私はcuDNN 6.0 for CUDA 8.0をとってきましたが、問題なく動きました。

ところで、消費電力大丈夫??

実は、いい加減な計算しかしていなかったもので、、電源が4枚挿しに耐え切れるかわからないのでした(汗)

ざっくり計算すると、グラボ1枚につき225W。CPUは1個あたり75W。マザーボードがどれだけ電気食うかわからないけど、まあ1500Wの電源ならギリ大丈夫、、かな?(^^;)

こんなサイトもあるそうです。。

電源容量 ☆ 皮算用 ☆ 計算機。