全部產品
Search
文件中心

Elastic GPU Service:部署NGC容器環境構建深度學習開發環境

更新時間:Sep 11, 2024

NGC(NVIDIA GPU CLOUD)是NVIDIA開發的一套深度學習生態系統,方便您免費訪問深度學習軟體堆棧,建立適合深度學習的開發環境。本文以搭建TensorFlow深度學習架構為例,為您介紹如何在GPU執行個體上部署NGC環境以實現深度學習開發環境的預先安裝。

背景資訊

  • NGC網站提供了目前主流深度學習架構不同版本的鏡像,例如Caffe、Caffe2、CNTK、MxNet、TensorFlow、Theano、Torch,您可以選擇需要的鏡像部署NGC容器環境。本文以搭建TensorFlow深度學習架構為例。

  • 阿里雲在雲市場鏡像中提供了針對NVIDIA Pascal GPU最佳化的NGC容器鏡像,建立GPU執行個體時選擇NGC容器鏡像,可以簡單快速地部署NGC容器環境,即時訪問最佳化後的深度學習架構,極大程度縮減產品開發以及業務部署時間,實現開發環境的預先安裝;同時該NGC容器鏡像支援調優後的演算法架構,並且阿里雲會對其持續更新。

使用限制

僅以下GPU執行個體規格類型系列支援部署NGC環境:

  • gn5i、gn6v、gn6i、gn6e、gn7i、gn7e、gn7s

  • ebmgn6i、ebmgn6v、ebmgn6e、ebmgn7i、ebmgn7e

更多資訊,請參見GPU計算型

準備工作

說明

在操作本文前,請您提前在NGC網站註冊自己的NGC帳號。

在部署NGC環境前,請提前擷取TensorFlow容器鏡像路徑。

  1. 登入NGC網站

  2. 在搜尋地區輸入TensorFlow後,選擇並單擊TensorFlow

    Tensorflow.jpg

  3. TensorFlow頁面,單擊Tags頁簽,複製對應版本的TensorFlow容器鏡像。

    以下載TensorFlow22.05-tf1-py3鏡像為例,TensorFlow容器鏡像路徑為nvcr.io/nvidia/tensorflow:22.05-tf1-py3,該路徑用於後續在GPU執行個體中下載TensorFlow鏡像時使用。

    TensorFlow路徑.jpg

    重要

    TensorFlow鏡像中的CUDA版本必須與GPU執行個體的驅動版本相匹配,否則會導致部署TensorFlow開發環境時失敗。關於TensorFlow鏡像版本、CUDA版本以及GPU執行個體的驅動版本對應匹配關係,請參見TensorFlow Release Notes

操作步驟

本文以gn7i執行個體為例,為您示範建立GPU執行個體時部署NGC環境的操作步驟。

  1. 建立GPU執行個體。

    具體操作,請參見自訂購買執行個體。主要配置參數說明如下:

    配置參數

    說明

    地區

    請根據GPU執行個體可購買地區,選擇相應地區。

    您可以前往ECS執行個體可購買地區,查看GPU執行個體在各地區的可購情況。

    執行個體

    選擇執行個體規格,本樣本以gn7i為例。

    鏡像

    1. 雲市場鏡像頁簽下,單擊從雲市場擷取更多選擇(含作業系統)

    2. 在彈出的鏡像市場頁面,輸入NVIDIA GPU Cloud Virtual Machine Image並單擊搜尋

    3. 找到對應鏡像後並單擊選擇

    公網IP

    選擇分配公網IPv4地址

    說明

    如果這裡沒有分配公網IP地址,則在GPU執行個體建立成功後,需要綁定EIP地址。具體操作,請參見綁定EIP

    安全性群組

    選擇一個安全性群組。安全性群組裡必須開放TCP 22連接埠。如果您的執行個體需要支援HTTPS或DIGITS 6服務,必須開放TCP 443(用於HTTPS)或TCP 5000(用於DIGITS 6)連接埠。

  2. 選擇以下任一方式遠端連線GPU執行個體。

    串連方式

    操作指引

    Workbench

    通過密碼或密鑰認證登入Linux執行個體

    VNC

    使用VNC登入執行個體

  3. 執行nvidia-smi命令,查看當前GPU相關資訊。

    查看Driver Version515.48.07,該GPU執行個體的驅動版本(515版本或更高版本)與22.05-tf1-py3版本的TensorFlow鏡像中的11.7版本CUDA相匹配。

    nvidia-smi.png

  4. 執行以下命令,下載對應版本的TensorFlow容器鏡像。

    docker pull nvcr.io/nvidia/tensorflow:22.05-tf1-py3
    重要

    下載TensorFlow容器鏡像可能需要較長時間,請您耐心等待。

  5. 執行以下命令,查看下載的TensorFlow容器鏡像資訊。

    docker image ls

    容器鏡像資訊.jpg

  6. 執行以下命令,運行容器完成TensorFlow開發環境的部署。

    docker run --gpus all --rm -it nvcr.io/nvidia/tensorflow:22.05-tf1-py3

    Dingtalk_20240819173529.jpg

  7. 依次執行以下命令,簡單測試TensorFlow。

    python
    import tensorflow as tf
    hello = tf.constant('Hello, TensorFlow!')
    with tf.compat.v1.Session() as sess:
        result = sess.run(hello)
        print(result.decode())
    

    如果TensorFlow正確載入了GPU裝置,會成功返回Hello, TensorFlow!字串,如下圖所示。

    Dingtalk_20240821121930.jpg

  8. 儲存修改後的TensorFlow鏡像。

    1. 在GPU串連頁面,開啟一個新的遠端連線視窗。

    2. 執行以下命令,查詢容器ID(即CONTAINER_ID)。

      docker ps

      Dingtalk_20240821144414.jpg

    3. 執行以下命令,儲存修改後的TensorFlow鏡像。

      # CONTAINER_ID請替換為通過docker ps命令查詢的容器ID,例如f76a5a4347d。
      docker commit   -m "commit docker" CONTAINER_ID  nvcr.io/nvidia/tensorflow:20.01-tf1-py3
      重要

      請您妥善儲存修改後的TensorFlow鏡像,否則會導致下次登入時配置丟失。