CUDA 5.5 のインストール
CUDA 5.5をCentOS 6.5にインストールした際のログです
CentOS 6.5をminimal構成でインストールし, /etc/yum.repos.d/CentOS-Base.repoを
適当に編集した後にCUDA 5.5をインストールしました. GPUはNVIDIA GTX780Tiです.
まず開発用ツールを一括でインストールしてしまいます.
[root@gpu]# yum groupinstall "Development Tools"
次にRPMforgeのレポジトリを追加します.
http://pkgs.repoforge.org/rpmforge-release/
から, 最新のrpmファイル(現時点ではrpmforge-release-0.5.3-1.el6.rf.x86_64.rpm)
をダウンロード.
[root@gpu]# yum install yum-plugin-priorities
ファイル /etc/yum.repos.d/CentOS-Base.repo 中の各項目([base], [updates], [extras],
[centosplus], [contrib])の末尾に
priority=1
を追加.
[root@gpu]# rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
[root@gpu]# yum update rpmforge-release % (念のためアップデート)
ファイル /etc/yum.repos.d/rpmforge.repo 中の各項目([rpmforge], [rpmforge-extras],
[rpmforge-testing])の末尾に
priority=10
を追加.
RPMforgeからdkms(Dynamic Kernel Module Support Framework)をインストール
[root@gpu]# yum install dkms
これでCUDAのインストール準備が整ったので, CUDAをインストールする.
CUDAのダウンロードサイトからrpm(cuda-repo-rhel6-5.5-0.x86_64.rpm)をダウンロード.
[root@gpu]# rpm -ivh cuda-repo-rhel6-5.5-0.x86_64.rpm
[root@gpu]# yum install cuda
これでCUDAのインストールは終了と思ったのですが, サンプルプログラムのdeviceQueryの
実行ができない不具合(当然, 他のプログラムも実行できず)がありました. いろいろと調べて
みたのですが, 原因はわかりませんでした. NVIDIAドライバを新したら問題解決したという
インターネットの書き込みを見つけたので, ドライバを新しく(319.37 => 331.38)しました.
(しかし, 新規インストール直後のドライバより新しいドライバがあるのはすごく不思議...)
NVIDIAのウェブサイトからドライバをダウンロード(今回はNVIDIA-Linux-x86_64-331.38.run)
旧バージョンのドライバをuninstallして, 新しいものをインストール.
[root@gpu]# yum remove nvidia-kmod xorg-x11-drv-nvidia nvidia-settings nvidia-xconfig
[root@gpu]# chmod 700 NVIDIA-Linux-x86_64-331.38.run
[root@gpu]# ./NVIDIA-Linux-x86_64-331.38.run
質問にいくつか答えてドライバをインストール.
> Would you like to register the kernel module sources with DKMS?
と聞かれて迷ったが, とりあえず yes と回答.
以上で, インストール完了. deveceQueryの実行で動作確認すると, ちゃんと動作しているよう.
matrixMulCUBLASの実行をしてみると,
[user@gpu]$ nvprof matrixMulCUBLAS
[Matrix Multiply CUBLAS] - Starting...
==27172== NVPROF is profiling process 27172, command: ./matrixMulCUBLAS
GPU Device 0: "GeForce GTX 780 Ti" with compute capability 3.5
MatrixA(320,640), MatrixB(320,640), MatrixC(320,640)
Computing result using CUBLAS...done.
Performance= 1604.62 GFlop/s, Time= 0.082 msec, Size= 131072000 Ops
Computing result using host CPU...done.
Comparing CUBLAS Matrix Multiply with CPU results: PASS
==27172== Profiling application: ./matrixMulCUBLAS
==27172== Profiling result:
Time(%) Time Calls Avg Min Max Name
92.50% 2.4647ms 31 79.507us 77.600us 82.368us sgemm_sm35_ldg_nn_64x16x64x16x16
5.02% 133.79us 3 44.597us 1.0560us 66.720us [CUDA memcpy HtoD]
2.47% 65.920us 1 65.920us 65.920us 65.920us [CUDA memcpy DtoH]
と出て, 行列積(sgemm)に92.5%, メモリコピーに7.5%を使っていることが分かる.
以前のGPUより確かにメモリバンド幅が増えているようだ.