色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用NVIDIA Docker部署GPU服務(wù)器應(yīng)用程序

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-27 15:06 ? 次閱讀

在過去的幾年里,使用容器來大規(guī)模部署數(shù)據(jù)中心應(yīng)用程序的數(shù)量急劇增加。原因很簡單:容器封裝了應(yīng)用程序的依賴項(xiàng),以提供可重復(fù)和可靠的應(yīng)用程序和服務(wù)執(zhí)行,而無需整個(gè)虛擬機(jī)的開銷。如果您曾經(jīng)花了一天的時(shí)間為一個(gè)科學(xué)或 深度學(xué)習(xí) 應(yīng)用程序提供一個(gè)包含大量軟件包的服務(wù)器,或者已經(jīng)花費(fèi)數(shù)周的時(shí)間來確保您的應(yīng)用程序可以在多個(gè) linux 環(huán)境中構(gòu)建和部署,那么 Docker 容器非常值得您花費(fèi)時(shí)間。

圖 1 : Docker 容器封裝了應(yīng)用程序的依賴項(xiàng),以提供可重復(fù)和可靠的執(zhí)行。 NVIDIA Docker 插件支持在任何 Linux GPU 服務(wù)器上部署 GPU – 加速應(yīng)用程序,并支持 NVIDIA Docker 。

在 NVIDIA ,我們以各種方式使用容器,包括開發(fā)、測試、基準(zhǔn)測試,當(dāng)然還有生產(chǎn)中的容器,作為通過 NVIDIA DGX-1 的云管理軟件部署深度學(xué)習(xí)框架的機(jī)制。 Docker 改變了我們管理工作流程的方式。使用 Docker ,我們可以在工作站上開發(fā)和原型化 GPU 應(yīng)用程序,然后在任何支持 GPU 容器的地方發(fā)布和運(yùn)行這些應(yīng)用程序。

在本文中,我們將介紹 Docker 容器;解釋 NVIDIA Docker 插件的好處;通過構(gòu)建和部署一個(gè)簡單的 CUDA 應(yīng)用程序的示例;最后演示如何使用 NVIDIA Docker 運(yùn)行當(dāng)今最流行的深度學(xué)習(xí)應(yīng)用程序和框架,包括 DIGITS 、 Caffe 和 TensorFlow

上周在 DockerCon 2016 年 上, Felix 和 Jonathan 做了一個(gè)演講“使用 Docker 實(shí)現(xiàn) GPU – 加速應(yīng)用”。這是幻燈片。

[slideshare id=63346193&doc=146387dockercon16-160622172714]

Docker 簡介

Docker 容器是一種將 Linux 應(yīng)用程序與其所有庫、數(shù)據(jù)文件和環(huán)境變量捆綁在一起的機(jī)制,以便在運(yùn)行的任何 Linux 系統(tǒng)上以及在同一主機(jī)上的實(shí)例之間,執(zhí)行環(huán)境始終是相同的。 Docker 容器僅為用戶模式,因此來自容器的所有內(nèi)核調(diào)用都由主機(jī)系統(tǒng)內(nèi)核處理。 在它的網(wǎng)站上 , Docker 這樣描述容器:

Docker 容器將一個(gè)軟件包在一個(gè)完整的文件系統(tǒng)中,該文件系統(tǒng)包含運(yùn)行所需的一切:代碼、運(yùn)行時(shí)、系統(tǒng)工具、系統(tǒng)庫——任何可以安裝在服務(wù)器上的東西。這保證了軟件無論其環(huán)境如何,都將始終運(yùn)行相同的程序。

區(qū)分容器和基于 hypervisor 的虛擬機(jī)( vm )很重要。 vm 允許操作系統(tǒng)的多個(gè)副本,甚至多個(gè)不同的操作系統(tǒng)共享一臺(tái)機(jī)器。每個(gè)虛擬機(jī)可以承載和運(yùn)行多個(gè)應(yīng)用程序。相比之下,容器被設(shè)計(jì)成虛擬化單個(gè)應(yīng)用程序,并且部署在主機(jī)上的所有容器共享一個(gè)操作系統(tǒng)內(nèi)核,如圖 2 所示。通常,容器運(yùn)行速度更快,以裸機(jī)性能運(yùn)行應(yīng)用程序,并且更易于管理,因?yàn)檫M(jìn)行操作系統(tǒng)內(nèi)核調(diào)用沒有額外的開銷。

圖 2 :雖然 vm 封裝了整個(gè)操作系統(tǒng)和任何應(yīng)用程序,但容器封裝了單個(gè)應(yīng)用程序及其依賴項(xiàng),以便進(jìn)行可移植部署,但在容器之間共享相同的主機(jī)操作系統(tǒng)。

