在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用NVIDIA Docker在容器運行時啟用GPU

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-27 14:53 ? 次閱讀

NVIDIA 使用容器來開發、測試、基準測試和部署深度學習( DL )框架和 HPC 應用程序。大約兩年前,我們用 NVIDIA -Docker 大規模地寫了 構建和部署 GPU 容器 。從那時起, NVIDIA -Docker 被下載了近 200 萬次。許多客戶使用 NVIDIA -Docker 將 NVIDIA 集裝箱化并運行 GPU 加速的工作負載。

NVIDIA 通過 NVIDIA GPU 云( NGC )提供 GPU 加速容器,用于 DGX 系統、公共云基礎設施,甚至是帶有 GPUs 的本地工作站。 NVIDIA -Docker 是這些計劃的關鍵基礎技術。

除了 Docker 之外,容器技術被用于 DL 和 HPC 工作負載的不斷發展的用例集,這使得我們從根本上重新思考我們現有的 NVIDIA -Docker 架構。我們的主要目標不僅追求不同容器運行時的可擴展性,而且還追求容器編排系統的可擴展性。

這里介紹的 NVIDIA 容器運行時是我們的下一代 GPU 感知容器運行時。它與 Docker 使用的 Open Containers Initiative ( OCI )規范和其他流行的容器技術兼容。

您將了解到 NVIDIA 容器運行時組件,以及如何擴展它以支持多個容器技術。讓我們檢查一下新運行時的體系結構和優點,展示一些新特性,并介紹一些使用 Docker 和 LXC 部署 GPU 加速應用程序的示例。

NVIDIA 集裝箱運行時間

NVIDIA 在 2016 年設計了 NVIDIA -Docker ,以實現 Docker 映像中的可移植性,利用 NVIDIA GPUs 。它允許與驅動程序無關的 CUDA 映像,并提供一個 Docker 命令行包裝器,在啟動時將驅動程序的用戶模式組件和 GPU 設備文件裝入容器中。

在 NVIDIA -Docker 的生命周期中,我們意識到架構缺乏靈活性,原因如下:

與 Docker 的緊密集成不允許將來支持其他容器技術,如 LXC 、 CRI-O 和其他運行時

我們希望利用 Docker 生態系統中的其他工具–例如 撰寫 (用于管理由多個容器組成的應用程序)

在 Kubernetes 和 Swarm 等編排器中支持 GPUs 作為一級資源

改進對 GPUs 的容器運行時支持,特別是自動檢測用戶級 NVIDIA 驅動程序庫, NVIDIA 內核模塊、設備排序、兼容性檢查和 GPU 功能,如圖形、視頻加速

因此,重新設計的 NVIDIA -Docker 將對 GPUs 的核心運行時支持轉移到一個名為 libnvidia-container 的庫中。該庫依賴于 Linux 內核原語,并且相對于更高的容器運行時層是不可知的。這使得 GPU 支持很容易擴展到不同的容器運行時,如 Docker 、 LXC 和 CRI-O 。該庫包括一個命令行實用程序,還提供了一個 API ,以便將來集成到其他運行時中。我們構建的用于集成到各種運行時的庫、工具和層統稱為 NVIDIA 容器運行時。

在接下來的幾節中,您將了解到 Docker 和 LXC 的集成。

Docker 支持

在深入研究 NVIDIA 容器運行時與 Docker 的集成之前,讓我們簡單看看 Docker 平臺是如何演變的。

自 2015 年以來, Docker 一直在捐贈其容器平臺的關鍵組件,首先是開放容器倡議( OCI )規范和一個名為 runc 的輕量級容器運行時規范的實現。 2016 年末, Docker 還捐贈了一個管理容器生命周期和包裝 OCI / runc 的守護程序 containerd 。 containerd 守護進程處理圖像的傳輸、容器的執行(使用 runc )、存儲和網絡管理。它被設計成嵌入到更大的系統中,比如 Docker 。關于這個項目的更多信息可以在官方網站 網站 上找到。

