趨動科技:論軟件定義GPU對AI數(shù)據(jù)中心優(yōu)化的必要性

摘要:

今天AI數(shù)據(jù)中心為企業(yè)提供了深度學習開發(fā)、測試和生產(chǎn)所需的軟硬件環(huán)境。然而,GPU作為高價值硬件,卻并沒有做到像SDN網(wǎng)絡、分布式存儲一樣的數(shù)據(jù)中心級統(tǒng)一運維、管理和使用。這導致了GPU當前在數(shù)據(jù)中心的尷尬現(xiàn)狀:利用率低、成本高、分配和管理困難。

徹底解決這些痛點的方法需要借鑒軟件定義存儲解決存儲問題、軟件定義網(wǎng)絡解決網(wǎng)絡問題、用軟件定義算力來解決GPU問題。采用軟件定義算力理念的GPU池化技術,站在整個數(shù)據(jù)中心的高度,以GPU虛擬化為基礎,突破了傳統(tǒng)GPU虛擬化技術只能支持GPU共享的限制,融合了GPU共享、聚合和遠程使用等多種硬核能力,打造全能型軟件定義GPU。通過把物理GPU抽象成類似于分布式存儲,可以通過網(wǎng)絡在數(shù)據(jù)中心內全局統(tǒng)一運維和管理、任意使用的抽象資源,GPU池化技術解決了當前用戶的痛點。正如當年軟件定義存儲剛出現(xiàn)的時候,有一種觀點認為軟件定義存儲性能不如硬件存儲,不適合重要應用,GPU池化技術推動的軟件定義GPU也遭遇了同樣的認識誤區(qū),一些片面的觀點認為GPU池化技術會引入性能損失,不適合于深度學習。從技術的發(fā)展來看,深度學習能夠、也應該擁抱GPU池化技術,二者應互相配合,才能為用戶提供更適合云的解決方案。

隨著深度學習如火如荼地在各企業(yè)的落地,很多企業(yè)都通過自建私有云或者使用公有云的模式,擁有了自己的AI數(shù)據(jù)中心,對內或對外提供深度學習的開發(fā)、測試和生產(chǎn)環(huán)境。在AI數(shù)據(jù)中心里,算力通常由GPU等加速芯片來提供。由于GPU成本很高,帶GPU的計算資源和不帶GPU的計算資源的成本相差很大,因此如何優(yōu)化一個AI數(shù)據(jù)中心的運營是各個企業(yè)的基礎架構部門、平臺部門和應用部門特別關心的話題。

優(yōu)化一個數(shù)據(jù)中心,首先看組成現(xiàn)代計算機系統(tǒng)的三大件:計算、網(wǎng)絡和存儲?,F(xiàn)代的數(shù)據(jù)中心運營用軟件定義網(wǎng)絡(SDN)做網(wǎng)絡資源抽象,用分布式存儲做存儲資源抽象。這些今天看起來順理成章的技術,也曾經(jīng)歷虛擬網(wǎng)絡不如物理網(wǎng)絡性能高抖動小,分布式存儲不如本地存儲性能好延遲低且還浪費網(wǎng)絡帶寬的質疑。直到今天這些經(jīng)過抽象后的資源性能仍然不如直接使用物理硬件,但是最后其征服整個業(yè)界的本質原因就是資源的全局統(tǒng)一運維、管理和使用。“計算“作為三大件之一也不例外。特定地,對于服務于深度學習的AI數(shù)據(jù)中心,“計算”更多地是圍繞著GPU。對GPU資源做數(shù)據(jù)中心范圍內的資源抽象,使其成為和SDN網(wǎng)絡、分布式存儲一樣的全局統(tǒng)一運維、管理和使用的資源,是優(yōu)化AI數(shù)據(jù)中心的必然思路,也是行之有效的方法。

AI數(shù)據(jù)中心的痛點

趨動科技已經(jīng)服務于互聯(lián)網(wǎng)、金融、教育、電信、交通運輸?shù)榷鄠€行業(yè)的頭部客戶。下面是我們看到的很多客戶在運營AI數(shù)據(jù)中心中遇到的痛點:

1) GPU資源靜態(tài)分配。各個小組/部門使用GPU的負載差異非常大,但是由于應用分管、組織架構等的原因GPU資源無法輕易在部門之間流動,造成GPU資源無法被高效利用。

2) 開發(fā)場景GPU利用非常低。在開發(fā)的過程中,程序員可能在寫代碼,可能在調試bug,甚至可能空閑了去干別的事情。這時候GPU資源大部分處于空閑,但是傳統(tǒng)獨占GPU資源的模式使得GPU資源無法給別人使用。而開發(fā)人員并沒有主動釋放資源的動力。

3) 開發(fā)場景GPU使用體驗差。有部分企業(yè)通過任務提交系統(tǒng)一定程度解決開發(fā)場景GPU利用低的問題。但是這種模式下開發(fā)人員的體驗差,他們需要保存環(huán)境、打包鏡像、提交任務并且等待完成。這種模式會浪費比GPU更昂貴的深度學習算法工程師的時間和注意力。如果是在調試bug,這種模式對工程師是個噩夢。

