您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“怎么用Docker快速部署GPU環境”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“怎么用Docker快速部署GPU環境”這篇文章吧。
在 Linux 服務器上使用 GPU 跑深度學習的模型很正常不過。如果我們想用 Docker 實現同樣的需求,就需要做些額外的工作。本質上就是我們要在容器里能看到并且使用宿主機上的顯卡。在這篇文章里我們就介紹一下 Docker 使用 GPU 的環境搭建。
Nvidia 驅動
某些命令以 Ubuntu 作為示例。首先宿主機上必現安裝 Nvidia 驅動。
這里推薦從 Nvidia 官網下載腳本安裝,安裝和卸載都比較方便并且適用于任何 Linux 發行版,包括 CentOS,Ubuntu 等。NVIDIA Telsa GPU 的 Linux 驅動在安裝過程中需要編譯 kernel module,系統需提前安裝 gcc 和編譯 Linux Kernel Module 所依賴的包,例如 kernel-devel-$(uname -r) 等。
安裝 gcc 和 kernel-dev
$ sudo apt install gcc kernel-dev -y
安裝 Nvidia 驅動
訪問 https://www.nvidia.com/Download/Find.aspx
選擇對應操作系統和安裝包,并單擊 [SEARCH] 搜尋驅動,選擇要下載的驅動版本
3. 在宿主機上下載并執行對應版本安裝腳本
$ wget https://www.nvidia.com/content/DriverDownload-March3009/confirmation.php?url=/tesla/450.80.02/NVIDIA-Linux-x86_64-450.80.02.run&lang=us&type=Tesla $ chmod +x NVIDIA-Linux-x86_64-450.80.02.run && ./NVIDIA-Linux-x86_64-450.80.02.run
4. 驗證
使用 nvidia-smi 命令驗證是否安裝成功,如果輸出類似下圖則驅動安裝成功。
CUDA 驅動
CUDA(Compute Unified Device Architecture)是顯卡廠商 NVIDIA 推出的運算平臺。CUDA™是一種由 NVIDIA 推出的通用并行計算架構,該架構使 GPU 能夠解決復雜的計算問題。它包含了 CUDA 指令集架構(ISA)以及 GPU 內部的并行計算引擎。這里安裝的方式和顯卡驅動安裝類似。
1. 訪問官網下載對應版本安裝包,https://developer.nvidia.com/cuda-toolkit-archive
2. 配置環境變量
$ echo 'export PATH=/usr/local/cuda/bin:$PATH' | sudo tee /etc/profile.d/cuda.sh $ source /etc/profile
nvidia-docker2
Docker 的安裝這里就不展開了,具體查看官方文檔非常詳細。
這里我們就直接介紹安裝 nvidia-docker2.
既然叫 nvidia-docker2 就有 nvidia-docker1 就是它的 1.0 版本目前已經廢棄了,所以注意不要裝錯。
這里先簡單說一下 nvidia-docker2 的原理,nvidia-docker2 的依賴由下幾部分組成.
libnvidia-container
nvidia-container-toolkit
nvidia-container-runtime
nvidia-container-runtime 是在 runc 基礎上多實現了 nvidia-container-runime-hook (現在叫 nvidia-container-toolkit),該 hook 是在容器啟動后(Namespace已創建完成),容器自定義命令(Entrypoint)啟動前執行。當檢測到 NVIDIA_VISIBLE_DEVICES 環境變量時,會調用 libnvidia-container 掛載 GPU Device 和 CUDA Driver。如果沒有檢測到 NVIDIA_VISIBLE_DEVICES 就會執行默認的 runc。
下面分兩步安裝
1. 設置 repository 和 GPG key
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) $ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - $ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
2. 安裝
$ sudo apt-get update $ sudo apt-get install -y nvidia-docker2 $ sudo systemctl restart docker
3. 驗證
執行以下命令:
$ docker run --rm --gpus all nvidia/cuda:10.2-base nvidia-smi
如果輸出跟直接在宿主機上執行 nvidia-smi 一致則說明安裝成功。如果跑的深度學習模型使用的是 tensorflow 可以在容器里執行:
import tensorflow as tf tf.contrib.eager.num_gpus()
如果輸出了宿主機上的 Nvidia 顯卡數量,則模型能使用到顯卡加速。如果使用的是 pytorch 可以在容器里執行:
import torch torch.cuda.is_available()
如果輸出 True 證明環境也成功了,可以使用顯卡。
4. 使用示例
使用所有顯卡
$ docker run --rm --gpus all nvidia/cuda nvidia-smi $ docker run --rm --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=all nvidia/cuda nvidia-smi
指明使用哪幾張卡
$ docker run --gpus '"device=1,2"' nvidia/cuda nvidia-smi $ docker run --rm --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=1,2 nvidia/cuda nvidia-smi
以上是“怎么用Docker快速部署GPU環境”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。