圖 1 顯示了 libnvidia-container 如何集成到 Docker 中,特別是在 GPU 層。為了在 Docker 中啟用 nvidia-container-runtime-hook 容器,我們使用了一個名為 nvidia-container-runtime-hook 到 runc 的定制 OCI 預啟動鉤子(有關鉤子的更多信息可以在 OCI 運行規范 中找到)。在 runc 中添加預啟動鉤子需要我們用 Docker 注冊一個新的與 OCI 兼容的運行時(使用– runtime 選項 )。在創建容器時,預啟動鉤子檢查容器是否啟用了 GPU (使用環境變量),并使用容器運行庫向容器公開 NVIDIA GPUs 。

poYBAGJo6kKAK0L5AACC69sij18846.png

圖 1 NVIDIA 容器運行時與 Docker 的集成

runc 層的集成還允許靈活地支持其他 OCI 運行時,如 CRI-O 。 containerd 的 1 。 1 版增加了對 Kubernetes 中容器運行時接口( CRI )的支持;上周 Kubernetes 宣布 通過 CRI 插件實現了 containerd 集成的普遍可用性。 NVIDIA 運行時的新架構可以很容易地支持 Kubernetes 運行時的任何一種選擇。這種靈活性非常重要,因為我們與社區密切合作,使 Kubernetes 的 GPU 支持 成為一流的。

環境變量

NVIDIA 容器運行時使用容器映像中的環境變量指定 GPU 加速容器。

NVIDIA _可視設備:可在容器內訪問 GPUs 的控件。默認情況下,容器可以訪問所有 GPUs 。

NVIDIA _驅動程序功能:控制哪些驅動程序特性(例如計算、圖形)暴露到容器中。

NVIDIA U 需要 u *:邏輯表達式,用于定義容器支持的配置上的約束(例如最小 CUDA 、驅動程序或計算能力)。

如果沒有檢測到環境變量(在 Docker 命令行或圖像中),則使用默認的 runc 。您可以在 NVIDIA 容器運行時 文檔 中找到有關這些環境變量的更多信息。這些環境變量已經在 NVIDIA 的 官方的 CUDA 容器中設置。

安裝

您的系統必須滿足以下先決條件,才能在 Docker 中開始使用 NVIDIA 容器運行時。

支持 您的發行版的 Docker 版本。跟隨 Docker 的官方 說明書 。

最新的 NVIDIA 驅動程序。使用 程序包管理器 安裝 cuda-drivers 包,或者使用驅動程序下載 網站 中的安裝程序。請注意,使用 cuda-drivers 包可能無法在 Ubuntu 18.04 LTS 系統上運行。

要開始使用帶有 Docker 的 NVIDIA 容器運行時,可以使用 NVIDIA -docker2 安裝程序包,也可以手動使用 設置 運行時和 Docker 引擎。 nvidia-docker2 軟件包包括一個自定義的 daemon.json 文件,用于將 NVIDIA 運行時注冊為 Docker 的默認運行時,以及一個向后兼容 NVIDIA -Docker 1. 0 的腳本。

如果安裝了 NVIDIA -docker 1.0 ,則需要在安裝 NVIDIA 運行時之前刪除它和任何現有的 GPU 容器。請注意,以下安裝步驟適用于 Debian 發行版及其衍生產品。

$ docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f $ sudo apt-get purge -y nvidia-docker

現在,讓我們添加包存儲庫并刷新包索引。

$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add - $ 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 $ sudo apt-get update

然后使用nvidia-docker2包安裝各個組件并重新加載 Docker 守護程序配置。

$ sudo apt-get install -y nvidia-docker2 $ sudo pkill -SIGHUP dockerd

運行以下命令行實用程序( CLI )以驗證 NVIDIA 驅動程序和運行時是否已正確安裝在您的系統上(作為安裝程序包的一部分提供)。運行時 CLI 提供有關系統中檢測到的驅動程序和設備的信息。在本例中,運行庫已正確檢測并枚舉了系統中的 4 個 NVIDIA Tesla v100 。

