antony@notes:~/suse$ cat "NVIDIA-GPU’s-on-SLE-Micro-5.4.md"
NVIDIA GPU’s on SLE Micro 5.4
NVIDIA GPU’s on SLE Micro
Prerequisites
- 至少一台安裝了 SLE Micro 5.3+ 的主機;可以是實體主機,也可以是虛擬主機。
- 您的主機已連接到訂閱,因為存取 Packages 需要訂閱。
- 安裝了 相容的 NVIDIA GPU(或透過虛擬機器運行 SLE Micro)。
- root 用戶存取權限 – 這些說明假定您是 root 用戶,並且沒有透過 sudo 升級權限。
Installation
目前,標準的 SLE Micro package repositories 中沒有 Nvidia 開放驅動程式所需的 Packages,只有 SUSE Linux Enterprise Server 才有。
因此我們需要從這些 package repositories 中提取這些 packages ,我們可以透過工具箱實用 程式輕鬆地做到這一點。 請注意,在未來幾週內將不需要這樣做——我們目前正在 SLE Micro 中提供這些 packages ,因此接下來的步驟將變得多餘。
在此期間,請確保您已正確設定了 mounts.conf文件,這將確保由 podman(包括工具箱實用程式)啟動的任何容器都會自動將您的 SUSE Connect 憑證注入 Container Image。 這將允許存取 Packages,以便我們從 SLES 的 package repositories 下載 packages (此文件通常已在 SLE Micro 5.3 上配置,但我們還是要確認):
$ cat << EOF > /etc/containers/mounts.conf
/etc/zypp/credentials.d/SCCcredentials:/etc/zypp/credentials.d/SCCcredentials
EOF接下來,建立一個臨時目錄,將需要從 SLES 下載的軟體包推送到本機檔案系統中,為此我使用 /root/nvidia:
$ mkdir -p /root/nvidia現在我們可以打開 toolbox 實用程序,它提供了其他不屬於 SLE Micro 基本作業系統的命令列工具和實用程式。 在排除系統故障時,該工具非常有用,因為在這種情況下,您希望將底層作業系統的佔用空間降到最低:
$ toolbox進入工具箱實用程式後,我們可以要求軟體套件管理員(zypper)新增 sle-module-basesystem 模組,刷新軟體來源,然後將 Nvidia 驅動程式軟體包下載到主機檔案系統中先前建立的 /root/nvidia 目錄中,注意在工具箱中的絕對路徑是 /media/root/root/nvidia。
在下面的範例中,我們特別呼叫了支援最新 GPU “G06” 世代的驅動程式,因此請確保選擇了合適的 GPU 版本。
- G03 = driver v340 = legacy driver for GT8xxx/9xxx devices (via a community user, see below)
- G04 = driver v390 = legacy driver for GTX4xx/5xx Fermi devices
- G05 = driver v470 = driver for GeForce 600 series and GeForce 700 series (Kepler)
- G06 = driver for GeForce 700 series (Maxwell, Pascal…) and up
- 更多資訊請參閱 此處
檢查 GPU 型號
$ sudo hwinfo --short --pci
graphics card:
nVidia GP108 [GeForce GT 1030]此外,以下的範例呼叫的是 535.104.05 驅動程式;請確保您選擇的驅動程式版本與您的 GPU 相容,並符合 CUDA 要求(如適用),請點擊此處。 此外,建議您檢查 Nvidia SLE15-SP4 軟體來源,確保您選擇的驅動程式版本與具有相同版本字串的 nvidia-compute-utils-G06 軟體包相當; Nvidia 會定期刷新該軟體來源,但版本必須相符; 我們在SUSE 軟體來源中的驅動程式版本有可能比 Nvidia 在其軟體來源中的版本更新(反之亦然),因此在此匹配版本非常重要。
確認上述情況後,請使用以下命令擷取適合您系統的所需軟體包:
$ ADDITIONAL_MODULES=sle-module-basesystem zypper ref
$ zypper --pkg-cache-dir /media/root/root/nvidia install -y --download-only kernel-devel gcc nvidia-open-driver-G06-signed-kmp=535.104.05 現在您已經在工具箱實用程式之外獲得了軟體包,請退出工具箱:
$ exit現在可以在主機作業系統上安裝軟體包了,為此我們需要打開事務更新會話,創建一個新的底層作業系統讀取/寫入快照,以便對不可變平台進行更改(有關事務更新的更多說明,請 參閱此):
$ transactional-update shell在事務更新 shell 中,新增英偉達所需的其他軟體包軟體來源;這將允許我們調入其他實用程序,如 nvidia-smi,以及存取您可能需要使用的 CUDA 軟體包:
$ zypper ar https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/ nvidia-sle15sp4-cuda
$ zypper ar http://download.nvidia.com/suse/sle15sp4/ nvidia-sle15sp4-main接下來,移至 /root/nvidia 目錄,該目錄包含先前的zypper 命令以從 SLES 下載的軟體包建立的幾個目錄。 然後,我們可以請求軟體包管理器安裝預置的簽章核心模組、韌體軟體包和附加實用程式軟體包:
$ cd /root/nvidia/container-suseconnect-zypp:SLE-Module-Basesystem15-SP4-Updates/x86_64
$ zypper in -y nvidia-open-driver-G06-signed-kmp-default* kernel-firmware-nvidia-gspx-G06* nvidia-compute-utils-G06螢幕輸出
...以上省略
Do you want to reject the key, trust temporarily, or trust always? [r/t/a/?] (r): a
Building repository 'nvidia-sle15sp4-main' cache ......................................................................................................[done]
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following 4 NEW packages are going to be installed:
kernel-firmware-nvidia-gspx-G06 nvidia-compute-G06 nvidia-compute-utils-G06 nvidia-open-driver-G06-signed-kmp-default
The following 4 packages have no support information from their vendor:
kernel-firmware-nvidia-gspx-G06 nvidia-compute-G06 nvidia-compute-utils-G06 nvidia-open-driver-G06-signed-kmp-default
4 new packages to install.
Overall download size: 80.7 MiB. Already cached: 0 B. After the operation, additional 243.9 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Do you agree with the terms of the license? [yes/no] (no): yes
Retrieving package kernel-firmware-nvidia-gspx-G06-535.104.05-150400.9.6.1.x86_64 (1/4), 36.5 MiB ( 58.9 MiB unpacked)
Retrieving package nvidia-open-driver-G06-signed-kmp-default-535.104.05_k5.14.21_150400.24.81-150400.9.17.1.x86_64 (2/4), 5.0 MiB ( 4.9 MiB unpacked)
Retrieving package nvidia-compute-G06-535.104.05-150400.12.1.x86_64 (3/4), 38.5 MiB (178.2 MiB unpacked)
Retrieving: nvidia-compute-G06-535.104.05-150400.12.1.x86_64.rpm ..........................................................................[done (6.6 MiB/s)]
Retrieving package nvidia-compute-utils-G06-535.104.05-150400.12.1.x86_64 (4/4), 638.4 KiB ( 1.7 MiB unpacked)
Retrieving: nvidia-compute-utils-G06-535.104.05-150400.12.1.x86_64.rpm ................................................................................[done]
Checking for file conflicts: ..........................................................................................................................[done]
(1/4) Installing: kernel-firmware-nvidia-gspx-G06-535.104.05-150400.9.6.1.x86_64 ......................................................................[done]
(2/4) Installing: nvidia-open-driver-G06-signed-kmp-default-535.104.05_k5.14.21_150400.24.81-150400.9.17.1.x86_64 .....................................[done]
update-alternatives: using /usr/lib64/nvidia/libOpenCL.so.1 to provide /usr/lib64/libOpenCL.so.1 (libOpenCL.so.1) in auto mode
(3/4) Installing: nvidia-compute-G06-535.104.05-150400.12.1.x86_64 ....................................................................................[done]
(4/4) Installing: nvidia-compute-utils-G06-535.104.05-150400.12.1.x86_64 ..............................................................................[done]
Executing %posttrans scripts ..........................................................................................................................[done]
transactional update # zypper in nvidia-open-driver-G06-signed-kmp-default* kernel-firmware-nvidia-gspx-G06* nvidia-compute-utils-G06^C
transactional update # exit
exit
2023-10-05 03:32:08 Application returned with exit status 130.
2023-10-05 03:32:09 tukit 4.1.4 started
2023-10-05 03:32:09 Options: close 3
Relabeled /var/lib/YaST2 from unconfined_u:object_r:var_lib_t:s0 to unconfined_u:object_r:rpm_var_lib_t:s0
Relabeled /var/lib/YaST2/cookies from unconfined_u:object_r:var_lib_t:s0 to unconfined_u:object_r:rpm_var_lib_t:s0
2023-10-05 03:32:11 New default snapshot is #3 (/.snapshots/3/snapshot).
2023-10-05 03:32:11 Transaction completed.
Please reboot your machine to activate the changes and avoid data loss.
WARNING: This snapshot has been created from a different base (1)
than the previous default snapshot (2) and does not
contain the changes from the latter.
New default snapshot is #3 (/.snapshots/3/snapshot).
transactional-update finished 安裝 nvidia-container-runtime
# toolbox
# zypper --pkg-cache-dir /media/root/root/nvidia install -y --download-only nvidia-container-runtime
# exit
# transactional-update shell
# cd /root/nvidia/container-suseconnect-zypp:SLE-Module-Basesystem15-SP4-Updates/x86_64
# transactional update
# zypper in nvidia-container-runtime
# exit
# reboot安裝 k3s
透過 Rancher 產生安裝命令
安裝 Nvidia gpu-operator
Step1: 在 Rancher 介面新增 gpu-operator 的 App Repositories
Cluster -> Apps -> Repositories -> Create
- name:
nvidia - URL:
https://helm.ngc.nvidia.com/nvidia

填入資料後,點擊右下角的 Create
Step2: 開始安裝 gpu-operator
點擊 Charts 搜尋 gpu,找到並點擊 gpu-operator

點擊右上角 Install

- Namespace: gpu-operator
- 勾選 Customize Helm options before install

新增 toolkit 的變數
env:
- name: CONTAINERD_CONFIG
value: /var/lib/rancher/k3s/agent/etc/containerd/config.toml
- name: CONTAINERD_SOCKET
value: /run/k3s/containerd/containerd.sock 
點擊 Next
點擊 Install
