自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

巧用Docker快速部署GPU環(huán)境

系統(tǒng) Linux
本質上就是我們要在容器里能看到并且使用宿主機上的顯卡。在這篇文章里我們就介紹一下 Docker 使用 GPU 的環(huán)境搭建。

 

在 Linux 服務器上使用 GPU 跑深度學習的模型很正常不過。如果我們想用 Docker 實現(xiàn)同樣的需求,就需要做些額外的工作。本質上就是我們要在容器里能看到并且使用宿主機上的顯卡。在這篇文章里我們就介紹一下 Docker 使用 GPU 的環(huán)境搭建。

Nvidia 驅動

某些命令以 Ubuntu 作為示例。首先宿主機上必現(xiàn)安裝 Nvidia 驅動。

這里推薦從 Nvidia 官網下載腳本安裝,安裝和卸載都比較方便并且適用于任何 Linux 發(fā)行版,包括 CentOS,Ubuntu 等。NVIDIA Telsa GPU 的 Linux 驅動在安裝過程中需要編譯 kernel module,系統(tǒng)需提前安裝 gcc 和編譯 Linux Kernel Module 所依賴的包,例如 kernel-devel-$(uname -r) 等。

安裝 gcc 和 kernel-dev 

  1. $ sudo apt install gcc kernel-dev -y 

安裝 Nvidia 驅動

  1.  訪問 https://www.nvidia.com/Download/Find.aspx
  2.  選擇對應操作系統(tǒng)和安裝包,并單擊 [SEARCH] 搜尋驅動,選擇要下載的驅動版本

    3.  在宿主機上下載并執(zhí)行對應版本安裝腳本 

  1. $ wget https://www.nvidia.com/content/DriverDownload-March2009/confirmation.php?url=/tesla/450.80.02/NVIDIA-Linux-x86_64-450.80.02.run&lang=us&type=Tesla  
  2. $ 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.  配置環(huán)境變量 

  1. $ echo 'export PATH=/usr/local/cuda/bin:$PATH' | sudo tee /etc/profile.d/cuda.sh   
  2. $ 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 基礎上多實現(xiàn)了 nvidia-container-runime-hook (現(xiàn)在叫 nvidia-container-toolkit),該 hook 是在容器啟動后(Namespace已創(chuàng)建完成),容器自定義命令(Entrypoint)啟動前執(zhí)行。當檢測到 NVIDIA_VISIBLE_DEVICES 環(huán)境變量時,會調用 libnvidia-container 掛載 GPU Device 和 CUDA Driver。如果沒有檢測到 NVIDIA_VISIBLE_DEVICES 就會執(zhí)行默認的 runc。

下面分兩步安裝

    1.  設置 repository 和 GPG key 

  1. distribution=$(. /etc/os-release;echo $ID$VERSION_ID)  
  2. $ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -  
  3. $ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list 

    2.  安裝 

  1. $ sudo apt-get update  
  2. $ sudo apt-get install -y nvidia-docker2  
  3. $ sudo systemctl restart docker 

    3.  驗證

執(zhí)行以下命令: 

  1. $ docker run --rm --gpus all nvidia/cuda:10.2-base nvidia-smi  

如果輸出跟直接在宿主機上執(zhí)行 nvidia-smi 一致則說明安裝成功。如果跑的深度學習模型使用的是 tensorflow 可以在容器里執(zhí)行: 

  1. import tensorflow as tf  
  2. tf.contrib.eager.num_gpus() 

如果輸出了宿主機上的 Nvidia 顯卡數量,則模型能使用到顯卡加速。如果使用的是 pytorch 可以在容器里執(zhí)行: 

  1. import torch  
  2. torch.cuda.is_available() 

如果輸出 True 證明環(huán)境也成功了,可以使用顯卡。

    4.  使用示例

  • 使用所有顯卡 
  1. $ docker run --rm --gpus all nvidia/cuda nvidia-smi   
  2. $ docker run --rm --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=all nvidia/cuda nvidia-smi  
  •  指明使用哪幾張卡 
  1. $ docker run --gpus '"device=1,2"' nvidia/cuda nvidia-smi   
  2. $ docker run --rm --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=1,2 nvidia/cuda nvidia-smi 

到這里在 Docker 下使用 Nvidia 顯卡加速計算的基礎環(huán)境搭建就介紹完了。后續(xù)我們可以繼續(xù)研究一下 K8S 下調度 GPU 的實現(xiàn)。 

 

責任編輯:龐桂玉 來源: 奇妙的Linux世界
相關推薦

2014-12-26 10:06:48

Docker容器代碼部署

2024-10-28 15:40:26

2024-01-04 07:39:53

LinuxCentOS 8Docker

2024-03-26 00:00:01

2021-07-16 05:00:13

Environment開發(fā)生產

2014-12-08 11:17:51

SDNDocker部署Docker

2013-08-30 15:56:57

MySQLMariaDB

2014-09-12 14:50:07

運維Docker

2011-05-03 09:55:27

掃描儀

2015-01-05 14:16:16

DockerFig自動化容器編排

2023-09-26 07:34:24

Docker部署依賴包

2023-04-06 07:18:14

2024-01-10 14:24:32

Docker容器Kafka

2023-05-14 23:30:38

PrestoHadoop函數

2023-11-27 00:18:38

2023-05-29 07:39:49

2023-06-26 00:07:14

2022-06-06 09:02:47

Overlay2BindISO

2024-10-31 15:16:35

2009-08-04 09:32:27

部署Silverlig
點贊
收藏

51CTO技術棧公眾號