$ sudo nvidia-container-cli--load-kmods info
NVRM version: 396.26
CUDA version: 9.2 Device Index: 0
Device Minor: 2
Model: Tesla V100-SXM2-16GB
GPU UUID: GPU-e354d47d-0b3e-4128-74bf-f1583d34af0e
Bus Location: 00000000:00:1b.0
Architecture: 7.0 Device Index: 1
Device Minor: 0
Model: Tesla V100-SXM2-16GB
GPU UUID: GPU-716346f4-da29-392a-c4ee-b9840ec2f2e9
Bus Location: 00000000:00:1c.0
Architecture: 7.0 Device Index: 2
Device Minor: 3
Model: Tesla V100-SXM2-16GB
GPU UUID: GPU-9676587f-b418-ee6b-15ac-38470e1278fb
Bus Location: 00000000:00:1d.0
Architecture: 7.0 Device Index: 3
Device Minor: 2
Model: Tesla V100-SXM2-16GB
GPU UUID: GPU-2370332b-9181-d6f5-1f24-59d66fc7a87e
Bus Location: 00000000:00:1e.0
Architecture: 7.0

nvidia-container-cli 檢測到的 CUDA 版本驗證主機上安裝的 NVIDIA 驅動程序是否足以運行基于特定 CUDA 版本的容器。如果存在不兼容,運行時將不啟動容器。有關 CUDA 兼容性和最低驅動程序要求的更多信息,請參見 在這里 。

現在,讓我們嘗試用 Docker 運行一個 GPU 容器。這個例子提取 Docker Hub 存儲庫 上可用的 NVIDIA CUDA 容器,并在容器內運行 nvidia-smi 命令。

$ sudo docker run --rm --runtime=nvidia -ti nvidia/cuda
root@d6c41b66c3b4:/# nvidia-smi
Sun May 20 22:06:13 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 396.26 Driver Version: 396.26 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla V100-SXM2... On | 00000000:00:1B.0 Off | Off |
| N/A 41C P0 34W / 300W | 0MiB / 16160MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla V100-SXM2... On | 00000000:00:1C.0 Off | Off |
| N/A 39C P0 35W / 300W | 0MiB / 16160MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 2 Tesla V100-SXM2... On | 00000000:00:1D.0 Off | Off |
| N/A 39C P0 38W / 300W | 0MiB / 16160MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 3 Tesla V100-SXM2... On | 00000000:00:1E.0 Off | 0 |
| N/A 42C P0 38W / 300W | 0MiB / 16160MiB | 0% Default |
+-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+

運行 GPU 集裝箱

現在讓我們看一些運行更復雜的 GPU 應用程序的例子。 NVIDIA 為 深度學習 和 NGC 注冊 上的 HPC 提供了多種預制容器。

深度學習框架容器

這個例子使用 NGC 提供的 PyTorch 深度學習框架容器來訓練一個 deep 神經網絡 。您需要打開一個免費的 NGC 帳戶才能訪問最新的深度學習框架和 HPC 容器。 NGC 文件 概述了開始所需的步驟。

本例使用了 NVIDIA_VISIBLE_DEVICES 變量,僅向容器公開兩個 GPUs 。

$ sudo docker run -it --runtime=nvidia --shm-size=1g -e NVIDIA_VISIBLE_DEVICES=0,1 --rm nvcr.io/nvidia/pytorch:18.05-py3 Copyright (c) 2006 Idiap Research Institute (Samy Bengio)
Copyright (c) 2001-2004 Idiap Research Institute (Ronan Collobert, Samy Bengio, Johnny Mariethoz) All rights reserved. Various files include modifications (c) NVIDIA CORPORATION. All rights reserved.
NVIDIA modifications are covered by the license terms that apply to the underlying project or file.

在容器中運行nvidia-smi命令,驗證只有兩個 GPUs 可見。

