kernel-ml と NVIDIA ドライバを更新する

はじめに

以前 CentOS7 に kernel-ml や NVIDIA のドライバを入れた.

たまに行うアップデートの流れを書いておく.

更新前の状態

kernel-ml と NVIDIA のドライバの状態は次の通り.

$ uname -a
5.6.6-1.el7.elrepo.x86_64
$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.82       Driver Version: 440.82       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| 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 106...  Off  | 00000000:01:00.0 Off |                  N/A |
| 19%   57C    P0    29W / 120W |      0MiB /  6075MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

カーネルと NVIDIA ドライバを更新する

アップデートの流れは次の通り.

  1. ランレベルを変更して CLI で起動
  2. カーネルやパッケージを更新
  3. OS起動時のカーネルを指定
  4. NVIDIA ドライバを更新
  5. ランレベルを変更して GUI で起動

NVIDIA ドライバはダウンロードして,適当な場所に配置しておくこと.

早速アップデートを進める.

ランレベルを変更して再起動する.

$ sudo systemctl set-default multi-user.target
$ sudo reboot

カーネルやパッケージをアップデートする.デフォルトの 3 系カーネルは更新しないよう除外する.

$ sudo yum update --enablerepo elrepo-kernel --exclude=kernel.x86_64

OS 起動時に自動で選択されるカーネル指定と GRUB2 の設定を更新する.

$ sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
$ sudo grub2-set-default 0
$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

NVIDIA ドライバを更新する.ドライバの更新時に,GCC のバージョンがカーネルをビルドしたものと異なると警告が出たため,カーネルにあわせて GCC9 もインストールする.コンパイラのバージョンが異なるとうまく GUI が起動出来ないことがあるので注意.

$ sudo yum install centos-release-scl
$ sudo yum install devtoolset-9-gcc
$ sh ./NVIDIA-Linux-x86_64-460.84.run

一通り更新が完了したので,ランレベルを戻して GUI で再起動できれば作業完了.

$ sudo systemctl set-default graphical.target
$ sudo reboot

更新後の状態は次の通り.

$ uname -r
5.13.0-1.el7.elrepo.x86_64
$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.84       Driver Version: 460.84       CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 106...  Off  | 00000000:01:00.0 Off |                  N/A |
|  0%   57C    P0    14W / 120W |      0MiB /  6075MiB |      3%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

おわりに

kernel-ml と NVIDIA ドライバの更新の流れを書いた.

CentOS7 のサポート終了まであと 3 年.そろそろ真面目にメイン OS の移行先を決めといたほうが良いだろうか.

コメント

タイトルとURLをコピーしました