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

摘要:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

解決痛點的方向——GPU池化技術(shù)

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

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

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

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

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

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

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

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

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

OrionX GPU池化軟件的效率

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

訓(xùn)練任務(wù)

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

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

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

推理任務(wù)

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

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

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

總結(jié)

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

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

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