root@45cebefa1480:/workspace# nvidia-smi
Mon May 28 07:15:39 2018 +-----------------------------------------------------------------------------+
| NVIDIA-SMI 396.26 Driver Version: 396.26 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla V100-SXM2... On | 00000000:00:1B.0 Off | 0 |
| N/A 39C P0 36W / 300W | 0MiB / 16160MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla V100-SXM2... On | 00000000:00:1C.0 Off | 0 |
| N/A 38C P0 35W / 300W | 0MiB / 16160MiB | 0% Default |
+-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+ root@45cebefa1480:/workspace#

嘗試運行容器附帶的 MNIST 培訓示例:

root@45cebefa1480:/workspace/examples/mnist# python main.py
Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
Downloading http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz
Downloading http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz
Downloading http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz
Processing...
Done!
main.py:68: UserWarning: Implicit dimension choice for log_softmax has been deprecated. Change the call to include dim=X as an argument.
return F.log_softmax(x)
main.py:90: UserWarning: invalid index of a 0-dim tensor. This will be an error in PyTorch 0.5. Use tensor.item() to convert a 0-dim tensor to a Python number
100. * batch_idx / len(train_loader), loss.data[0]))
Train Epoch: 1 [0/60000 (0%)] Loss: 2.373651
Train Epoch: 1 [640/60000 (1%)] Loss: 2.310517
Train Epoch: 1 [1280/60000 (2%)] Loss: 2.281828
Train Epoch: 1 [1920/60000 (3%)] Loss: 2.315808
Train Epoch: 1 [2560/60000 (4%)] Loss: 2.235439
Train Epoch: 1 [3200/60000 (5%)] Loss: 2.234249
Train Epoch: 1 [3840/60000 (6%)] Loss: 2.226109
Train Epoch: 1 [4480/60000 (7%)] Loss: 2.228646
Train Epoch: 1 [5120/60000 (9%)] Loss: 2.132811

OpenGL 圖形容器

如前幾節所述, NVIDIA 容器運行時現在為運行 OpenGL 和 EGL 應用程序提供了支持。下一個例子使用 OpenGL 構建并運行 多體問題 模擬。使用 NVIDIA 吉特實驗室 上提供的示例 Dockerfile 來構建容器。

復制 Dockerfile 并構建 多體問題 示例

$ docker build -t nbody .

允許 root 用戶訪問正在運行的 X 服務器

$ xhost +si:localuser:root

