前準備
基本的には、公式のインストール手順の通りで問題なくセットアップできます。インストールしたのはCUDAバージョン10.1です。https://docs.nvidia.com/cuda/archive/10.1/cuda-installation-guide-linux/index.html
インストールでの注意点は、必要なソフトウェアのバージョンを、公式の手順書通りに合わせることです。
OS
CentOS7.6が必要です。古いCentOSのisoは以下のリンクにあります。 http://archive.kernel.org/centos-vault/7.6.1810/isos/x86_64/OSのインストールは、「Development and Creative Workstation」「Development Tools」を選択して実行しています。
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
カーネル
3.10が必要です。
$ uname -r
3.10.0-957.10.1.el7.x86_64
gcc
バージョン4.8.5が必要です。
$ gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
GPU
lspciでGPUが存在することを確認します。
$lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev a1)
インストール
root権限で、カーネルヘッダをインストール後、CUDAをインストールします。
$ sudo yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
$wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-rhel7-10-1-local-10.1.243-418.87.00-1.0-1.x86_64.rpm
$sudo rpm -i cuda-repo-rhel7-10-1-local-10.1.243-418.87.00-1.0-1.x86_64.rpm
$yum install epel-release
$yum clean all
$yum -y install nvidia-driver-latest-dkms cuda
CUDAをインストール後、機器をリブートします。
CUDAの動作確認
パスの設定
.bashrcにPATHとLD_LIBRARY_PATHを追加して、.bashrcをリロードします。
$ vi ~/.bashrc
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
$source ~/.bashrc
nvidia-smi
nvidia-smiでCUDAがインストールされていることを確認します。
$nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.40.04 Driver Version: 418.40.04 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 105... Off | 00000000:01:00.0 On | N/A |
| 35% 36C P0 N/A / 75W | 126MiB / 4037MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 6371 G /usr/bin/X 72MiB |
| 0 17862 G /usr/bin/gnome-shell 51MiB |
+-----------------------------------------------------------------------------+
サンプルの動作確認
/usr/local/cuda/samples/ディレクトリのサンプルをコンパイルして動作を確認します。
cd /usr/local/cuda/samples/0_Simple/clock
make
./clock
CUDA Clock sample
GPU Device 0: "GeForce GTX 1050 Ti" with compute capability 6.1
Average clocks/block = 3632.750000