Docker 提供了硬件和軟件封裝,允許多個(gè)容器同時(shí)在同一個(gè)系統(tǒng)上運(yùn)行,每個(gè)容器都有自己的資源集( CPU 、內(nèi)存等)和它們自己的專用依賴集(庫版本、環(huán)境變量等)。 Docker 還提供了可移植的 Linux 部署: Docker 容器可以在任何內(nèi)核為 3 。 10 或更高版本的 Linux 系統(tǒng)上運(yùn)行。自 2014 年以來,所有主要的 Linux 發(fā)行版都支持 Docker 。封裝和可移植部署對(duì)于創(chuàng)建和測試應(yīng)用程序的開發(fā)人員以及在數(shù)據(jù)中心運(yùn)行應(yīng)用程序的操作人員都很有價(jià)值。

Docker 提供了許多更重要的功能。

Docker 強(qiáng)大的命令行工具“ Docker build ”,使用“ Dockerfile ”中提供的描述,從源代碼和二進(jìn)制文件創(chuàng)建 Docker 映像。

Docker 的組件架構(gòu)允許一個(gè)容器映像用作其他容器的基礎(chǔ)。

Docker 提供容器的自動(dòng)版本控制和標(biāo)簽,優(yōu)化了組裝和部署。 Docker 映像由版本化的層組合而成,因此只需要下載服務(wù)器上缺少的層。

Docker Hub 是一項(xiàng)服務(wù),它可以方便地公開或私下共享 Docker 圖像。

容器可以限制在一個(gè)系統(tǒng)上有限的一組資源(例如一個(gè) CPU 內(nèi)核和 1GB 內(nèi)存)。

Docker 提供了一個(gè) 分層文件系統(tǒng) ,它可以節(jié)省磁盤空間,并構(gòu)成可擴(kuò)展容器的基礎(chǔ)。

為什么是 Docker ?

Docker 容器與平臺(tái)無關(guān),但也與硬件無關(guān)。當(dāng)使用特殊的硬件,如 NVIDIA GPUs 時(shí),這就產(chǎn)生了一個(gè)問題,這些硬件需要內(nèi)核模塊和用戶級(jí)庫來操作。因此, Docker 本機(jī)不支持容器中的 NVIDIA GPUs 。

解決這個(gè)問題的早期解決方案之一是在容器中完全安裝 NVIDIA 驅(qū)動(dòng)程序,并在啟動(dòng)時(shí)映射到與 NVIDIA GPUs (例如 /dev/nvidia0 )對(duì)應(yīng)的字符設(shè)備中。此解決方案很脆弱,因?yàn)橹鳈C(jī)驅(qū)動(dòng)程序的版本必須與容器中安裝的驅(qū)動(dòng)程序版本完全匹配。這一要求大大降低了這些早期容器的可移植性,破壞了 Docker 更重要的特性之一。

為了使 Docker 映像能夠利用 NVIDIA GPUs 實(shí)現(xiàn)可移植性,我們開發(fā)了 nvidia-docker ,這是一個(gè)托管在 Github 上的開源項(xiàng)目,它提供了基于 GPU 的可移植容器所需的兩個(gè)關(guān)鍵組件:

與驅(qū)動(dòng)程序無關(guān)的 CUDA 圖像;以及

Docker 命令行包裝器,在啟動(dòng)時(shí)將驅(qū)動(dòng)程序和 GPUs (字符設(shè)備)的用戶模式組件裝入容器。

nvidia-docker 本質(zhì)上是圍繞 docker 命令的包裝器,它透明地為容器提供了在 GPU 上執(zhí)行代碼所需的組件。只有在使用 nvidia-docker run 來執(zhí)行使用 GPUs 的容器時(shí)才是絕對(duì)必要的。但為了簡單起見,在本文中,我們將其用于所有 Docker 命令。

安裝 Docker 和 NVIDIA Docker

在我們開始構(gòu)建集裝箱化的 GPU 應(yīng)用程序之前,讓我們先確保您已經(jīng)安裝了必備軟件并能正常工作。您需要:

您系統(tǒng)的最新 NVIDIA drivers 。

碼頭工人。您可以按照 此處為安裝說明 操作。

` NVIDIA -docker `您可以按照 此處為安裝說明 操作。

為了幫助安裝,我們創(chuàng)建了一個(gè) 執(zhí)行 docker 和 NVIDIA -docker 安裝的可靠角色 。 Ansible 是一個(gè)自動(dòng)化機(jī)器配置管理和應(yīng)用程序部署的工具。