運行[VZX129 連續樣本

$ sudo docker run --runtime=nvidia -ti --rm -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix nbody

圖 2 用 Docker 運行 N-bodyCUDA / OpenGL 示例

編寫 Docker

最后一個例子使用 Docker Compose 展示了使用 NVIDIA 容器運行時啟動多個 GPU 容器是多么容易。這個例子將啟動 3 個容器—— OpenGL 的 多體問題 示例、一個 EGL 示例( 釘 來自 Mesa )和一個運行 NVIDIA -smi 公司 命令的簡單容器。

安裝 Docker Compose

$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

從 NVIDIA Gitlab 克隆可用的樣本

$ git clone https://gitlab.com/nvidia/samples.git

寫一個docker-compose.yml來指定三個容器和環境。使用您選擇的文本編輯器復制以下內容:

version: '2.3' services: nbody: build: samples/cudagl/ubuntu16.04/nbody runtime: nvidia environment: - DISPLAY volumes: - /tmp/.X11-unix:/tmp/.X11-unix peglgears: build: samples/opengl/ubuntu16.04/peglgears runtime: nvidia nvsmi: image: ubuntu:18.04 runtime: nvidia environment: - NVIDIA_VISIBLE_DEVICES=all command: nvidia-smi

允許 root 用戶訪問正在運行的 X 服務器(對于多體問題示例)

$ xhost +si:localuser:root

最后,啟動容器

$ sudo docker-compose up

您的控制臺輸出可能如下所示

Building nbody
Step 1/6 : FROM nvidia/cudagl:9.0-base-ubuntu16.04
---> b6055709073e
Step 2/6 : ENV NVIDIA_DRIVER_CAPABILITIES ${NVIDIA_DRIVER_CAPABILITIES},display
---> Using cache
---> ebd1c003a592
Step 3/6 : RUN apt-get update && apt-get install -y --no-install-recommends cuda-samples-$CUDA_PKG_VERSION && rm -rf /var/lib/apt/lists/*
---> Using cache
---> 1987dc2c1bbc
Step 4/6 : WORKDIR /usr/local/cuda/samples/5_Simulations/nbody
---> Using cache
---> de7af4fbb03e
Step 5/6 : RUN make
---> Using cache
---> a6bcfb9a4958
Step 6/6 : CMD ./nbody
---> Using cache
---> 9c11a1e93ef2
Successfully built 9c11a1e93ef2
Successfully tagged ubuntu_nbody:latest
WARNING: Image for service nbody was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Starting ubuntu_nbody_1 ... done
Starting ubuntu_nvsmi_1 ... done
Starting ubuntu_peglgears_1 ... done
Attaching to ubuntu_nvsmi_1, ubuntu_peglgears_1, ubuntu_nbody_1
ubuntu_nvsmi_1 exited with code 0
peglgears_1 | peglgears: EGL version = 1.4
peglgears_1 | peglgears: EGL_VENDOR = NVIDIA
peglgears_1 | 246404 frames in 5.0 seconds = 49280.703 FPS
ubuntu_peglgears_1 exited with code 0

支持帶 LXC 的 GPU 容器

Linux 容器(或 LXC 公司 )是一個操作系統級的虛擬化工具,用于創建和管理系統或應用程序容器。 Docker 的早期版本使用 LXC 作為底層容器運行時技術。 LXC 提供了一套高級的工具來管理容器(例如模板、存儲選項、直通設備、 autostart 等),并為用戶提供了大量的控制。在參考文獻中,我們在本文末尾的參考文獻中提供了來自 Canonical 和 Cisco 的工程師關于 LXC 的 GTC 2018 演講的鏈接。

LXC 支持非特權容器(使用 Linux 內核中的用戶名稱空間特性)。在 HPC 環境中部署容器的上下文中,這是一個巨大的優勢,在這種環境中,用戶可能沒有運行容器的管理權限。 LXC 還支持 Docker 圖像的導入,下面我們將詳細介紹一個示例。

NVIDIA 繼續與 LXC 社區密切合作,開發上游補丁,以添加 GPU 支持。 4 月初發布的 lxc3 。 0 。 0 包括使用 NVIDIA 運行時對 GPUs 的支持。有關更多信息和演示,請參閱 Canonical 的新聞 郵遞 。

如圖所示, VX134 是如何將容器集成到 VX12 中的。

圖 3 NVIDIA 容器運行時與 LXC 的集成

讓我們看看用 LXC 運行一個簡單的 CUDA 容器。這個例子展示了如何使用默認的 LXC OCI 模板 從 Docker Hub 上可用的 OCI 映像(使用諸如 Skopo 和 擦除 )創建應用程序容器。

首先,讓我們為工具設置存儲庫:

$ sudo add-apt-repository ppa:ubuntu-lxc/lxc-stable
$ sudo apt-add-repository ppa:projectatomic/ppa

安裝 LXC 和相關工具,如 skopeo :

$ apt-get install libpam-cgfs lxc-utils lxcfs lxc-templates skopeo skopeo-containers jq libnvidia-container-tools

肥皂套裝:

$ sudo curl -fsSL -o /usr/local/bin/umoci https://github.com/openSUSE/umoci/releases/download/v0.4.0/umoci.amd64
$ sudo chmod ugo+rx /usr/local/bin/umoci

為每個用戶設置用戶、組 ID 和虛擬以太網接口。請參閱 LXC文檔中有關創建非特權容器的內容。為了方便起見,這里提供了示例腳本。

$ sudo curl -fsSL -o /usr/local/bin/generate-lxc-perms https://gist.githubusercontent.com/3XX0/ef77403389ffa1ca85d4625878706c7d/raw/4f0d2c02d82236f74cf668c42ee72ab06158d1d2/generate-lxc-perms.sh
$ sudo chmod ugo+rx /usr/local/bin/generate-lxc-perms $ sudo curl -fsSL -o /usr/local/bin/generate-lxc-config https://gist.githubusercontent.com/3XX0/b3e2bd829d43104cd120f4258c4eeca9/raw/890dc720e1c3ad418f96ba8529eae028f01cc994/generate-lxc-config.sh
$ sudo chmod ugo+rx /usr/local/bin/generate-lxc-config

現在,為每個容器設置 GPU 支持:

$ sudo tee /usr/share/lxc/config/common.conf.d/nvidia.conf <<< 'lxc.hook.mount = /usr/share/lxc/hooks/nvidia'
$ sudo chmod ugo+r /usr/share/lxc/config/common.conf.d/nvidia.conf

作為一次性設置,請將權限和配置設置為常規用戶:

$ sudo generate-lxc-perms
$ generate-lxc-config

使用lxc-create從 NVIDIA 的 Docker Hub 存儲庫上的 CUDA 映像下載并創建一個 CUDA 應用程序容器。

$ lxc-create -t oci cuda -- -u docker://nvidia/cuda
Getting image source signatures
Copying blob sha256:297061f60c367c17cfd016c97a8cb24f5308db2c913def0f85d7a6848c0a17fa
41.03 MB / 41.03 MB [======================================================] 0s
Copying blob sha256:e9ccef17b516e916aa8abe7817876211000c27150b908bdffcdeeba938cd004c
850 B / 850 B [============================================================] 0s
Copying blob sha256:dbc33716854d9e2ef2de9769422f498f5320ffa41cb79336e7a88fbb6c3ef844
621 B / 621 B [============================================================] 0s
Copying blob sha256:8fe36b178d25214195af42254bc7d5d64a269f654ef8801bbeb0b6a70a618353
851 B / 851 B [============================================================] 0s
Copying blob sha256:686596545a94a0f0bf822e442cfd28fbd8a769f28e5f4018d7c24576dc6c3aac
169 B / 169 B [============================================================] 0s
Copying blob sha256:aa76f513fc89f79bec0efef655267642eba8deac019f4f3b48d2cc34c917d853
6.65 MB / 6.65 MB [========================================================] 0s
Copying blob sha256:c92f47f1bcde5f85cde0d7e0d9e0caba6b1c9fcc4300ff3e5f151ff267865fb9
397.29 KB / 397.29 KB [====================================================] 0s
Copying blob sha256:172daef71cc32a96c15d978fb01c34e43f33f05d8015816817cc7d4466546935
182 B / 182 B [============================================================] 0s
Copying blob sha256:e282ce84267da687f11d354cdcc39e2caf014617e30f9fb13f7711c7a93fb414
449.41 MB / 449.41 MB [====================================================] 8s
Copying blob sha256:91cebab434dc455c4a9faad8894711a79329ed61cc3c08322285ef20599b4c5e
379.37 MB / 552.87 MB [=====================================>-----------------]
Writing manifest to image destination
Storing signatures
Unpacking the rootfs ? rootless{dev/agpgart} creating empty file in place of device 10:175 ? rootless{dev/audio} creating empty file in place of device 14:4 ? rootless{dev/audio1} creating empty file in place of device 14:20

作為普通用戶,我們可以在容器內運行nvidia-smi

$ lxc-execute cuda root@cuda:/# nvidia-smi
Mon May 28 21:48:57 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 396.26 Driver Version: 396.26 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla V100-SXM2... On | 00000000:00:1B.0 Off | 0 |
| N/A 40C P0 36W / 300W | 0MiB / 16160MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla V100-SXM2... On | 00000000:00:1C.0 Off | 0 |
| N/A 39C P0 35W / 300W | 0MiB / 16160MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 2 Tesla V100-SXM2... On | 00000000:00:1D.0 Off | 0 |
| N/A 39C P0 38W / 300W | 0MiB / 16160MiB | 1% Default |
+-------------------------------+----------------------+----------------------+
| 3 Tesla V100-SXM2... On | 00000000:00:1E.0 Off | 0 |
| N/A 40C P0 38W / 300W | 0MiB / 16160MiB | 1% Default |
+-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+

結論

本文介紹了 NVIDIA 容器運行時,以及如何將其輕松集成到容器運行時和編排生態系統中,以啟用 GPU 支持。現在就開始用它來構建和運行 GPU 容器吧!安裝程序包可用于 品種 的 Linux 發行版。 NVIDIA -Docker 1 。 0 已被棄用,不再被積極支持。我們強烈建議用戶在使用 Docker 時升級到新的 NVIDIA 運行時。未來的路線圖包括許多令人興奮的特性,包括對 Vulkan 、 CUDA MPS 、集裝箱驅動程序等的支持。

關于作者

Jonathan Calmels 是 NVIDIA 的系統軟件工程師。他的工作主要集中在 GPU 數據中心軟件和用于深度學習的超大規模解決方案。喬納森擁有計算機科學與工程碩士學位。

Felix Abecassis 是 NVIDIA 的系統軟件工程師,致力于使 GPU 應用程序更易于在數據中心部署和管理。 GPU 專注于機器學習支持框架。他擁有法國學校 EPITA 的計算機科學碩士學位。

Pramod Ramarao 是 NVIDIA 加速計算的產品經理。他領導 CUDA 平臺和數據中心軟件的產品管理,包括容器技術。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    5021

    瀏覽量

    103252
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4753

    瀏覽量

    129057
收藏 人收藏

    評論

    相關推薦

    《CST Studio Suite 2024 GPU加速計算指南》

    的各個方面,包括硬件支持、操作系統支持、許可證、GPU計算的啟用、NVIDIA和AMD GPU的詳細信息以及相關的使用指南和故障排除等內容。 1. 硬件支持 -
    發表于 12-16 14:25

    Docker運行環境安裝

    、發布、測試和部署,可以幫助開發人員將最新版本代碼應用到生產環境中。 Docker可以安裝在多個平臺中,包括Mac、Windows和Linux。不過,生產環境還是推薦Linux上運行,以下以主流的Linux操作系統(CentO
    的頭像 發表于 10-29 11:28 ?234次閱讀

    影響逆變器電池狀態的原因,整體運行時

    逆變器的使用需要了解影響電池性能和整體運行時間的因素。讓我們深入探討最大化電源設置的關鍵考慮因素。逆變器效率:逆變器的效率至關重要。當逆變器將電池的DC電能轉換為交流
    的頭像 發表于 10-18 10:41 ?322次閱讀
    影響逆變器電池狀態的原因,整體<b class='flag-5'>運行時</b>間

    C2000?MCU的運行時堆棧大小監測

    電子發燒友網站提供《C2000?MCU的運行時堆棧大小監測.pdf》資料免費下載
    發表于 09-11 09:30 ?0次下載
    C2000?MCU的<b class='flag-5'>運行時</b>堆棧大小監測

    ARM平臺實現Docker容器技術

    Docker的鏡像提供了除內核外完整的運行時環境,確保環境一致性,從而不會在出現“這段代碼我機器上沒問題”這類問題。 持續支付和部署:對開發和運維人員來說,最希望就是一次創建和部署,可以在任意的地方
    發表于 07-25 14:36

    ARM平臺實現Docker容器技術

    Docker的鏡像提供了除內核外完整的運行時環境,確保環境一致性,從而不會在出現“這段代碼我機器上沒問題”這類問題。持續支付和部署:對開發和運維人員來說,最希望就是一次創建和部署,可以在任意的地方
    發表于 07-17 11:05

    三菱plc累計運行時間怎么編程

    具有重要意義。本文將詳細介紹如何使用三菱PLC編程實現累計運行時間的統計功能。 一、概述 累計運行時間是指設備或系統一定時間內的總運行時間。
    的頭像 發表于 06-20 11:31 ?2369次閱讀

    變頻器帶動電機運行時發抖的原因及處理方法

    變頻器作為現代工業控制領域的重要設備,廣泛應用于電機調速控制中。然而,實際應用中,有時會遇到變頻器帶動電機運行時產生抖動的問題。這種抖動不僅影響電機的正常運行,還可能對生產效率和設備壽命造成
    的頭像 發表于 05-31 14:43 ?5800次閱讀

    DMA運行時,其他的數據轉移會不會因DMA占用導致這些東西延時處理?

    DMA運行時占用系統總線,所以不經過CPU,速度較快,但有一個問題我不清楚,DMA運行時,其他的數據轉移例如引腳賦值、讀引腳、數組內的數據處理等經過CPU的數據傳輸會不會因DMA占用導致這些東西延時處理?
    發表于 05-15 07:45

    STM8SIAR軟件仿真Simulator怎么查看運行時間?

    STM8S IAR軟件仿真Simulator怎么查看運行時間?某些芯片通信時,會要求延時5us,10us,150ms等,這些延時不需要太精確,只要大概就好,但怎么Simulato
    發表于 05-09 07:48

    Docker容器技術的安裝和使用

    通過Docker,開發人員可以更容易地構建、交付和運行應用程序,同時確保應用程序的一致性和可移植性。它也使得應用程序的部署更加靈活和高效,因為它可以快速地啟動、停止和擴展容器,而不會影響其他
    發表于 04-16 11:24 ?336次閱讀
    <b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技術的安裝和使用

    stm32cubeIDE代碼運行時間如何查看?

    stm32cubeIDE 代碼運行時間,如何查看?就如 keil 調試時候那樣,可以測試代碼的運行時間。但是stm32cubeIDE 中,一直沒有找到這個功能,不知道哪位高人可以提示下在哪里查看的?
    發表于 04-16 08:10

    使用STM32CubeMX生成的keil文件,keil中運行時報錯的原因?

    使用STM32CubeMX過程中,生成的keil文件。 file:///C:/Users/Zhanggp/AppData/Local/Temp/ksohtml11808/wps1.jpgkeil 中運行時出現了報錯.
    發表于 03-26 07:10

    如何在運行時擦除/編程UCB?

    試著相關的 UCB 上使用 DFLASH 算法,然后我用磚砌了我的單位。 是否有專門針對如何在運行時擦除/編程 UCB?
    發表于 01-22 07:18

    變壓器空載運行時功率因數很低是什么原因?

    變壓器空載運行時功率因數很低是什么原因? 變壓器空載運行時功率因數很低的原因有多種可能,以下將逐一介紹這些可能性。 1. 磁化電流造成的功率因數低:當變壓器空載運行時,變壓器的鐵芯需要維持磁通的運動
    的頭像 發表于 01-19 13:58 ?4659次閱讀
    主站蜘蛛池模板: xxxx人妖| 藏经阁在线观看| 视色4setv.com| 日韩一级片免费| 丁香婷婷成人| 男人的天堂在线视频| 亚洲国产成人va在线观看| 69一级毛片| 巨尻在线观看| 人操人摸| 色综合天天综合网国产人| 日韩精品一卡二卡三卡四卡2021| 成人国产精品2021| 手机看片国产免费久久网| 一级高清| 国产成视频| 午夜影视体验区| 永久手机看片福利盒子| 国产高清免费在线| 九九精品久久久久久噜噜| 欧美日韩一区二区三区视频在线观看| 四虎影在永久地址在线观看| 亚洲综合精品香蕉久久网97| avtt亚洲一区中文字幕| 欧美一区二区三区不卡免费观看| 在线中文字幕一区| 丁香五月情| sis色中色| 中文在线天堂网| aaa一区二区三区| 四虎国产在线| 三级电影在线观看视频| 色一欲一性一乱一区二区三区| 欧美一级片观看| 美女视频毛片| 久久久成人影院| 久久婷婷国产综合精品| 爱爱网站免费| 久久久久久久国产| 国产成人毛片视频不卡在线| 干干干日日日|