4) 從應用側看GPU資源不夠用,從運維側看GPU利用率低。獨占GPU的模式使得寶貴的GPU資源很快就被各種場景分配出去了,應用方總抱怨GPU資源不夠,但是平臺方看GPU的利用率確實不高。

5) CPU、GPU的配比困難。服務器按批次采購,平臺/運維要求機器的型號配置是相對固定的。但是應用的類型卻多種多樣,且未來還在不斷變化,不同應用需要的CPU、GPU配比是不一樣的。固定的配比容易造成資源的浪費。

6) 同一個任務負載存在波峰波谷、不同任務負載差異大兩個復雜維度使得GPU的分配特別困難,難以高效使用。

從痛點可以看到,雖然實體上是一個數(shù)據(jù)中心的運營,但是一個企業(yè)的運營說到底是圍繞著人、業(yè)務和企業(yè)制度來運作的??匆粋€技術對企業(yè)帶來的價值,最終還需要體現(xiàn)到這幾個方面。以數(shù)據(jù)中心云化為例,之所以其成為最佳的實踐,是因為該技術對采購、運維、研發(fā)、生產(chǎn)、風控等整個鏈條的人和部門組織架構都產(chǎn)生了深刻的影響;對安全、可控、效率等業(yè)務需求和企業(yè)制度同樣產(chǎn)生深刻的影響。

上面提到的痛點實際上很好涵蓋了一個企業(yè)運作的多個方面。分析完客戶實際中遇到的痛點,我們發(fā)現(xiàn)產(chǎn)生痛點的一個根本原因在于,GPU資源作為高價值的硬件資源,但卻不具備像SDN網(wǎng)絡、分布式存儲那樣數(shù)據(jù)中心級別的統(tǒng)一運維、管理和使用的一等公民身份。因此用戶迫切需要一種技術來消除這種差距。

解決痛點的方向——GPU池化技術

徹底解決這一痛點的方法需要借鑒軟件定義存儲解決存儲問題、軟件定義網(wǎng)絡解決網(wǎng)絡問題、用軟件定義算力來解決GPU問題。采用軟件定義算力理念的GPU池化技術,站在整個數(shù)據(jù)中心的高度,以GPU虛擬化為基礎,突破了傳統(tǒng)GPU虛擬化技術只能支持GPU共享的限制,融合了GPU共享、聚合和遠程使用等多種硬核能力,打造全能型軟件定義GPU。

趨動科技的OrionX 產(chǎn)品是世界范圍領先的數(shù)據(jù)中心級GPU池化軟件,關注深度學習服務在企業(yè)內的全鏈條優(yōu)化,通過先進的技術解決客戶的實際痛點。

趨動科技:論軟件定義GPU對AI數(shù)據(jù)中心優(yōu)化的必要性

OrionX并非一個傳統(tǒng)的GPU虛擬化軟件。傳統(tǒng)的GPU虛擬化只支持本地GPU共享,而OrionX可以把GPU當作像分布式存儲那樣作為全局統(tǒng)一運維、管理和使用的抽象資源,其能力是傳統(tǒng)GPU虛擬化的超集,支持GPU共享、聚合和遠程使用等多項硬核技術。

OrionX把物理GPU資源抽象成可以通過網(wǎng)絡在數(shù)據(jù)中心內任意服務器都可以直接使用的通用資源,對軟件保持近似于物理GPU的兼容性,支持常用的深度學習框架(TensorFlow, PyTorch,PaddlePaddle等),支持深度學習的訓練/推理/未來更多計算模式,支持追求極致性能的手寫CUDA代碼的應用,可以充分利用成熟的深度學習的生態(tài)和社區(qū)力量。

OrionX支持開發(fā)、測試、生產(chǎn)各個環(huán)節(jié),可以隔離,可以混合部署,保持統(tǒng)一使用模式,并且支持不同環(huán)節(jié)的不同優(yōu)化策略。

OrionX支持本地共享/遠程共享、本地獨占/遠程獨占、跨物理節(jié)點多合一各種靈活的用法,支持動態(tài)配置資源,每一種功能都有實際對應的使用場景。

OrionX GPU資源池內的GPU算力即取即用,對其他上層軟件保持資源管理的透明性,做到資源的有效利用。

OrionX對如何提供虛擬GPU,哪些底層細節(jié)需要隱藏,哪些真實參數(shù)需要暴露都有科學的考慮和設計,并留有豐富的接口和配置,允許平臺層甚至應用層做定制化和優(yōu)化,甚至二次開發(fā),例如任務的排隊、優(yōu)先級的定義、親和性等,甚至深度學習框架本身都可以利用OrionX GPU資源池提供的能力去做非常有用的優(yōu)化。

OrionX GPU池化軟件的效率