要測試您是否準(zhǔn)備就緒,請運(yùn)行以下命令。您應(yīng)該會(huì)看到與所示內(nèi)容類似的輸出。

要測試您是否準(zhǔn)備就緒,請運(yùn)行以下命令。您應(yīng)該會(huì)看到與所示內(nèi)容類似的輸出。

ryan@titanx:~$ nvidia-docker run --rm hello-world

Using default tag: latest

latest: Pulling from library/hello-world

a9d36faac0fe: Pull complete

Digest: sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619

Status: Downloaded newer image for hello-world:latest



Hello from Docker.

This message shows that your installation appears to be working correctly.



[... simplified output ...]

現(xiàn)在一切都正常了,讓我們開始在容器中構(gòu)建一個(gè)簡單的 GPU 應(yīng)用程序。

構(gòu)建集裝箱化 GPU 應(yīng)用程序

為了突出 Docker 和我們的插件的特性,我將在容器中從 CUDA 工具箱示例構(gòu)建 deviceQuery 應(yīng)用程序。此三步方法可以應(yīng)用于任何 CUDA 示例,也可以應(yīng)用于您最喜歡的應(yīng)用程序,只需稍作修改。

在容器中設(shè)置和探索開發(fā)環(huán)境。

在容器中構(gòu)建應(yīng)用程序。

在多個(gè)環(huán)境中部署容器。

發(fā)展環(huán)境

相當(dāng)于安裝 CUDA 開發(fā)庫的 Docker 命令如下:

nvidia-docker pull nvidia/cuda

這個(gè)命令從 DockerHub 獲取最新版本的nvidia/cuda映像, DockerHub 是一個(gè)用于容器映像的云存儲(chǔ)服務(wù)。可以使用docker run在這個(gè)容器中執(zhí)行命令。下面是在我們剛剛提取的容器中對(duì)nvcc --version的調(diào)用。

ryan@titanx:~$ nvidia-docker run --rm -ti nvidia/cuda nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver

Copyright (c) 2005-2015 NVIDIA Corporation

Built on Tue_Aug_11_14:27:32_CDT_2015

Cuda compilation tools, release 7.5, V7.5.17

如果需要 CUDA 6 .5 或 7.0 ,可以指定 圖像的標(biāo)記 。 Ubuntu 和 CentOS 可用的 CUDA 圖像列表可以在 NVIDIA -docker 維基 上找到。下面是一個(gè)使用 CUDA 7 。 0 的類似示例。

ryan@titanx:~$ nvidia-docker run --rm -ti nvidia/cuda:7.0 nvcc --version

Unable to find image 'nvidia/cuda:7.0' locally

7.0: Pulling from nvidia/cuda

6c953ac5d795: Already exists

[ … simplified layers -- ubuntu base image … ]

68bad08eb200: Pull complete

[ … simplified layers -- cuda 7.0 toolkit … ]



Status: Downloaded newer image for nvidia/cuda:7.0

nvcc: NVIDIA (R) Cuda compiler driver

Copyright (c) 2005-2015 NVIDIA Corporation

Built on Mon_Feb_16_22:59:02_CST_2015

Cuda compilation tools, release 7.0, V7.0.27

由于系統(tǒng)上本地只有 nvidia/cuda:7.5 映像,所以上面的 docker run 命令將 pull 和 run 操作合并在一起。您會(huì)注意到, nvidia/cuda:7.0 圖像的拉動(dòng)比 7 。 5 圖像的拉動(dòng)要快。這是因?yàn)閮蓚€(gè)容器映像共享相同的基礎(chǔ) ubuntu14 。 04 映像,該映像已經(jīng)存在于主機(jī)上。 Docker 緩存并重用圖像層,因此只下載 CUDA 7 。 0 工具包所需的新層。這一點(diǎn)很重要: Docker 鏡像是逐層構(gòu)建的,可以與多個(gè)鏡像共享,節(jié)省主機(jī)上的磁盤空間(以及部署時(shí)間)。 Docker 映像的這種可擴(kuò)展性是一個(gè)強(qiáng)大的特性,我們將在本文后面討論。(了解更多 Docker 的分層文件系統(tǒng) )。

最后,您可以通過運(yùn)行一個(gè)執(zhí)行 bash shell 的容器來探索開發(fā)映像。

nvidia-docker run --rm -ti nvidia/cuda:7.5 bash

