系統(tǒng)環(huán)境:
系統(tǒng):linux
版本:ubuntu20.04
Docker簡介
Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的 Linux或Windows操作系統(tǒng)的機器上,也可以實現(xiàn)虛擬化。NVIDIA 改進了原始的Docker,便于容器使用NVIDIA GPU。由于仿真環(huán)境的配置需要安裝很多庫,對于新手不太友好,因此我們提供了Docker鏡像,便于開發(fā)者使用。盡管Docker理論上適配多種操作系統(tǒng),但由于后續(xù)算法開發(fā)仍建議在本地進行,因此操作系統(tǒng)仍需使用Ubuntu。
NVIDIA驅(qū)動安裝
nvidia-docker需要宿主機已經(jīng)安裝nvidia驅(qū)動,為了與鏡像的驅(qū)動版本保持一致,開發(fā)者需要安裝470版本,以下安裝方式的前提是之前沒有安裝或是通過apt安裝的nvidia驅(qū)動。如果之前是其他方法安裝的驅(qū)動,要根據(jù)具體情況更改驅(qū)動版本。
安裝 nvidia-driver-470 指令
sudo apt install nvidia-driver-470
查看GPU型號
jk-jone@JKKC:~$ lspci | grep -i nvidia
01:00.0 3D controller: NVIDIA Corporation Device 1f9c (rev a1)
查看當(dāng)前NVIDIA驅(qū)動版本
sudo dpkg --list | grep nvidia-*
或者
cat /proc/driver/nvidia/version
jk-jone@JKKC:~$ sudo dpkg --list | grep nvidia-*
jk-jone@JKKC:~$
jk-jone@JKKC:~$ cat /proc/driver/nvidia/version
cat: /proc/driver/nvidia/version: 沒有那個文件或目錄
像這樣則表示沒有安裝NVIDIA驅(qū)動
sudo apt install nvidia-driver-470
用這個裝就行了
安裝過程會有進度條
看到這個表示安裝成功
NVIDIA-Docker安裝
之后安裝nvidia-docker
curl https://get.docker.com | sh && sudo systemctl --now enable docker
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& 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/$distribution/libnvidia-container.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-docker2
sudo systemctl restart docker
通過運行如下命令測試Docker使用安裝成功
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as ‘legacy’
nvidia-container-cli: initialization error: nvml error: driver not loaded: unknown.
出現(xiàn)了這個問題
翻了很多帖子,最后在github上 NVIDIA/nvidia-docker/issues/1648 找到答案。
是gpu的持久模式(nvidia-persistenced daemon)并未開啟。
nvidia-smi
查詢顯卡資源的時候
報錯
jk-jone@JKKC:~$ nvidia-smi -a
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
可能是內(nèi)核版本更新的問題,導(dǎo)致新版本內(nèi)核和原來顯卡驅(qū)動不匹配
查看已安裝內(nèi)核
jk-jone@JKKC:~$ dpkg --get-selections |grep linux-image
linux-image-5.14.0-1051-oem deinstall
linux-image-5.14.0-1054-oem deinstall
linux-image-5.14.0-1058-oem install
linux-image-5.14.0-1059-oem install
linux-image-oem-20.04 install
查看正在使用的內(nèi)核
uname -a
jk-jone@JKKC:~$ uname -a
Linux JKKC 5.14.0-1059-oem #67-Ubuntu SMP Mon Mar 13 14:22:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
顯示為 5.14.0-1059
不知道安裝nvidia驅(qū)動時的內(nèi)核版本
不知道是不是不匹配造成的
只需執(zhí)行兩條命令就好
sudo apt-get install dkms
查看驅(qū)動版本
ls /usr/src | grep nvidia
jk-jone@JKKC:~$ ls /usr/src | grep nvidia
nvidia-470.182.03
sudo dkms install -m nvidia -v 470.182.03(470.182.03表示的是驅(qū)動版本號)
jk-jone@JKKC:~$ sudo dkms install -m nvidia -v 470.182.03
Module nvidia/470.182.03 already installed on kernel 5.14.0-1059-oem/x86_64
所以不是內(nèi)核不匹配造成的
重啟下電腦試試
呵呵,畫面出來了
nvidia-smi -a
查詢自己的 Persistence Mode 是否開啟
果然 Persistence Mode 為 Disabled
使用root權(quán)限執(zhí)行如下命令:
nvidia-smi -pm ENABLED
再次用下面的命令,來查看Docker是否安裝成功文章來源:http://www.zghlxwxcb.cn/news/detail-421659.html
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
Wed Apr 12 02:47:12 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.182.03 Driver Version: 470.182.03 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| 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 GeForce ... Off | 00000000:01:00.0 Off | N/A |
| N/A 50C P8 N/A / N/A | 9MiB / 1878MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
出現(xiàn)這個就成功了。文章來源地址http://www.zghlxwxcb.cn/news/detail-421659.html
到了這里,關(guān)于Ubuntu NVIDIA-Docker安裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!