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

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

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

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

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

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

在過(guò)去的幾年里,使用容器來(lái)大規(guī)模部署數(shù)據(jù)中心應(yīng)用程序的數(shù)量急劇增加。原因很簡(jiǎn)單:容器封裝了應(yīng)用程序的依賴項(xiàng),以提供可重復(fù)和可靠的應(yīng)用程序和服務(wù)執(zhí)行,而無(wú)需整個(gè)虛擬機(jī)的開(kāi)銷。如果您曾經(jīng)花了一天的時(shí)間為一個(gè)科學(xué)或 深度學(xué)習(xí) 應(yīng)用程序提供一個(gè)包含大量軟件包的服務(wù)器,或者已經(jīng)花費(fèi)數(shù)周的時(shí)間來(lái)確保您的應(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 ,我們以各種方式使用容器,包括開(kāi)發(fā)、測(cè)試、基準(zhǔn)測(cè)試,當(dāng)然還有生產(chǎn)中的容器,作為通過(guò) NVIDIA DGX-1 的云管理軟件部署深度學(xué)習(xí)框架的機(jī)制。 Docker 改變了我們管理工作流程的方式。使用 Docker ,我們可以在工作站上開(kāi)發(fā)和原型化 GPU 應(yīng)用程序,然后在任何支持 GPU 容器的地方發(fā)布和運(yùn)行這些應(yīng)用程序。

在本文中,我們將介紹 Docker 容器;解釋 NVIDIA Docker 插件的好處;通過(guò)構(gòu)建和部署一個(gè)簡(jiǎn)單的 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 簡(jiǎn)介

Docker 容器是一種將 Linux 應(yīng)用程序與其所有庫(kù)、數(shù)據(jù)文件和環(huán)境變量捆綁在一起的機(jī)制,以便在運(yùn)行的任何 Linux 系統(tǒng)上以及在同一主機(jī)上的實(shí)例之間,執(zhí)行環(huán)境始終是相同的。 Docker 容器僅為用戶模式,因此來(lái)自容器的所有內(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)庫(kù)——任何可以安裝在服務(wù)器上的東西。這保證了軟件無(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)用沒(méi)有額外的開(kāi)銷。

圖 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)存等)和它們自己的專用依賴集(庫(kù)版本、環(huán)境變量等)。 Docker 還提供了可移植的 Linux 部署: Docker 容器可以在任何內(nèi)核為 3 。 10 或更高版本的 Linux 系統(tǒng)上運(yùn)行。自 2014 年以來(lái),所有主要的 Linux 發(fā)行版都支持 Docker 。封裝和可移植部署對(duì)于創(chuàng)建和測(cè)試應(yīng)用程序的開(kāi)發(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ù),它可以方便地公開(kāi)或私下共享 Docker 圖像。

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

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

為什么是 Docker ?

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

解決這個(gè)問(wèn)題的早期解決方案之一是在容器中完全安裝 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)可移植性,我們開(kāi)發(fā)了 nvidia-docker ,這是一個(gè)托管在 Github 上的開(kāi)源項(xiàng)目,它提供了基于 GPU 的可移植容器所需的兩個(gè)關(guān)鍵組件:

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

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

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

安裝 Docker 和 NVIDIA Docker

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

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

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

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

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

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

要測(cè)試您是否準(zhǔn)備就緒,請(qǐng)運(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)在一切都正常了,讓我們開(kāi)始在容器中構(gòu)建一個(gè)簡(jiǎn)單的 GPU 應(yīng)用程序。

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

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

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

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

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

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

相當(dāng)于安裝 CUDA 開(kāi)發(fā)庫(kù)的 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ī)上的磁盤(pán)空間(以及部署時(shí)間)。 Docker 映像的這種可擴(kuò)展性是一個(gè)強(qiáng)大的特性,我們將在本文后面討論。(了解更多 Docker 的分層文件系統(tǒng) )。

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

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

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

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

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

讓我們?cè)谌萜髦袠?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指令的完整列表,請(qǐng)參閱碼頭工人

在只有 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 開(kāi)發(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還通過(guò)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 。為獲得最佳性能,請(qǐng)確保在選擇 GPUs 的子集時(shí)考慮到 PCI 樹(shù)的拓?fù)浣Y(jié)構(gòu)。

集裝箱 GPU

在我們目前的例子中,我們?cè)谝粋€(gè)有兩個(gè) GPUs NVIDIA X Titan 的工作站上構(gòu)建并運(yùn)行 device-query 。現(xiàn)在,讓我們?cè)?DGX-1 服務(wù)器上部署該容器。部署容器是將容器映像從構(gòu)建位置移動(dòng)到運(yùn)行位置的過(guò)程。部署容器的多種方法之一是 碼頭樞紐 ,這是一種云服務(wù),用于承載容器映像,類似于 Github 托管 git 存儲(chǔ)庫(kù)的方式。我們用來(lái)構(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 很簡(jiǎn)單。

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ǔ)庫(kù)的替代方法,請(qǐng)查看 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)在您可以通過(guò)加入 NVIDIA 加速計(jì)算開(kāi)發(fā)人員計(jì)劃 來(lái)訪問(wèn)它。

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è)簡(jiǎn)單的 CUDA 應(yīng)用程序是多么容易,那么運(yùn)行更復(fù)雜的應(yīng)用程序(如 DIGITS 或 Caffe )有多困難?如果我告訴你這就像一個(gè)命令那么簡(jiǎn)單呢?

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)在嘗試打開(kāi) http://localhost:8000 。如果在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行 nvidia-docker 命令,則需要訪問(wèn)該計(jì)算機(jī)上的端口 8000 。如果可以直接訪問(wèn)遠(yuǎn)程服務(wù)器,只需將 localhost 替換為遠(yuǎn)程服務(wù)器的主機(jī)名或 IP 地址。

