nvidiaドライバーインストール

NVIDIA driverのインストール

https://www.server-world.info/query?os=CentOS_7&p=nvidia を参照。

システムのランレベルを変更する場合は以下のようにします。
[1]	ランレベルは /etc/systemd/system/default.target へのリンクで決定されています。 例えばGUI無しの場合のデフォルトは以下のようになっています。
# 現在の設定を表示
[root@dlp ~]# systemctl get-default
multi-user.target
# /etc/systemd/system/default.target へのリンク元は /lib/systemd/system/multi-user.target
[root@dlp ~]# ll /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 37 Jul 9 06:04 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target
[2]	例えば、グラフィカルログインに変更するには以下のようにします。
[root@dlp ~]# systemctl set-default graphical.target
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target'
# 確認
[root@dlp ~]# systemctl get-default
graphical.target
[root@dlp ~]# ll /etc/systemd/system/default.target
lrwxrwxrwx 1 root root 36 Jul 9 21:55 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target
NVIDIAドライバーをインストールする
 	
システムに NVIDIA 社のグラフィックカードを搭載している場合、NVIDIA 社提供のグラフィックドライバーをインストールすることで、よりよいパフォーマンスを得ることができます。
なお、[yum update kernel] 等でカーネルを更新した際は、都度、ドライバーの更新も必要になります。
[1]	
デスクトップ環境をインストールしている場合は、こちらを参考に、グラフィカルログイン無しでシステムを起動しておきます。 ドライバーのインストール完了後はグラフィカルログインに戻して OK です。
[2]	デフォルトでロードされている nouveau ドライバーを無効化しておきます。
[root@dlp ~]# lsmod | grep nouveau
nouveau              1622010  1
video                  24520  1 nouveau
mxm_wmi                13021  1 nouveau
wmi                    19070  2 mxm_wmi,nouveau
i2c_algo_bit           13413  1 nouveau
drm_kms_helper        159169  1 nouveau
ttm                    99345  1 nouveau
drm                   370825  4 ttm,drm_kms_helper,nouveau
i2c_core               40756  5 drm,i2c_i801,drm_kms_helper,i2c_algo_bit,nouveau

[root@dlp ~]# vi /etc/modprobe.d/blacklist-nouveau.conf
# 最終行に追記 (ファイルがない場合は新規作成)
blacklist nouveau
options nouveau modeset=0
[root@dlp ~]# dracut --force
[root@dlp ~]# reboot
sudo yum -y install kernel-devel-$(uname -r)
#ただ、kernelが古すぎると、同じバージョンのカーネルが無いので、バージョンを消した下記のコマンドを実行
#sudo yum -y install kernel-devel kernel
#reboot

sudo bash /suikou/download9/NVIDIA-Linux-x86_64-535.54.03.run

#CentOS7のときは下記がないと起動後しばらくしてGPUを認識しなくなる。Rocky9では不要
#sudo nano /etc/rc.d/rc.local
##ファイルの末尾に
#nvidia-persistenced

Podmanへのインストール @ Rocky Linux 9.2

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html を見るに、RHEL9もCentOS8のリポジトリとおなじみたい。

curl -s -L https://nvidia.github.io/nvidia-docker/centos8/nvidia-docker.repo > /etc/yum.repos.d/nvidia-docker.repo
dnf install -y nvidia-container-toolkit-base

nano /etc/nvidia-container-runtime/config.toml

#下記のように変更
[nvidia-container-cli]
#no-cgroups = false
no-cgroups = true

[nvidia-container-runtime]
#debug = "/var/log/nvidia-container-runtime.log"
debug = "~/.local/nvidia-container-runtime.log"

下記で確認

podman run --security-opt=no-new-privileges --cap-drop=ALL --security-opt \
label=type:nvidia_container_t --hooks-dir=/usr/share/containers/oci/hooks.d/ \
docker.io/nvidia/cuda:10.2-base nvidia-smi

では動かなかったので

dnf -y install nvidia-container-toolkit

して

podman run nvidia/cuda:10.2-base nvidia-smi

だとユーザ権限で動いた

CUDAのインストール2023/07/03

#wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-rhel9-12-2-local-12.2.0_535.54.03-1.x86_64.rpm
#dnf -y install /suikou/download9/cuda-repo-rhel9-12-2-local-12.2.0_535.54.03-1.x86_64.rpm
#dnf -y install cuda

#pytorchに合わせてバージョンを変えるためリポジトリを使ってインストール
dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
dnf clean all
dnf -y module install nvidia-driver:latest-dkms
dnf -y install cuda-11.8.0-1.x86_64
#各ユーザで
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

Dockerのインストール

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run --rm hello-world
sudo usermod -aG docker $USER
curl https://nvidia.github.io/nvidia-docker/centos7/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
#yum -y install nvidia-container-toolkit
sudo yum install -y nvidia-docker2
sudo systemctl restart docker
docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
sudo mkdir /etc/zabbix/scripts
sudo nano /etc/zabbix/scripts/get_gpus_info.sh

下記のファイルを作る

#!/bin/bash

result=$(/usr/bin/nvidia-smi -L)
first=1

echo "{"
echo "\"data\":["

while IFS= read -r line
do
  if (( "$first" != "1" ))
  then
    echo ,
  fi
  index=$(echo -n $line | cut -d ":" -f 1 | cut -d " " -f 2)
  gpuuuid=$(echo -n $line | cut -d ":" -f 3 | tr -d ")" | tr -d " ")
  echo -n {"\"{#GPUINDEX}"\":\"$index"\", \"{#GPUUUID}"\":\"$gpuuuid\"}
  if (( "$first" == "1" ))
  then
#    echo ,
    first=0
  fi
done < <(printf '%s\n' "$result")

echo
echo "]"
echo "}"

sudo nano /etc/zabbix/zabbix_agentd.conf

UserParameter=gpu.number,/usr/bin/nvidia-smi -L | /usr/bin/wc -l
UserParameter=gpu.discovery,/etc/zabbix/scripts/get_gpus_info.sh
UserParameter=gpu.fanspeed[*],nvidia-smi --query-gpu=fan.speed --format=csv,noheader,nounits -i $1 | tr -d "\n"
UserParameter=gpu.power[*],nvidia-smi --query-gpu=power.draw --format=csv,noheader,nounits -i $1 | tr -d "\n"
UserParameter=gpu.temp[*],nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits -i $1 | tr -d "\n"
UserParameter=gpu.utilization[*],nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits -i $1 | tr -d "\n"
UserParameter=gpu.memfree[*],nvidia-smi --query-gpu=memory.free --format=csv,noheader,nounits -i $1 | tr -d "\n"
UserParameter=gpu.memused[*],nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits -i $1 | tr -d "\n"
UserParameter=gpu.memtotal[*],nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits -i $1 | tr -d "\n"

sudo systemctl restart zabbix-agent.service

  • nvidiaドライバーインストール.1689339417.txt.gz
  • 最終更新: 2023/07/14 12:56
  • by suikou