目錄
- 1 平臺
- 2 目標
- 3 步驟
- 3.1 驅動
- 1 更新apt軟體源
- 2 使用apt安裝驅動
- 3 重啟計算機
- 4 驗證
- 3.2 CUDA
- 1 CUDA Toolkit安裝
- 2 環境變數設定
- 3 POWER9設定
- 4 重啟計算機
- 5 驗證
- 3.3 cuDNN
- 1 配置臨時環境變數
- 2 添加apt庫
- 3 安裝cuDNN 和cuDNN 示例程式
- 4 驗證
- 3.4 nvidia-docker2
- 1 添加nvidia-docker2的GPG Keys
- 2 添加nvidia-docker2的apt庫
- 3 更新apt軟體源
- 4 使用apt安裝nvidia-docker2
- 5 重啟計算機
- 6 驗證
- 3.1 驅動
- References
1 平臺
- OS:Pop!_OS 22.04 LTS
- 本文所有輸入輸出都是在Pop!_OS 22.04 LTS上的,
- Pop!_OS 22.04 LTS是一款基于Ubuntu 22.04 LTS的Linux發行版,由System76開發和維護,理論上本文也適用于Ubuntu 22.04,但是未經測驗,
- GPU:Nvidia Quadro M2000M
2 目標
- 安裝GPU驅動nvidia-driver-530
- 安裝CUDA 12.1
- 安裝cuDNN 8.9.1.23
- 安裝nvidia-docker2
3 步驟
3.1 驅動
1 更新apt軟體源
sudo apt update
2 使用apt安裝驅動
sudo apt install nvidia-driver-530
3 重啟計算機
4 驗證
在重啟計算機后,執行以下命令
nvidia-smi
若有類似以下格式的輸出,并且第二行Driver Version對應530版本,則可確認驅動安裝成功
- 需要注意的是,這里的CUDA Version表示驅動支持的CUDA版本,并不代表我們已安裝該版本的CUDA

3.2 CUDA
1 CUDA Toolkit安裝
執行以下指令
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda
以上指令來自CUDA Toolkit 12.1 Downloads | NVIDIA Developer的target_os=Linux -- target_arch=x86_64 -- Distribution=Ubuntu -- target_version=22.04 -- target_type=deb_network 方式,如需詳細查看其他方式可能需要完成注冊并登錄再點擊鏈接
2 環境變數設定
在~/.bashrc檔案末尾添加
- 可先驗證/usr/local/cuda-12.1檔案夾是否存在后,再修改~/.bashrc,以免導致環境變數錯誤
export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}
3 POWER9設定
3.1 驗證NVIDIA Persistence 守護行程是否正在運行
NVIDIA Persistence 守護行程應該會自動啟動,驗證是否正在運行
systemctl status nvidia-persistenced
-
若行程正在運行, Active狀態應為active

-
若行程未自動啟動,使用執行以下命令再驗證
sudo systemctl enable nvidia-persistenced
3.2 禁用默認安裝的 udev 規則
1 將POP!_OS 22.04 LTS的相應udev檔案拷貝到/etc/udev/rules.d目錄下
sudo cp /lib/udev/rules.d/40-vm-hotadd.rules /etc/udev/rules.d
2 在/etc/udev/rules.d/40-vm-hotadd.rules檔案的類似以下格式對應的memory一行前加#注釋掉該行
SUBSYSTEM=="memory", ACTION=="add", DEVPATH=="/devices/system/memory/memory[0-9]*", TEST=="state", ATTR{state}!="online", ATTR{state}="online
- 一些 Linux 發行版中默認安裝了 udev 規則,這些規則會導致熱插拔記憶體在物理探測時自動聯機,此行為會阻止 NVIDIA 軟體使用非默認設定來讓 NVIDIA 設備進行記憶體聯機,必須禁用此 udev 規則,NVIDIA CUDA 驅動程式才能在 POWER9 系統上正常運行,
- POP!_OS 22.04 LTS 默認安裝的udev規則在
/lib/udev/rules.d/40-vm-hotadd.rules檔案中,有類似如下格式
SUBSYSTEM=="memory", ACTION=="add", DEVPATH=="/devices/system/memory/memory[0-9]*", TEST=="state", ATTR{state}!="online", ATTR{state}="online"
4 重啟計算機
5 驗證
1 重啟后nvcc命令應可用
執行
nvcc -V
若CUDA安裝成功,應有類似如下輸出