在這個(gè)沙盒環(huán)境中盡情玩耍吧。您可以通過 apt 安裝軟件包或檢查 /usr/local/cuda 中的 CUDA 庫,但請注意,退出( ctrl + d 或 exit 命令)時(shí),對(duì)正在運(yùn)行的容器所做的任何更改都將丟失。

這種非持久性實(shí)際上是 Docker 的一個(gè)特性。 Docker 容器的每個(gè)實(shí)例都從映像定義的相同初始狀態(tài)開始。在下一節(jié)中,我們將研究一種擴(kuò)展和向圖像添加新內(nèi)容的機(jī)制。

構(gòu)建應(yīng)用程序

讓我們在容器中構(gòu)建 deviceQuery 應(yīng)用程序,方法是用應(yīng)用程序的層擴(kuò)展 CUDA 映像。一種用于定義層的機(jī)制是 Dockerfile 。 Dockerfile 就像一個(gè)藍(lán)圖,文件中的每一條指令都會(huì)給圖像添加一個(gè)新的層。讓我們看看 deviceQuery 應(yīng)用程序的 Dockerfile 。

# FROM defines the base image

FROM nvidia/cuda:7.5



# RUN executes a shell command

# You can chain multiple commands together with &&

# A \ is used to split long lines to help with readability

# This particular instruction installs the source files

# for deviceQuery by installing the CUDA samples via apt

