一、為什麼需要Nvidia-Docker
Nvidia-Docker是用於GPU加速的Docker容器,可以在容器中使用Nvidia GPU來運行CUDA代碼,這樣就能夠方便地部署和運行深度學習/機器學習任務。
使用Nvidia-Docker的好處如下:
1、避免配置環境帶來的麻煩,例如:在安裝系統依賴庫和Nvidia CUDA driver時與容器中的軟件包版本進行交互。
2、可重複性高。Docker可以讓開發人員沙箱環境在不同的機器/虛擬機上具有相同的環境,便於代碼調試和運行。
3、在不同的系統上可以方便地運行相同的腳本和代碼。
二、Nvidia-Docker安裝步驟
步驟1:檢查系統環境
$ uname -m && cat /etc/*release
確認機器硬件架構(x86_64還是aarch64)和Linux發行版。 Nvidia Docker依賴於Docker Engine1.12或更高版本。如果沒有安裝Docker Engine,請先按照官方文檔安裝。
步驟2:下載nvidia-docker軟件包
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
添加GPG密鑰到APT存儲庫。
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
添加nvidia-docker到存儲庫。
$ sudo apt-get update && sudo apt-get install -y nvidia-docker2
更新存儲庫並安裝nvidia-docker2軟件包。
$ sudo systemctl restart docker
重啟Docker服務以使更改生效。
步驟3:測試Nvidia-Docker是否已正確安裝
$ docker run --gpus all nvidia/cuda:10.0-base nvidia-smi
Nvidia-Docker啟動一個 Nvidia GPU 支持的容器,輸出nvidia-smi的運行結果。如果Nvidia GPU驅動程序啟動,您將看到GPU列表。如果未看到GPU列表,請檢查系統和Nvidia驅動程序設置。Nvidia-Docker的命令必須在具有GPU的主機上運行。
三、如何在Docker容器中使用GPU
使用Nvidia-Docker運行的容器可以自動檢測Nvidia GPUs,並在容器內部映射Nvidia GPU裝置文件。
使用Nvida GPU運行CUDA程序的關鍵是將GPU裝置文件映射到容器內部。為此,首先需要在容器的啟動時添加–gpus選項和顯卡數量。
$ docker run --gpus all nvidia/cuda:10.2-base nvidia-smi
這個命令可以啟動一個Docker容器,並在容器內運行nvida-smi工具,以驗證容器內是否完成了GPU的映射工作。
小結
這篇文章介紹了如何安裝nvidia-docker,並如何在Docker容器內部使用Nvidia-GPU。Nvidia-Docker通過Docker容器在Nvidia GPU上運行計算任務,具有便於部署、可重複性高、在不同的系統上可方便地運行相同的環境等優點。作為一名全能編程開發工程師,熟練掌握和應用Nvidia-Docker這一實用工具無疑是非常有必要的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/271736.html