2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GPUのドライバ周りが壊れてるubuntu-desktopのドライバ再編

Posted at

前置き

現在、UbuntuでNvidiaのGPUを使う方法が環境によって点在しています。というのもdesktop版とserverでのやり方、ドライバの種類、dockerの使用の有無など、があるためです。
という状況になると、複数人でGPUサーバーを管理している場合、前任者がどの入れ方でインストールを行ったかも分かりづらく、何が壊れているかわからないという場合もあるかと思います。今回はそんなGPUサーバーの環境を構築しなおします。

今回の再編の目標は以下です。

  • Ubuntu-desktopでドライバを楽に入れる
  • GPUdriverを綺麗にする
  • dockerにGPUを対応させる

今回行った環境は以下です

スペック・構成
CPU i9-10980XE
RAM 128GB
GPU RTX A6000
OS  ubuntu22.04LTS

目次

GPUドライバの削除

ドライバの削除は以下のコマンドでnvidiaに関連するソフトウェアを一括で削除します。

sudo apt purge nvidia-*

どのような状態でドライバがインストールされているかの特定を行うより、最新のドライバを入れ直したほうが早い場合です。後述するGUI経由でインストールされていない場合など恐らくすべての場合に対応します。

dockerの削除

docker周りの調子もおかしかったので再インストールを行います。

sudo apt purge -y --auto-remove docker-*

GPUドライバの再インストール

Ubuntu DesktopではGUIでドライバを管理することができます。
CUI版の場合は、nouveauを無効にする手順が挟まりますが、こちらだと同時にインストールまで行うことができます。(nvidia-driverを選択した時点で自動的に無効化されます)
image.png
設定画面を開き、ソフトウェアのアップデートを開く
image.png
追加のドライバータブを選択し、上から三つ目のNVIDIA driver metapackageをnvidia-driver-545から使用します(プロプライエタリ)を選択します。

open kernel版とそうでないものの違いはkernelバージョンとの整合性の問題です。UbuntuをはじめとしたLinuxベースのOSにはLinux Kernelが基盤として動いており、このkernelバージョンとの相性によって動かないことがあるため、そのような場合ではこちらを選択することがあります。

ここで再起動

dockerの再インストール

面倒なことは避けたいのでワンライナーを使っていきます。
docker公式のこちらより、

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

nvidia container toolkitのインストール

基本的には公式ドキュメントに従って進めていくことになります。Ubuntuの場合はaptを利用します。

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \
  && \
    sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

2023/12現在の話です。nvidiaのdocker対応はコロコロソフトウェアやバージョンが変わるのでその時々に合わせて変更してください。

動作確認

tsukky@oasis:~$ docker run --gpus all nvidia/cuda:12.3.0-base-ubuntu22.04 nvidia-smi
Unable to find image 'nvidia/cuda:12.3.0-base-ubuntu22.04' locally
12.3.0-base-ubuntu22.04: Pulling from nvidia/cuda
aece8493d397: Already exists 
03bb9eb021f5: Pull complete 
d1937dd2edf2: Pull complete 
89aa5c6f8794: Pull complete 
7d4f0f8effa7: Pull complete 
Digest: sha256:ab701cbe9784a586949674dac46a83cd4bed19944fbc9324619317be865ea678
Status: Downloaded newer image for nvidia/cuda:12.3.0-base-ubuntu22.04
Sun Nov 19 06:51:43 2023       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.29.02              Driver Version: 545.29.02    CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| 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  NVIDIA RTX A6000               Off | 00000000:68:00.0  On |                  Off |
| 30%   33C    P8              13W / 300W |    356MiB / 49140MiB |      1%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
+---------------------------------------------------------------------------------------+
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?