在CUDA GPU上部署雙子星雲端Gemini GPU Partitioning 分割共享技術的性能測試
雙子星雲端採用了業界常用的基準工具,以及知名的開源影像資料集 Imagenet,進行了深入的推論性能測試 (Inference Performance Benchmarking),以表徵 Gemini AI Console 的 GPU Partitioning 分割共享技術在 CUDA GPU 上部署的優化成果。
本文為摘要後的部份數據及內容,欲索取雙子星雲端的完整報告,請造訪 https://www.geminiopencloud.com/zh-tw/products/ai-management-console/
Gemini AI Console 的測試配置
Gemini AI Console 可以設定一塊 NVIDIA Tesla P100 GPU 上的同時共享容器數量,從 1 個容器使用 1 片 GPU,增加到 2 個容器、4 個容器、8 個容器同時並行使用 1 片 GPU。以下影片展示了Gemini AI Console 可在一台配有兩片GPU的伺服器上的其中一片GPU上開啟一個容器,在另一片GPU上開啟4個容器同時並行、每個容器各自使用了1/4張GPU,因此整個環境並行了5個容器。
這也代表了,透過了Gemini GPU Partitioning的分割共享技術,可以突破了GPU的數量限制,在有限的GPU資源下,同時運行更多的模型、彈性地提供更多的服務。
推論性能評估方法
真實世界中的推論部署可以分為兩類:第一類是批量推論,通常用於大量資料的分析預測處理,重視的是「吞吐量」(Throughput) 愈大愈好,而可以犧牲延遲時間以換取高吞吐量;另一類則是即時推論,對於延遲時間極為敏感,需要立刻回應出正確答案,「延遲」愈低愈好。
因此,我們設計了兩個測試場景,來觀察 Gemini GPU Partitioning 的性能表現,觀察分割後的GPU,是否能在大批量資料的推論下展現出「高吞吐量」,在即時推論下展現出「低延遲」的特性。
GPU分割後 可再提升吞吐量
為了比較GPU分割前後的性能變化,我們配置了三種GPU分割方式:
- 1個容器使用1個完整P100 GPU
- 1個容器使用1/4個P100 GPU
- 4個容器各使用1/4個P100 GPU,也就是4個容器同時並行在1張P100 GPU上
使用1個完整P100 GPU進行ResNet50模型推論,吞吐量為每秒 ⬛️ 張照片;而使用1/4個P100 GPU進行推論,推論性能稍微縮減,為完整GPU吞吐量的0.88倍,遠高於四分之一;若以4個容器各使用1/4個P100 GPU同時並行ResNet50模型推論,吞吐量大幅提升,可達完整GPU吞吐量的3.54倍。
根據以上測試結果,對於模型批次推論的場景,一張GPU在切割為四分之一以後,其推論吞吐量僅略低於一張完整的GPU,性能損耗有限,遠高於切割前的四分之一;而且,一張GPU在切割之後,不僅可以讓多個服務同時並行,讓資源運用更為豐富與多樣。不僅如此,GPU切割之後的總吞吐量,還可以高於切割之前、一張完整的GPU,同時達到質與量的提升。但是要如何切割、可以再優化的程度,則需視資料的數量、模型的種類而定。
以上結果隱去了部份數據,但並不影響結論。欲索取雙子星雲端的完整報告,請造訪 https://www.geminiopencloud.com/zh-tw/products/ai-management-console/
即時推論的性能評估
為了進一步驗證 Gemini GPU Partitioning 分割後的 GPU 是否可以提供線上即時推論足夠小的延遲,我們設計了另一個測試。同樣地,我們配置了三種 GPU 分割方式:
- 1 個容器使用 1 個完整 P100 GPU
- 1 個容器使用 1/4 個 P100 GPU
- 4 個容器各使用 1/4 個 P100 GPU,也就是 4 個容器同時在 1 張 P100 GPU 上
使用 1 個完整 P100 GPU 進行 ResNet50 模型推論,平均延遲時間為 ⬛️ 毫秒;而使用 1/4 個 P100 GPU 進行推論,平均延遲時間與完整 GPU 相比,僅增加了 1.9%;若以 4 個容器各使用 1/4 個 P100 GPU 同時並行 ResNet50 模型推論,平均延遲時間與完整 GPU 相比,僅增加了4.8%。
根據以上測試結果,對於模型即時推論的場景,一張 GPU 在切割以後,其推論的延遲時間會略高於一張完整的 GPU,性能影響有限,但考量到一張 GPU 在切割之後,可以讓多個服務同時並行,以微幅的即時推論性能影響換取資源利用的豐富與多樣、成本之降低,Gemini GPU Partitioning 實有其價值。
以上結果隱去了部份數據,但並不影響結論。欲索取雙子星雲端的完整報告,請造訪 https://www.geminiopencloud.com/zh-tw/products/ai-management-console/
結論
該是現代組織解決在 Kubernetes 上使用 GPU 相關痛點的時候了。GPU kernel non-prememptive 的特性固然保障了 GPU 的運算完整不被中斷,但是卻會不必要地增加機器學習的成本。本文介紹的雙子星雲端 Gemini GPU Partitioning 分割共享技術,在經濟效益的 GPU 硬體平台上提供優化的推論效率與延遲時間,一如軟體定義基礎設施的精神,架構中的硬體和軟體可以靈活地定制,以適應各種需求。例如,如果客戶需要讓更多人可以同時使用,過去只能考慮安裝更多的 GPU 卡片或節點,但在引入了 Gemini GPU Partitioning 分割共享技術之後,還可以將單片 GPU 分割成更多個較小單元,讓更多人可以使用。而且,當客戶需要更高的推論吞吐量,分割成多個小單元來同時運算也可以幫助在更短的時間內預測處理完巨量資料。
Gemini AI Console 不僅可以提供更為優化的資源使用率,其多租戶系統、多層次權限管理、專案資源配置,可以無痛滿足「業務複雜性」的需求;而 GPU 節點的橫向擴展、內建 Kubernetes 的大規模容器調度,工作任務與流水線,協助企業應對「機器學習自動化流程 MLOps」的挑戰。而內建多種人工智慧框架、DevOps 工具的應用市集,更是協助機器學習專案快速啟動的良方。
獲取更多資訊
要瞭解有關雙子星雲端的資源管理平台和技術的更多資訊,請訪問 www.geminiopencloud.com
Subscribe to Gemini Open Cloud newsletter: https://www.geminiopencloud.com/zh-tw/about/newsletter/