2 (可選,但強烈推薦)編譯并運行CUDA示例程式
1 克隆實體程式庫
git clone https://github.com/NVIDIA/cuda-samples.git
- CUDA 12.1 對應commit e612904184446c81e4d5beac8755081f9662cca0
2 在示例程式目錄下編譯程式
cd cuda-samples
make
- 使用
TARGET_ARCHmake選項指定編譯程式的目標架構,不指定默認為x86_64make TARGET_ARCH=x86_64make TARGET_ARCH=ppc64lemake TARGET_ARCH=armv7lmake TARGET_ARCH=aarch64
3 執行示例程式
編譯成功后示例程式應在cuda-samples檔案夾下的bin/x86_64/linux/release目錄中
在cuda-samples檔案夾下執行
./bin/x86_64/linux/release/deviceQuery
./bin/x86_64/linux/release/bandwidthTest
若兩個程式末尾都有 Result = PASS,則驗證通過
3.3 cuDNN
1 配置臨時環境變數
直接在終端執行
export OS=ubuntu2204
export cudnn_version=8.9.1.23
export cuda_version=cuda12.1
- 這里OS表示當前的系統,Pop!_OS 22.04 LTS 是基于Ubuntu 22.04 LTS的這里設定為ubuntu2204,官方檔案表示可選debian11, ubuntu1804, ubuntu2004, o或 ubuntu2204;cudnn_version表示想要安裝的cuDNN版本,官方檔案表示可以是8.9.1.*,這里選擇了8.9.1.23;cuda_version表示我們的CUDA版本,官方檔案表示只能設定為cude12.1或cuda11.8
2 添加apt庫
執行以下命令添加apt庫
wget https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/cuda-${OS}.pin
sudo mv cuda-${OS}.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/ /"
sudo apt-get update
3 安裝cuDNN 和cuDNN 示例程式
sudo apt-get install libcudnn8=${cudnn_version}-1+${cuda_version}
sudo apt-get install libcudnn8-dev=${cudnn_version}-1+${cuda_version}
sudo apt-get install libcudnn8-samples=${cudnn_version}-1+${cuda_version}
4 驗證
0 可能缺少libfreeimage3 libfreeimage-dev庫,執行
sudo apt install libfreeimage3 libfreeimage-dev
1 拷貝示例程式到用戶檔案夾,并編譯
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
2 執行示例程式
在 $HOME/cudnn_samples_v8/mnistCUDNN檔案夾下,執行
./mnistCUDNN
若輸出程式末尾包含Test passed!,則驗證成功
3.4 nvidia-docker2
安裝nvidia-docker2的前提是你已經安裝了docker
1 添加nvidia-docker2的GPG Keys
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
2 添加nvidia-docker2的apt庫
創建/etc/apt/sources.list.d/nvidia-container-toolkit.list檔案,并添加以下內容
deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/ubuntu22.04/$(ARCH) /
3 更新apt軟體源
執行
sudo apt update
4 使用apt安裝nvidia-docker2
sudo apt install nvidia-docker2
5 重啟計算機
6 驗證
重啟后執行
docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu20.04 nvidia-smi
若有類似以下輸出則驗證成功,此輸出與在host中執行 nvidia-smi類似

References
1 NVIDIA CUDA Installation Guide for Linux
2 cuDNN Installation Guide - NVIDIA Docs
3 How to Use the NVIDIA GPU in Docker Containers on Ubuntu 22.04 LTS (linuxhint.com)
4 CUDA Toolkit 12.1 Downloads | NVIDIA Developer
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/553432.html
標籤:其他
上一篇:直接用中文寫提示詞的Stable Diffusion擴展:sd-prompt-translator發布
下一篇:返回列表