RUN apt-get update && apt-get install -y --no-install-recommends \

        cuda-samples-$CUDA_PKG_VERSION && \

    rm -rf /var/lib/apt/lists/*



# set the working directory

WORKDIR /usr/local/cuda/samples/1_Utilities/deviceQuery



RUN make



# CMD defines the default command to be run in the container

# CMD is overridden by supplying a command + arguments to

# `docker run`, e.g. `nvcc --version` or `bash`

CMD ./deviceQuery

有關(guān)可用Dockerfile指令的完整列表,請參閱碼頭工人

在只有 Dockerfile 的文件夾中運(yùn)行以下docker build命令,從 Dockerfile 藍(lán)圖構(gòu)建應(yīng)用程序的容器映像。

nvidia-docker build -t device-query .

這個(gè)命令生成一個(gè)名為 device-query 的 docker 容器映像,它繼承了 CUDA 7 。 5 開發(fā)映像的所有層。

運(yùn)行集裝箱化 CUDA 應(yīng)用程序

我們現(xiàn)在準(zhǔn)備在 GPU 上執(zhí)行 device-query 容器。默認(rèn)情況下, nvidia-docker 將主機(jī)上的所有 GPUs 映射到容器中。

ryan@titanx:~$ nvidia-docker run --rm -ti device-query

./deviceQuery Starting...



 CUDA Device Query (Runtime API) version (CUDART static linking)



Detected 2 CUDA Capable device(s)



Device 0: "GeForce GTX TITAN X"

  CUDA Driver Version / Runtime Version          8.0 / 7.5

  CUDA Capability Major/Minor version number:    5.2

  Total amount of global memory:                 12287 MBytes (12883345408 bytes)

  (24) Multiprocessors, (128) CUDA Cores/MP:     3072 CUDA Cores

[... simplified output …]



Device 1: "GeForce GTX TITAN X"

  CUDA Driver Version / Runtime Version          8.0 / 7.5

  CUDA Capability Major/Minor version number:    5.2

  Total amount of global memory:                 12288 MBytes (12884705280 bytes)

  (24) Multiprocessors, (128) CUDA Cores/MP:     3072 CUDA Cores

[... simplified output …]



> Peer access from GeForce GTX TITAN X (GPU0) -> GeForce GTX TITAN X (GPU1) : Yes

> Peer access from GeForce GTX TITAN X (GPU1) -> GeForce GTX TITAN X (GPU0) : Yes



deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0,

CUDA Runtime Version = 7.5, NumDevs = 2,

Device0 = GeForce GTX TITAN X,

Device1 = GeForce GTX TITAN X

Result = PASS

nvidia-docker還通過NV_GPU環(huán)境變量提供資源隔離功能。下面的示例在 GPU 1 上運(yùn)行device-query容器。

ryan@titanx:~$ NV_GPU=1 nvidia-docker run --rm -ti device-query

./deviceQuery Starting...



 CUDA Device Query (Runtime API) version (CUDART static linking)



Detected 1 CUDA Capable device(s)



Device 0: "GeForce GTX TITAN X"

  CUDA Driver Version / Runtime Version          8.0 / 7.5

  CUDA Capability Major/Minor version number:    5.2

  Total amount of global memory:                 12288 MBytes (12884705280 bytes)

  (24) Multiprocessors, (128) CUDA Cores/MP:     3072 CUDA Cores



[... simplified output …]



deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0,

CUDA Runtime Version = 7.5, NumDevs = 1,

Device0 = GeForce GTX TITAN X

Result = PASS

因?yàn)槲覀冎粚?GPU 1 映射到容器中, deviceQuery 應(yīng)用程序只能看到并報(bào)告一個(gè) GPU 。資源隔離允許您指定允許您的容器化應(yīng)用程序使用哪個(gè) GPUs 。為獲得最佳性能,請確保在選擇 GPUs 的子集時(shí)考慮到 PCI 樹的拓?fù)浣Y(jié)構(gòu)。

集裝箱 GPU

在我們目前的例子中,我們在一個(gè)有兩個(gè) GPUs NVIDIA X Titan 的工作站上構(gòu)建并運(yùn)行 device-query 。現(xiàn)在,讓我們在 DGX-1 服務(wù)器上部署該容器。部署容器是將容器映像從構(gòu)建位置移動(dòng)到運(yùn)行位置的過程。部署容器的多種方法之一是 碼頭樞紐 ,這是一種云服務(wù),用于承載容器映像,類似于 Github 托管 git 存儲(chǔ)庫的方式。我們用來構(gòu)建 device-query 的 nvidia/cuda 映像由 Docker Hub 托管。

在將 device-query 推送到 DockerHub 之前,我們需要用 DockerHub 用戶名/帳戶對(duì)其進(jìn)行標(biāo)記。

ryan@titanx:~$ nvidia-docker tag device-query ryanolson/device-query

現(xiàn)在將標(biāo)記的圖像推送到 Docker Hub 很簡單。

ryan@titanx:~/docker/blog-post$ nvidia-docker push ryanolson/device-query

The push refers to a repository [docker.io/ryanolson/device-query]

35f4e4c58e9f: Pushed

170db279f3a6: Pushed

3f6d94182a7e: Mounted from nvidia/cuda

[ … simplifed multiple ‘from nvidia/cuda’ layers … ]

對(duì)于使用 Docker Hub 或其他容器托管存儲(chǔ)庫的替代方法,請查看 docker save 和 docker load 命令。

我們推送到 Docker Hub 的 device-query 映像現(xiàn)在可供世界上任何支持 Docker 的服務(wù)器使用。為了在我實(shí)驗(yàn)室的 DGX-1 上部署 device-query ,我只需拉取并運(yùn)行映像。這個(gè)例子使用了 CUDA 8 。 0 候選版本,現(xiàn)在您可以通過加入 NVIDIA 加速計(jì)算開發(fā)人員計(jì)劃 來訪問它。

lab@dgx-1-07:~$ nvidia-docker run --rm -ti ryanolson/device-query

Using default tag: latest

latest: Pulling from ryanolson/device-query

6c953ac5d795: Already exists

[ … simplified multiple ‘a(chǎn)lready exists’ layers … ]

1cc994928295: Pull complete

a9e6b6393938: Pull complete

Digest: sha256:0b42703a0785cf5243151b8cba7cc181a6c20a3c945a718ce712476541fe4d70

Status: Downloaded newer image for ryanolson/device-query:latest



./deviceQuery Starting...



 CUDA Device Query (Runtime API) version (CUDART static linking)



Detected 8 CUDA Capable device(s)



Device 0: "Tesla P100-SXM2-16GB"

  CUDA Driver Version / Runtime Version          8.0 / 7.5

  CUDA Capability Major/Minor version number:    6.0

  Total amount of global memory:                 16281 MBytes (17071669248 bytes)

  (56) Multiprocessors, (64) CUDA Cores/MP:     3584 CUDA Cores



[... simplified output … ]



Device 7: "Tesla P100-SXM2-16GB"

  CUDA Driver Version / Runtime Version          8.0 / 7.5

  CUDA Capability Major/Minor version number:    6.0

  Total amount of global memory:                 16281 MBytes (17071669248 bytes)

  (56) Multiprocessors, (64) CUDA Cores/MP:     3584 CUDA Cores



[ … simplified output … ]



deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0,

CUDA Runtime Version = 7.5, NumDevs = 8,

Device0 = Tesla P100-SXM2-16GB,

Device1 = Tesla P100-SXM2-16GB,

Device2 = Tesla P100-SXM2-16GB,

Device3 = Tesla P100-SXM2-16GB,

Device4 = Tesla P100-SXM2-16GB,

Device5 = Tesla P100-SXM2-16GB,

Device6 = Tesla P100-SXM2-16GB,

Device7 = Tesla P100-SXM2-16GB

Result = PASS

Docker for Deep Learning 和 HPC

既然您已經(jīng)了解了構(gòu)建和運(yùn)行一個(gè)簡單的 CUDA 應(yīng)用程序是多么容易,那么運(yùn)行更復(fù)雜的應(yīng)用程序(如 DIGITS 或 Caffe )有多困難?如果我告訴你這就像一個(gè)命令那么簡單呢?

nvidia-docker run --name digits --rm -ti -p 8000:34448 nvidia/digits

這個(gè)命令啟動(dòng) nvidia/digits 容器,并將運(yùn)行 DIGITS web 服務(wù)的容器中的 34448 端口映射到主機(jī)上的端口 8000 。

如果您在閱讀本文的同一臺(tái)機(jī)器上運(yùn)行該命令,那么現(xiàn)在嘗試打開 http://localhost:8000 。如果在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行 nvidia-docker 命令,則需要訪問該計(jì)算機(jī)上的端口 8000 。如果可以直接訪問遠(yuǎn)程服務(wù)器,只需將 localhost 替換為遠(yuǎn)程服務(wù)器的主機(jī)名或 IP 地址。

只需一個(gè)命令,就可以啟動(dòng)并運(yùn)行 NVIDIA 的數(shù)字平臺(tái),并且可以從瀏覽器訪問,如圖 3 所示。

圖 3 這個(gè)屏幕截圖顯示了一個(gè)本地 web 瀏覽器連接到遠(yuǎn)程主機(jī)上的容器中運(yùn)行的數(shù)字,使用 ssh 隧道進(jìn)行轉(zhuǎn)發(fā)本地主機(jī): 8000 到運(yùn)行容器的遠(yuǎn)程主機(jī)上的端口 8000 。(點(diǎn)擊查看更大的屏幕截圖。)

這就是為什么我們喜歡 NVIDIA 的 Docker 。作為 DIGITS 等開源軟件的開發(fā)人員,我們希望像您這樣的用戶能夠以最小的努力使用我們最新的軟件。

而且我們并不是唯一的一家:谷歌和微軟分別使用我們的 CUDA 圖片作為 TensorFlow 和 CNTK 的基礎(chǔ)圖片。 Google 提供 TensorFlow 的預(yù)構(gòu)建 Docker 映像 通過他們的公共容器存儲(chǔ)庫,而微軟 為 CNTK 提供 Dockerfile 則可以自己構(gòu)建。

讓我們看看啟動(dòng)一個(gè)更復(fù)雜的應(yīng)用程序有多容易,比如 TensorFlow ,它需要 NumPy 、 Bazel 和無數(shù)其他依賴項(xiàng)。是的,只是一條線!您甚至不需要下載和構(gòu)建 TensorFlow ,您可以直接使用 Docker Hub 上提供的圖像。

nvidia-docker run --rm -ti tensorflow/tensorflow:r0.9-devel-gpu

運(yùn)行此命令后,您可以通過運(yùn)行其包含的 MNIST 訓(xùn)練腳本來測試 TensorFlow :

nvidia-docker run --rm -ti tensorflow/tensorflow:r0.9-devel-gpu

root@ab5f46ba17d2:~# python -m tensorflow.models.image.mnist.convolutional

[tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locally

[tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcudnn.so locally

[tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locally

[tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so locally

[tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locally

Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.

Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.

Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.

Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.

[...]

今天就開始使用 NVIDIA Docker

在這篇文章中,我們通過擴(kuò)展 nvidia/cuda 映像并在多個(gè)不同的平臺(tái)上部署我們的新容器,介紹了在容器中構(gòu)建 GPU 應(yīng)用程序的基本知識(shí)。當(dāng)您將您的 GPU 應(yīng)用程序容器化時(shí),請使用下面的注釋與我們聯(lián)系,以便我們可以將您的項(xiàng)目添加到 使用 nvidia-docker 的項(xiàng)目列表 。

關(guān)于作者

Ryan Olson 是 NVIDIA 全球現(xiàn)場組織的解決方案架構(gòu)師。他的主要職責(zé)包括支持深度學(xué)習(xí)和高性能計(jì)算應(yīng)用程序。

Jonathan Calmels 是 NVIDIA 的系統(tǒng)軟件工程師。他的工作主要集中在 GPU 數(shù)據(jù)中心軟件和用于深度學(xué)習(xí)的超大規(guī)模解決方案。喬納森擁有計(jì)算機(jī)科學(xué)與工程碩士學(xué)位。

Felix Abecasis 是 NVIDIA 的系統(tǒng)軟件工程師,致力于使 GPU 應(yīng)用程序更易于在數(shù)據(jù)中心部署和管理。 GPU 專注于機(jī)器學(xué)習(xí)支持框架。他擁有法國學(xué)校 EPITA 的計(jì)算機(jī)科學(xué)碩士學(xué)位。

Phil Rogers 是 NVIDIA 計(jì)算服務(wù)器產(chǎn)品的首席軟件架構(gòu)師。 Phil 現(xiàn)在主要關(guān)注的是 DGX-1 的系統(tǒng)軟件,以及 GPU ——加速容器,用于將應(yīng)用程序傳送到該服務(wù)器。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    4994

    瀏覽量

    103149
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4743

    瀏覽量

    128987
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    影響服務(wù)器GPU租用價(jià)格的因素

    服務(wù)器GPU租用的價(jià)格受多種因素影響,包括GPU型號(hào)和性能、租用時(shí)長、帶寬和流量、地理位置、供應(yīng)和需求以及服務(wù)質(zhì)量等。下面,AI部落小編為您詳細(xì)介紹。
    的頭像 發(fā)表于 12-30 10:38 ?88次閱讀

    GPU加速云服務(wù)器怎么用的

    GPU加速云服務(wù)器是將GPU硬件與云計(jì)算服務(wù)相結(jié)合,通過云服務(wù)提供商的平臺(tái),用戶可以根據(jù)需求靈活租用帶有
    的頭像 發(fā)表于 12-26 11:58 ?71次閱讀

    GPU服務(wù)器租用費(fèi)用貴嗎

    在云計(jì)算領(lǐng)域,GPU服務(wù)器因其強(qiáng)大的計(jì)算能力和圖形處理能力,被廣泛應(yīng)用于多個(gè)領(lǐng)域。然而,對(duì)于許多企業(yè)和個(gè)人開發(fā)者來說,GPU服務(wù)器的租用費(fèi)用仍然是一個(gè)重要的考慮因素。那么,
    的頭像 發(fā)表于 12-19 17:55 ?158次閱讀

    GPU服務(wù)器租用多少錢

    GPU服務(wù)器的租用價(jià)格受多種因素影響,包括服務(wù)提供商、GPU型號(hào)和性能、實(shí)例規(guī)格、計(jì)費(fèi)模式、促銷活動(dòng)以及地域差異等。下面,AI部落小編為您整理GP
    的頭像 發(fā)表于 12-09 10:50 ?157次閱讀

    docker-compose配置文件內(nèi)容詳解以及常用命令介紹

    需要的所有服務(wù)(例如:Web服務(wù)器、數(shù)據(jù)庫、緩存等)并輕松管理它們。 Docker Compose 使用的三個(gè)步驟: 使用 Dockerfile 定義應(yīng)用程序的環(huán)境
    的頭像 發(fā)表于 12-02 09:29 ?523次閱讀
    <b class='flag-5'>docker</b>-compose配置文件內(nèi)容詳解以及常用命令介紹

    租用GPU服務(wù)器一般多少錢

    租用GPU服務(wù)器的費(fèi)用受到多種因素的影響,包括服務(wù)器配置、租用時(shí)長、服務(wù)提供商以及市場供需狀況等。下面,AI部落小編帶您了解租用GPU
    的頭像 發(fā)表于 11-25 10:28 ?210次閱讀

    GPU服務(wù)器和傳統(tǒng)的服務(wù)器有什么區(qū)別

    GPU服務(wù)器與傳統(tǒng)的服務(wù)器在多個(gè)方面存在顯著差異,主機(jī)推薦小編為您整理發(fā)布GPU服務(wù)器和傳統(tǒng)的服務(wù)器
    的頭像 發(fā)表于 11-07 11:05 ?216次閱讀

    GPU服務(wù)器AI網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)

    眾所周知,在大型模型訓(xùn)練中,通常采用每臺(tái)服務(wù)器配備多個(gè)GPU的集群架構(gòu)。在上一篇文章《高性能GPU服務(wù)器AI網(wǎng)絡(luò)架構(gòu)(上篇)》中,我們對(duì)GPU
    的頭像 發(fā)表于 11-05 16:20 ?385次閱讀
    <b class='flag-5'>GPU</b><b class='flag-5'>服務(wù)器</b>AI網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)

    GPU高性能服務(wù)器配置

    GPU高性能服務(wù)器作為提升計(jì)算速度和效率的關(guān)鍵設(shè)備,在各大應(yīng)用場景中發(fā)揮著越來越重要的作用。在此,petacloud.ai小編為你介紹GPU高性能服務(wù)器的配置要點(diǎn)。
    的頭像 發(fā)表于 10-21 10:42 ?226次閱讀

    美國大帶寬云服務(wù)器怎么用?完整教程來了

    首先選擇一家靠譜的服務(wù)商,其次在服務(wù)商平臺(tái)上創(chuàng)建云服務(wù)器實(shí)例,第三,進(jìn)行遠(yuǎn)程連接,并配置云服務(wù)器,第五步部署
    的頭像 發(fā)表于 09-20 11:00 ?448次閱讀

    gpu服務(wù)器與cpu服務(wù)器的區(qū)別對(duì)比,終于知道怎么選了!

    gpu服務(wù)器與cpu服務(wù)器的區(qū)別主要體現(xiàn)在架構(gòu)設(shè)計(jì)、性能特點(diǎn)、能耗效率、應(yīng)用場景、市場定位等方面,在以上幾個(gè)方面均存在顯著差異。CPU服務(wù)器更適合數(shù)據(jù)庫管理和企業(yè)應(yīng)用,而
    的頭像 發(fā)表于 08-01 11:41 ?513次閱讀

    算力服務(wù)器為什么選擇GPU

    隨著人工智能技術(shù)的快速普及,算力需求日益增長。智算中心的服務(wù)器作為支撐大規(guī)模數(shù)據(jù)處理和計(jì)算的核心設(shè)備,其性能優(yōu)化顯得尤為關(guān)鍵。而GPU服務(wù)器也進(jìn)入了大眾的視野,成為高性能計(jì)算的首選。那么,為什么算力
    的頭像 發(fā)表于 07-25 08:28 ?656次閱讀
    算力<b class='flag-5'>服務(wù)器</b>為什么選擇<b class='flag-5'>GPU</b>

    應(yīng)用程序中的服務(wù)器錯(cuò)誤怎么解決?

    在使用應(yīng)用程序時(shí),可能會(huì)遇到服務(wù)器錯(cuò)誤的問題。這種錯(cuò)誤通常會(huì)導(dǎo)致應(yīng)用程序無法正常運(yùn)行 ,給用戶帶來不便。下面將介紹應(yīng)用程序中的服務(wù)器錯(cuò)誤及其
    的頭像 發(fā)表于 03-12 15:13 ?6275次閱讀

    gpu服務(wù)器是干什么的 gpu服務(wù)器與cpu服務(wù)器的區(qū)別有哪些

    gpu服務(wù)器是干什么的 gpu服務(wù)器與cpu服務(wù)器的區(qū)別 GPU
    的頭像 發(fā)表于 01-30 15:31 ?886次閱讀

    超微gpu服務(wù)器評(píng)測

    GPU服務(wù)器進(jìn)行評(píng)測。 一、超微GPU服務(wù)器概述 超微GPU服務(wù)器是一種基于超微
    的頭像 發(fā)表于 01-10 10:37 ?1410次閱讀
    主站蜘蛛池模板: 风月宝鉴之淫乱英雄传 电影| 国产午夜亚洲精品理论片八戒| 亚洲伊人久久综合影院2021| 无限资源在线看影院免费观看 | 亚州日韩精品AV片无码中文| 污污又黄又爽免费的网站 | 日韩AV爽爽爽久久久久久| 让人爽到湿的小黄书| 日本护士在线观看| 色偷偷av男人的天堂| 无码AV精品一区二区三区| 亚洲综合香蕉在线视频| 影音先锋男人资源813.| 999久久免费高清热精品| 啊灬啊灬啊灬快高潮视频| 高清日本片免费观看| 九九热精品免费观看| 秘密教学93话恩爱久等了免费| 欧美亚洲国产手机在线有码| 日本免费一区二区三区四区五六区| 亚洲AV午夜精品麻豆AV| 一本道久久综合久久88| 边做边爱播放3免费观看| 国产精品亚欧美一区二区三区| 黄子佼81岁父亲现状曝光| 久久久WWW免费人成精品| 名女躁b久久天天躁| 善良的小峓子2在钱免费中文字| 一一本之道高清视频在线观看中文字幕| 97人人超碰国产精品最新蜜芽| 国产精品亚洲精品久久品| 嫩草影院在线观看精品| 手机在线观看mv网址| 亚洲一区在线视频观看| 超碰97人人做人人爱网站| 久久国产36精品色熟妇| 人妻中文字幕无码系列| 永久免费在线观看视频| 国产精品永久免费视频| 欧美性XXXXX极品娇小| 在线免费观看国产精品|