只需一個(gè)命令,就可以啟動(dòng)并運(yùn)行 NVIDIA 的數(shù)字平臺(tái),并且可以從瀏覽器訪問(wèn),如圖 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 等開(kāi)源軟件的開(kāi)發(fā)人員,我們希望像您這樣的用戶能夠以最小的努力使用我們最新的軟件。

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

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

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

運(yùn)行此命令后,您可以通過(guò)運(yùn)行其包含的 MNIST 訓(xùn)練腳本來(lái)測(cè)試 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.

[...]

今天就開(kāi)始使用 NVIDIA Docker

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

關(guān)于作者

Ryan Olson 是 NVIDIA 全球現(xiàn)場(chǎng)組織的解決方案架構(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í)支持框架。他擁有法國(guó)學(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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5075

    瀏覽量

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

    關(guān)注

    28

    文章

    4768

    瀏覽量

    129334
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    服務(wù)器 Flexus X 實(shí)例,Docker 集成搭建 Grafana 開(kāi)源數(shù)據(jù)可視化平臺(tái)

    的用戶界面,用戶可以輕松創(chuàng)建和自定義動(dòng)態(tài)儀表板,以實(shí)時(shí)展示關(guān)鍵指標(biāo)和數(shù)據(jù)趨勢(shì) 華為云端口放行 ??服務(wù)器放行對(duì)應(yīng)端口 9955 Docker 安裝并配置鏡像加速 1、購(gòu)買華為云 Flexus X 實(shí)例
    的頭像 發(fā)表于 01-13 15:50 ?122次閱讀
    云<b class='flag-5'>服務(wù)器</b> Flexus X 實(shí)例,<b class='flag-5'>Docker</b> 集成搭建 Grafana 開(kāi)源數(shù)據(jù)可視化平臺(tái)

    華為云 Flexus 云服務(wù)器 X 實(shí)例之 openEuler 系統(tǒng)部署 Docker Compose 管理工具 Dockge

    docker-compose.yaml 部署文件時(shí),Dockge 以其精美的設(shè)計(jì)和易用性脫穎而出,成為不可或缺的管理工具。利用華為云 Flexus 云服務(wù)器 X 實(shí)例的強(qiáng)大性能,在 openEuler 系統(tǒng)上
    的頭像 發(fā)表于 01-08 11:41 ?177次閱讀
    華為云 Flexus 云<b class='flag-5'>服務(wù)器</b> X 實(shí)例之 openEuler 系統(tǒng)<b class='flag-5'>部署</b> <b class='flag-5'>Docker</b> Compose 管理工具 Dockge

    基于 Docker 與 Jenkins 實(shí)現(xiàn)自動(dòng)化部署

    前言 重塑自動(dòng)化部署新高度,Docker 攜手 Jenkins,在華為云 Flexus X 云服務(wù)器的加持下,引領(lǐng)持續(xù)集成與部署的新紀(jì)元。Flexus X 以其卓越的性能、靈活的資源配
    的頭像 發(fā)表于 01-07 17:25 ?217次閱讀
    基于 <b class='flag-5'>Docker</b> 與 Jenkins 實(shí)現(xiàn)自動(dòng)化<b class='flag-5'>部署</b>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    在使用應(yīng)用程序時(shí),可能會(huì)遇到服務(wù)器錯(cuò)誤的問(wèn)題。這種錯(cuò)誤通常會(huì)導(dǎo)致應(yīng)用程序無(wú)法正常運(yùn)行 ,給用戶帶來(lái)不便。下面將介紹應(yīng)用程序中的服務(wù)器錯(cuò)誤及其
    的頭像 發(fā)表于 03-12 15:13 ?6507次閱讀
    主站蜘蛛池模板: 快播h动漫网站 | 精品人妻伦一二三区久久AAA片 | 久久有码中文字幕 | 久久精品WWW人人爽人人 | 毛片无码免费无码播放 | 美国色情三级欧美三级纸匠情挑 | 久久一级视频 | 亚洲精品人成电影网 | 最近中文字幕完整版免费高清 | 果冻传媒2021在线观看 | 国产亚洲精品久久久久久禁果TV | 抽插内射高潮呻吟爆乳 | 国产AV无码一二三区视频 | 帝王受PLAY龙椅高肉NP | 三级全黄的视频 | 97视频免费观看2区 97视频免费观看 | 久久热r在线视频精品 | 国产免费69成人精品视频 | 国产精品99久久久久久WWW | 我要干av| 国产传媒18精品免费1区 | 樱桃视频高清免费观看在线播放 | 国产精品18久久久久网站 | 色偷偷超碰97人人澡人人 | 伦理片在线线手机版韩国免费观看 | 男女夜晚在爽视频免费观看 | 国产偷国产偷亚洲高清人乐享 | 最新无码二区日本专区 | 夜色伊甸园 | a级毛片高清免费视频 | 中文字幕亚洲乱码熟女在线萌芽 | 这里只有精品网 | 2020精品极品国产色在线 | 一个人看的HD免费高清视频 | 色综合欧美色综合七久久 | 99久久免费国产精品特黄 | 亚洲高清毛片一区二区 | 好爽胸大好深好多水 | 99久久久国产精品免费调教 | 国产精品嫩草久久久久 | 黑人特黄AA完整性大片 |