Triton 與 MIG 兩路並進!Nvidia 讓 K8S 成為 GPU 加速應用大幅成長的關鍵

作者 | 發布日期 2021 年 01 月 25 日 8:45 | 分類 AI 人工智慧 , GPU , 零組件 Telegram share ! follow us in feedly


當我們一談到 Kubernetes(K8S)時,可能會立即聯想到透過 CPU 和記憶體資源叢集的擴充來滿足容器工作負載的需求。但這樣的情境是否也符合 GPU 加速呢? 

自從 K8S 於 2014 年問世以來,Nvidia 似乎就一直在問這個問題。Nvidia GPU 運算軟體平台副總裁 Chris Lamb 表示:「我們與 K8S 的合作由來已久。」他解釋說,Nvidia 在這個領域的工作或多或少已被全球網路規模(webscale)應用程式淹沒了,而 webscale 應用程式一直是 K8S 的主要使用案例。不論如何,Lamb 認為,在 AI 人工智慧工作負載中,GPU 加速的 K8S 叢集具備巨大的潛力,而 Nvidia 長期以來在這個領域居主導地位。

Nvidia 將 K8S 作為自家 Trinton 推論服務平台的基底

「我們實際上在內部將 K8S 用於我們大規模的 AI 訓練上,」他說。「基本上 K8S 會應用在諸如多軌的超級電腦上的高效能批次處理排程上。起初,我們從如何處理 K8S 叢集中的 GPU 加速運算節點開始。」

然而,隨著 K8S 的發展,Lamb 表示,Nvidia 已將其重點轉移到進一步推展 SIG Node,該小組能控制容器 pod(在某節點上運行)與主機資源(由該節點組成)之間的互動。根據 Lamb 的說法,SIG Node 可以確保運行在 K8S 叢集中的容器化工作負載可以有效地處理 GPU 加速的節點。

K8S 並非萬靈丹。Lamb 表示:「K8S 為資源探勘與管理提供了良好的 API,但要讓這些資源易於使用,那麼它並不是唯一的解決方案。」有鑑於此,Nvidia 開發了 Triton,這是一個開放原始碼推論服務平台,使用者可藉此在任何基於 GPU 或 CPU 的介面上部署 AI 訓練模型。Lamb 聲稱,透過在 K8S 環境中運行 Triton,可以將硬體從軟體中完全抽離出來。

他進一步解釋說,在這種情況下,K8S 可作為 Triton 運行的基底。Triton 處理節點內硬體的抽象化,K8S 則同時協調叢集,使其能更有效地向外擴展。

MIG 促使應用程式和資源更線性地擴展

除了軟體之外,Nvidia 也採取了客製化其硬體的措施,以應用在虛擬化環境中。不過,這並非僅限於 K8S。隨著該公司 Ampere 架構的企業級 A100 GPU 和 DGX A100 伺服器的發布,該公司推出了多實例 GPU(Multiple Instance GPU, MIG)。

MIG 可以將單一 A100 GPU 分割成 7 個較小的 GPU,這有點像將 CPU 劃分成若干獨立的核心一樣。根據 Lamb 的說法,這讓使用者能以更好的精細度使用像是 K8S 的容器執行元件來自動擴展他們的應用程式。

在 MIG 推出之前,GPU 加速之 K8S 叢集中的每個節點都需要自己專屬的 GPU。如今藉由 MIG,單顆 Nvidia A100(一台 DGX A100 中擁有有 8 顆)可以支持多達 7 個較小的節點,進而讓應用程式和資源可以更線性地擴展。

展望未來,Lamb 預計 GPU 將開始跨入 K8S 的主流應用中,特別是隨著「AI 服務成為 GPU 加速的工作負載,目前它正處於起飛的轉折點。他補充表示:「長此以往,我認為大多數人會將 GPU 加速視為有效的快捷鈕,而不再需要考慮 GPU 開發或程式設計了。」

(首圖來源:Nvidia

關鍵字: , , ,