Nvidia DGX 和 Red Hat OpenShift 會產生什麼火花?

一日江湖行走,路上撿到一個問題:Nvidia DGX 要怎麼跟透過容器化調度應用呀? 然後我就開始了一連串的研究探索…

先來個名詞解釋

  • NVIDIA Tesla V100 Tensor

    • 白話文: 一張超高階 GPU 卡

      NVIDIA® Tesla® V100 是最先進的資料中心 GPU,專為加快人工智慧、HPC 和繪圖運算速度而設計。採用 NVIDIA Volta 架構,提供 16 GB 和 32 GB 設定,單一 GPU 即可展現媲美 100 個 CPU 的效能。資料科學家、研究人員和工程師可以省下配置記憶體使用最佳化的時間,投入更多精力設計下一個人工智慧的重大突破。

  • NVIDIA DGX-1

    • 白話文: 一台 x86 Server,內可包含至多 8 張超高階 GPU 卡, GPU Memory 可達 256G
  • NVIDIA GPU Cloud (NGC)

    • 白話文: 一堆各式各樣 Nvidia 出品的容器,請洽 https://ngc.nvidia.com/catalog/landing

      NVIDIA GPU Cloud (NGC) 容器 registry 提供一系列完備的 GPU 加速人工智慧容器,這些容器經過最佳化、測試,並可立即透過本機和雲端上支援的 NVIDIA GPU 執行。TensorFlow、PyTorch、MXNet、NVIDIA TensorRT™ 等 NGC 人工智慧容器,透過 NVIDIA 人工智慧的強大功能,賦予你挑戰極困難專案所需的效能與彈性。這能幫助資料科學家和研究人員迅速建立、訓練和部署人工智慧模型,以滿足與時俱進的需求

  • Red Hat OpenShift Container Platform
    • 白話文: 一座容器平台
    • 紅帽企業級容器平台,可依據不同的環境需求,調整基礎架構,同時於平台之上也能搭載各式各樣的容器服務,如 NGC,目前長期支援版本為 v3.11

所以雙方到底會是什麼火花?

這影片 Red Hat OpenShift, NVIDIA DGX and NGC Container Integration - Youtube 充分表達了如何使用 OpenShift 部署 NGC 的容器服務,進而控制 DGX-1 的運算資源

  1. OpenShift Service Catalog 選取已經定義好的 Container (TensorFlow, PyTorch, MXNet, TensorRT, …) 要多少 GPU 來做運算
  2. 從 OpenShift 已經開起來的 Pod 中,來調度 DGX-1 裡面的資源利用

怎麼做到的?

這份投影片 Deep Learning Inference on Openshift with GPUs 其實介紹蠻詳細的,尤其是下圖

Summary

那個影片後來發現其實在去年的 SuperComputing 2018 (SC18) 的會議上,就有被拿出來 Demo 了,從那之後 Red Hat 跟 Nvidia 在 AI/HPC 上的合作就越來越多了,前者出基礎架構平台,後者出 GPU 跟運算框架,在不久的將來應該還可以看到越來越多 GPU + Container 的使用方式出來,關於更多 NVDIA 的資訊,可以參考 擴充應用程式映像,Nvidia簡化叢集環境與兩大產業容器部署 - iThome 一文

References