正如當年軟件定義存儲剛出現(xiàn)的時候,有一種觀點認為軟件定義存儲性能不如硬件存儲,不適合重要應用,GPU池化技術推動的軟件定義算力也遭遇了同樣的認識誤區(qū),一些觀點認為GPU池化軟件會引入性能損失,不適合于深度學習。針對深度學習的兩類最重要的任務我們來分析這種觀點的片面性:

訓練任務

《Characterizing Deep Learning Training Workloads on Alibaba-PAI》[1] 分析了阿里一個訓練集群上的負載特征(見下圖):從任務數(shù)量上看,約59%的任務是單卡小任務;從GPU資源消耗上看,雖然81%的GPU是被分布式訓練任務占用(單機多卡也算分布式),但是這其中有一半的資源是被小于8個GPU的任務所占用(1臺物理服務器可滿足);只有0.7%數(shù)量的任務是使用超過128個GPU(需要16臺或更多物理服務器)。

趨動科技:論軟件定義GPU對AI數(shù)據(jù)中心優(yōu)化的必要性

這個分析表明,訓練任務是非常多樣化的,其規(guī)模有大有小。因此,整個數(shù)據(jù)中心的優(yōu)化目標,應該兼顧訓練任務的整體吞吐率,以及GPU資源的整體利用率。提升多個訓練任務的整體性能,而非強調單個任務的性能,是實踐中常見的選擇,現(xiàn)在業(yè)內有非常多的研究工作都圍繞此開展。深度學習框架是很多訓練任務依賴的一類基礎軟件,其設計目標之一是提升單個訓練任務的性能。GPU池化軟件的目標是通過充分利用數(shù)據(jù)中心內所有GPU資源,從而達到多任務的整體最優(yōu)。這二者不矛盾??蚣芎统鼗浖梢曰ハ嗯浜?,在達成多任務整體最優(yōu)的情況下,盡量讓每個任務的運行更加優(yōu)化。同時,GPU池化軟件可以通過技術手段盡量減少自身引入的性能損失。例如,OrionX GPU池化軟件對于典型的TensorFlow、PyTorch訓練任務可以達到98%以上的效率,即和物理GPU相比小于2%的性能損失。在和框架做共同優(yōu)化的情況下,性能損失還能更低。

推理任務

和訓練任務動輒小時、天、甚至周量級的完成時間不同,推理任務的完成時間要低得多。典型的在線推理業(yè)務,端到端的延遲需求一般在數(shù)百毫秒級別,包括了客戶端到運營商網(wǎng)絡、運營商網(wǎng)絡到數(shù)據(jù)中心以及在數(shù)據(jù)中心內做各種處理的時間。這類實時性要求高的推理任務,需要GPU池化軟件引入的額外延遲非常小。下面是趨動科技的OrionX GPU池化軟件在推理任務上引入的額外延遲的數(shù)據(jù):

趨動科技:論軟件定義GPU對AI數(shù)據(jù)中心優(yōu)化的必要性

即便在最為苛刻的,延遲最低的batch size 1的推理測試中,使用本地物理GPU做一次resnet152的推理延遲為 13.3 毫秒,而使用OrionX GPU池化方案通過RDMA網(wǎng)絡使用遠程虛擬GPU,延遲為14.1毫秒。GPU資源經(jīng)過OrionX GPU池化之后,帶來的0.8毫秒的額外延遲僅占數(shù)百毫秒的業(yè)務要求不足1%。這個數(shù)據(jù)充分說明了,趨動科技的OrionXGPU池化軟件引入的額外延遲非常小,足以支持高實時性的在線推理業(yè)務。

總結

AI無疑是一個火熱的詞匯,但是放在整個計算機領域,應用的重要性不改變其技術的本質,其從硬件到軟件的設計思路并沒有什么特殊的地方,沒有哪個設計思路是計算機發(fā)展史上的新鮮事。經(jīng)歷行業(yè)長期實踐經(jīng)驗,數(shù)據(jù)中心云化是大勢所趨。一個應用要上云,不是讓云來適應應用,而是應用必須要適應云,否則只能被更適應云的競爭者所替代。GPU池化軟件把物理GPU抽象成類似于分布式存儲的,可以通過網(wǎng)絡在數(shù)據(jù)中心內全局統(tǒng)一運維和管理、任意使用的抽象資源,是AI業(yè)務上云的必然選擇。今天認為GPU池化軟件會引入性能損失,不適合于深度學習的看法,和當年認為軟件定義存儲性能不如硬件存儲,不適合重要應用的看法一樣,有著相似的片面性。深度學習能夠,也應該擁抱GPU池化技術,二者互相配合,為用戶提供更好的,更適合云的解決方案。

談到應用和云,就不得不提“云原生”。這是另外一個有意思的話題。感興趣請關注我們下一期的技術分享。

(免責聲明:本網(wǎng)站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內容可能涉嫌侵犯其知識產(chǎn)權或存在不實內容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。 )