趨動科技:論軟件定義GPU對AI數據中心優化的必要性
2021-07-27 14:34:17 | 來源:財訊界 |
2021-07-27 14:34:17 | 來源:財訊界 |
摘要:
今天AI數據中心為企業提供了深度學習開發、測試和生產所需的軟硬件環境。然而,GPU作為高價值硬件,卻并沒有做到像SDN網絡、分布式存儲一樣的數據中心級統一運維、管理和使用。這導致了GPU當前在數據中心的尷尬現狀:利用率低、成本高、分配和管理困難。
徹底解決這些痛點的方法需要借鑒軟件定義存儲解決存儲問題、軟件定義網絡解決網絡問題、用軟件定義算力來解決GPU問題。采用軟件定義算力理念的GPU池化技術,站在整個數據中心的高度,以GPU虛擬化為基礎,突破了傳統GPU虛擬化技術只能支持GPU共享的限制,融合了GPU共享、聚合和遠程使用等多種硬核能力,打造全能型軟件定義GPU。通過把物理GPU抽象成類似于分布式存儲,可以通過網絡在數據中心內全局統一運維和管理、任意使用的抽象資源,GPU池化技術解決了當前用戶的痛點。正如當年軟件定義存儲剛出現的時候,有一種觀點認為軟件定義存儲性能不如硬件存儲,不適合重要應用,GPU池化技術推動的軟件定義GPU也遭遇了同樣的認識誤區,一些片面的觀點認為GPU池化技術會引入性能損失,不適合于深度學習。從技術的發展來看,深度學習能夠、也應該擁抱GPU池化技術,二者應互相配合,才能為用戶提供更適合云的解決方案。
隨著深度學習如火如荼地在各企業的落地,很多企業都通過自建私有云或者使用公有云的模式,擁有了自己的AI數據中心,對內或對外提供深度學習的開發、測試和生產環境。在AI數據中心里,算力通常由GPU等加速芯片來提供。由于GPU成本很高,帶GPU的計算資源和不帶GPU的計算資源的成本相差很大,因此如何優化一個AI數據中心的運營是各個企業的基礎架構部門、平臺部門和應用部門特別關心的話題。
優化一個數據中心,首先看組成現代計算機系統的三大件:計算、網絡和存儲?,F代的數據中心運營用軟件定義網絡(SDN)做網絡資源抽象,用分布式存儲做存儲資源抽象。這些今天看起來順理成章的技術,也曾經歷虛擬網絡不如物理網絡性能高抖動小,分布式存儲不如本地存儲性能好延遲低且還浪費網絡帶寬的質疑。直到今天這些經過抽象后的資源性能仍然不如直接使用物理硬件,但是最后其征服整個業界的本質原因就是資源的全局統一運維、管理和使用。“計算“作為三大件之一也不例外。特定地,對于服務于深度學習的AI數據中心,“計算”更多地是圍繞著GPU。對GPU資源做數據中心范圍內的資源抽象,使其成為和SDN網絡、分布式存儲一樣的全局統一運維、管理和使用的資源,是優化AI數據中心的必然思路,也是行之有效的方法。
AI數據中心的痛點
趨動科技已經服務于互聯網、金融、教育、電信、交通運輸等多個行業的頭部客戶。下面是我們看到的很多客戶在運營AI數據中心中遇到的痛點:
1) GPU資源靜態分配。各個小組/部門使用GPU的負載差異非常大,但是由于應用分管、組織架構等的原因GPU資源無法輕易在部門之間流動,造成GPU資源無法被高效利用。
2) 開發場景GPU利用非常低。在開發的過程中,程序員可能在寫代碼,可能在調試bug,甚至可能空閑了去干別的事情。這時候GPU資源大部分處于空閑,但是傳統獨占GPU資源的模式使得GPU資源無法給別人使用。而開發人員并沒有主動釋放資源的動力。
3) 開發場景GPU使用體驗差。有部分企業通過任務提交系統一定程度解決開發場景GPU利用低的問題。但是這種模式下開發人員的體驗差,他們需要保存環境、打包鏡像、提交任務并且等待完成。這種模式會浪費比GPU更昂貴的深度學習算法工程師的時間和注意力。如果是在調試bug,這種模式對工程師是個噩夢。
4) 從應用側看GPU資源不夠用,從運維側看GPU利用率低。獨占GPU的模式使得寶貴的GPU資源很快就被各種場景分配出去了,應用方總抱怨GPU資源不夠,但是平臺方看GPU的利用率確實不高。
5) CPU、GPU的配比困難。服務器按批次采購,平臺/運維要求機器的型號配置是相對固定的。但是應用的類型卻多種多樣,且未來還在不斷變化,不同應用需要的CPU、GPU配比是不一樣的。固定的配比容易造成資源的浪費。
6) 同一個任務負載存在波峰波谷、不同任務負載差異大兩個復雜維度使得GPU的分配特別困難,難以高效使用。
從痛點可以看到,雖然實體上是一個數據中心的運營,但是一個企業的運營說到底是圍繞著人、業務和企業制度來運作的??匆粋€技術對企業帶來的價值,最終還需要體現到這幾個方面。以數據中心云化為例,之所以其成為最佳的實踐,是因為該技術對采購、運維、研發、生產、風控等整個鏈條的人和部門組織架構都產生了深刻的影響;對安全、可控、效率等業務需求和企業制度同樣產生深刻的影響。
上面提到的痛點實際上很好涵蓋了一個企業運作的多個方面。分析完客戶實際中遇到的痛點,我們發現產生痛點的一個根本原因在于,GPU資源作為高價值的硬件資源,但卻不具備像SDN網絡、分布式存儲那樣數據中心級別的統一運維、管理和使用的一等公民身份。因此用戶迫切需要一種技術來消除這種差距。
解決痛點的方向——GPU池化技術
徹底解決這一痛點的方法需要借鑒軟件定義存儲解決存儲問題、軟件定義網絡解決網絡問題、用軟件定義算力來解決GPU問題。采用軟件定義算力理念的GPU池化技術,站在整個數據中心的高度,以GPU虛擬化為基礎,突破了傳統GPU虛擬化技術只能支持GPU共享的限制,融合了GPU共享、聚合和遠程使用等多種硬核能力,打造全能型軟件定義GPU。
趨動科技的OrionX 產品是世界范圍領先的數據中心級GPU池化軟件,關注深度學習服務在企業內的全鏈條優化,通過先進的技術解決客戶的實際痛點。
OrionX并非一個傳統的GPU虛擬化軟件。傳統的GPU虛擬化只支持本地GPU共享,而OrionX可以把GPU當作像分布式存儲那樣作為全局統一運維、管理和使用的抽象資源,其能力是傳統GPU虛擬化的超集,支持GPU共享、聚合和遠程使用等多項硬核技術。
OrionX把物理GPU資源抽象成可以通過網絡在數據中心內任意服務器都可以直接使用的通用資源,對軟件保持近似于物理GPU的兼容性,支持常用的深度學習框架(TensorFlow, PyTorch,PaddlePaddle等),支持深度學習的訓練/推理/未來更多計算模式,支持追求極致性能的手寫CUDA代碼的應用,可以充分利用成熟的深度學習的生態和社區力量。
OrionX支持開發、測試、生產各個環節,可以隔離,可以混合部署,保持統一使用模式,并且支持不同環節的不同優化策略。
OrionX支持本地共享/遠程共享、本地獨占/遠程獨占、跨物理節點多合一各種靈活的用法,支持動態配置資源,每一種功能都有實際對應的使用場景。
OrionX GPU資源池內的GPU算力即取即用,對其他上層軟件保持資源管理的透明性,做到資源的有效利用。
OrionX對如何提供虛擬GPU,哪些底層細節需要隱藏,哪些真實參數需要暴露都有科學的考慮和設計,并留有豐富的接口和配置,允許平臺層甚至應用層做定制化和優化,甚至二次開發,例如任務的排隊、優先級的定義、親和性等,甚至深度學習框架本身都可以利用OrionX GPU資源池提供的能力去做非常有用的優化。
OrionX GPU池化軟件的效率
正如當年軟件定義存儲剛出現的時候,有一種觀點認為軟件定義存儲性能不如硬件存儲,不適合重要應用,GPU池化技術推動的軟件定義算力也遭遇了同樣的認識誤區,一些觀點認為GPU池化軟件會引入性能損失,不適合于深度學習。針對深度學習的兩類最重要的任務我們來分析這種觀點的片面性:
訓練任務
《Characterizing Deep Learning Training Workloads on Alibaba-PAI》[1] 分析了阿里一個訓練集群上的負載特征(見下圖):從任務數量上看,約59%的任務是單卡小任務;從GPU資源消耗上看,雖然81%的GPU是被分布式訓練任務占用(單機多卡也算分布式),但是這其中有一半的資源是被小于8個GPU的任務所占用(1臺物理服務器可滿足);只有0.7%數量的任務是使用超過128個GPU(需要16臺或更多物理服務器)。
這個分析表明,訓練任務是非常多樣化的,其規模有大有小。因此,整個數據中心的優化目標,應該兼顧訓練任務的整體吞吐率,以及GPU資源的整體利用率。提升多個訓練任務的整體性能,而非強調單個任務的性能,是實踐中常見的選擇,現在業內有非常多的研究工作都圍繞此開展。深度學習框架是很多訓練任務依賴的一類基礎軟件,其設計目標之一是提升單個訓練任務的性能。GPU池化軟件的目標是通過充分利用數據中心內所有GPU資源,從而達到多任務的整體最優。這二者不矛盾??蚣芎统鼗浖梢曰ハ嗯浜希谶_成多任務整體最優的情況下,盡量讓每個任務的運行更加優化。同時,GPU池化軟件可以通過技術手段盡量減少自身引入的性能損失。例如,OrionX GPU池化軟件對于典型的TensorFlow、PyTorch訓練任務可以達到98%以上的效率,即和物理GPU相比小于2%的性能損失。在和框架做共同優化的情況下,性能損失還能更低。
推理任務
和訓練任務動輒小時、天、甚至周量級的完成時間不同,推理任務的完成時間要低得多。典型的在線推理業務,端到端的延遲需求一般在數百毫秒級別,包括了客戶端到運營商網絡、運營商網絡到數據中心以及在數據中心內做各種處理的時間。這類實時性要求高的推理任務,需要GPU池化軟件引入的額外延遲非常小。下面是趨動科技的OrionX GPU池化軟件在推理任務上引入的額外延遲的數據:
即便在最為苛刻的,延遲最低的batch size 1的推理測試中,使用本地物理GPU做一次resnet152的推理延遲為 13.3 毫秒,而使用OrionX GPU池化方案通過RDMA網絡使用遠程虛擬GPU,延遲為14.1毫秒。GPU資源經過OrionX GPU池化之后,帶來的0.8毫秒的額外延遲僅占數百毫秒的業務要求不足1%。這個數據充分說明了,趨動科技的OrionXGPU池化軟件引入的額外延遲非常小,足以支持高實時性的在線推理業務。
總結
AI無疑是一個火熱的詞匯,但是放在整個計算機領域,應用的重要性不改變其技術的本質,其從硬件到軟件的設計思路并沒有什么特殊的地方,沒有哪個設計思路是計算機發展史上的新鮮事。經歷行業長期實踐經驗,數據中心云化是大勢所趨。一個應用要上云,不是讓云來適應應用,而是應用必須要適應云,否則只能被更適應云的競爭者所替代。GPU池化軟件把物理GPU抽象成類似于分布式存儲的,可以通過網絡在數據中心內全局統一運維和管理、任意使用的抽象資源,是AI業務上云的必然選擇。今天認為GPU池化軟件會引入性能損失,不適合于深度學習的看法,和當年認為軟件定義存儲性能不如硬件存儲,不適合重要應用的看法一樣,有著相似的片面性。深度學習能夠,也應該擁抱GPU池化技術,二者互相配合,為用戶提供更好的,更適合云的解決方案。
談到應用和云,就不得不提“云原生”。這是另外一個有意思的話題。感興趣請關注我們下一期的技術分享。
免責聲明:市場有風險,選擇需謹慎!此文僅供參考,不作買賣依據。