本文分享自華為云社區(qū)《使用 UCS(On-Premises) 管理您的GPU資源池,釋放AI大模型算力潛能》,作者:云容器大未來。
過去十余年,依托全球數(shù)據(jù)、算法、算力持續(xù)突破,人工智能全面走向應(yīng)用,已成為社會生產(chǎn)生活的支柱性技術(shù)。2020年后,當(dāng)自動駕駛、人臉識別等熱門應(yīng)用發(fā)展逐漸放緩、社會對人工智能整體發(fā)展預(yù)期日益冷靜時(shí),大模型技術(shù)潛力的釋放以最振聾發(fā)聵的方式宣告了人工智能第三次高速發(fā)展期遠(yuǎn)未結(jié)束,當(dāng)前正是攀登發(fā)展高峰的關(guān)鍵時(shí)期。
【資料圖】
盡管人工智能技術(shù)成熟度正在不斷提高,但目前眾多企業(yè)進(jìn)行人工智能應(yīng)用仍然面臨著AI應(yīng)用部署存在困難、投入產(chǎn)出比不達(dá)預(yù)期等問題。我們認(rèn)為,企業(yè)通過配備適宜于AI開發(fā)的高性能軟硬件基礎(chǔ)服務(wù),有望能夠利用底層技術(shù)的復(fù)用和算力資源的靈活配置優(yōu)化AI開發(fā)和部署流程,提升AI的價(jià)值創(chuàng)造能力。
芯片作為算力基礎(chǔ)設(shè)施,是推動人工智能產(chǎn)業(yè)發(fā)展的動力源泉。隨著人工智能算法的發(fā)展,大模型、視頻圖像解析、語音識別等細(xì)分領(lǐng)域算力需求呈爆發(fā)式增長,通用芯片已無法滿足需求。由于GPU比CPU更適合處理企業(yè)數(shù)據(jù)中心和超大規(guī)模網(wǎng)絡(luò)中AI和機(jī)器學(xué)習(xí)所需的許多計(jì)算,數(shù)據(jù)中心對GPU的需求一直不斷增長。
在實(shí)際應(yīng)用人工智能的過程中主要面臨基礎(chǔ)設(shè)施、AI算法及數(shù)據(jù)等方面的阻礙。在基礎(chǔ)設(shè)施方面,企業(yè)的IT基礎(chǔ)設(shè)施在海量數(shù)據(jù)參與運(yùn)算和采取分布式架構(gòu)的條件下可能面臨GPU算力不足的問題,從而降低企業(yè)AI應(yīng)用的可用性;在算法訓(xùn)練推理領(lǐng)域,以“大模型”為代表的人工智能算法模型體現(xiàn)出模型參數(shù)的數(shù)量不斷增加的趨勢,高度復(fù)雜化的模型融入應(yīng)用程序后可能帶來訓(xùn)練、推理框架的適配難度的增加,而在交付和部署后對模型的修改也會給用戶帶來服務(wù)中斷等問題。為順應(yīng)AI“大模型”時(shí)代的發(fā)展,亟需解決如下技術(shù)挑戰(zhàn):
華為云分布式云原生UCS服務(wù),是面向分布式云場景下的新一代云原生產(chǎn)品,提供UCS (Huawei Cloud)、UCS (Partner Cloud)、UCS (Multi-Cloud)、UCS (On-Premises) 以及UCS (Attached Clusters) 等產(chǎn)品,覆蓋公有云、多云、本地?cái)?shù)據(jù)中心、邊緣等分布式云場景。其中,華為云UCS (On-Premises) 服務(wù)是在大規(guī)模分布式、高安全合規(guī)、高性能的互聯(lián)網(wǎng)應(yīng)用驅(qū)動下,產(chǎn)生的新一代集開發(fā)運(yùn)維、發(fā)布管理為一體的云原生平臺,支持將容器管理能力延展至用戶數(shù)據(jù)中心,提供云上云下一致的操作體驗(yàn)。針對用戶在本地本地?cái)?shù)據(jù)中心AI計(jì)算的訴求,用戶可通過UCS(On-Premises)提供的GPU虛擬化、AI任務(wù)管理及調(diào)度能力,輕松應(yīng)對大模型時(shí)代的GPU資源利用率及統(tǒng)一的AI框架調(diào)度平臺的技術(shù)挑戰(zhàn):
GPU虛擬化技術(shù)從2000年代初期硬件虛擬化到基于API的虛擬化術(shù),再到完全虛擬化和基于容器的虛擬化的發(fā)展,在云計(jì)算、AI領(lǐng)域扮演著越來越重要的角色,無論GPU技術(shù)怎樣發(fā)展,其目的都是在提高虛擬化的性能、隔離性及用戶體驗(yàn),歸納起來,GPU虛擬化技術(shù)在大模型時(shí)代,均需要解決資源共享隔離、算力隔離、顯存隔離、故障隔離的場景問題:
為了在容器場景下充分使用GPU資源,解決上述提到的算力隔離、顯存隔離、故障隔離,華為云在HCE(Huawei Cloud EulerOS)內(nèi)核基礎(chǔ)上研發(fā)了xGPU技術(shù),針對人工智能場景,實(shí)現(xiàn)多個(gè)AI容器共用一張顯卡,同時(shí)具備業(yè)務(wù)的安全隔離,保障多組任務(wù)有效使用同一張GPU物理卡,大幅度提升AI訓(xùn)練任務(wù)在UCS(On-Premises)集群的運(yùn)行體驗(yàn),目前xGPU能力已經(jīng)完全落地在UCS(On-Premises)平臺之上,如下是整體架構(gòu):
xGPU不僅實(shí)現(xiàn)單卡GPU虛擬化,還原生兼容kubernetes生態(tài):
xGPU實(shí)現(xiàn)的是單卡級別的資源隔離,而AI任務(wù)往往是以多組隊(duì)列的形態(tài)進(jìn)行下發(fā),以Tensorflow任務(wù)為例,做單次訓(xùn)練需要運(yùn)行11個(gè)pod(1個(gè)PS Pod + 10個(gè) Worker Pod),且需要11個(gè)Pod均啟動成功,訓(xùn)練任務(wù)才可進(jìn)行,如果因?yàn)槟骋粡圙PU顯存不足導(dǎo)致其中的一個(gè)Pod運(yùn)行失敗,就會導(dǎo)致整個(gè)訓(xùn)練任務(wù)的失敗,這樣導(dǎo)致的資源及訓(xùn)練成本加大,所以針對AI類訓(xùn)練任務(wù),就需要一個(gè)針對kubernetes平臺資源的智能調(diào)度引擎Volcano。
Volcano 是業(yè)界首個(gè)云原生批量計(jì)算項(xiàng)目,2019年由華為云捐獻(xiàn)給云原生計(jì)算基金會(CNCF),也是 CNCF 首個(gè)和唯一的孵化級容器批量計(jì)算項(xiàng)目,并于近期攜手11家合作伙伴啟動了Volcano社區(qū)共建計(jì)劃。該項(xiàng)目面向人工智能、大數(shù)據(jù)、HPC場景提供統(tǒng)一的高性能作業(yè)管理,支持豐富的高階調(diào)度策略,包括在離線統(tǒng)一調(diào)度、AI彈性訓(xùn)練調(diào)度、SLA、作業(yè)拓?fù)?、Fairness、負(fù)載感知、重調(diào)度、搶占、回收等;對Spark、Flink、Pytorch、MPI、TensorFlow等批處理工作負(fù)載實(shí)現(xiàn)統(tǒng)一生命周期管理,作業(yè)依賴、作業(yè)內(nèi)任務(wù)依賴管理;在細(xì)粒度資源管理方面,Volcano支持min-max隊(duì)列資源管理,提供隊(duì)列資源預(yù)留、多租戶資源租借/搶占的動態(tài)資源共享等能力;在異構(gòu)資源管理方面,Volcano 實(shí)現(xiàn) x86、Arm、GPU、昇騰、昆侖等多元算力的統(tǒng)一調(diào)度,并提供CPU/GPU 共享的精細(xì)化調(diào)度能力,用戶可根據(jù)業(yè)務(wù)需求靈活搭配資源,實(shí)現(xiàn)最高性價(jià)比。
Volcano當(dāng)前廣泛的被華為云內(nèi)外部客戶用于生產(chǎn)環(huán)境,在華為內(nèi)部,Volcano被用于流程IT、終端云等核心AI應(yīng)用場景;其豐富的調(diào)度策略Gang-Scheduling、Task-Topology、IO-Aware、NUMA-Aware等在生產(chǎn)環(huán)境的應(yīng)用,大幅提升分布式訓(xùn)練的調(diào)度效率,將算力資源池的利用率從20%提升至60%以上,如今Volcano將作為UCS(On-Premises)服務(wù)的重要組件,幫助用戶在本地?cái)?shù)據(jù)中心加速AI任務(wù)的訓(xùn)練及均衡提升算力資源利用率,如下將著重回顧介紹下Volcano的關(guān)鍵調(diào)度策略:
Gang-Scheduling調(diào)度策略是volcano-scheduler的核心調(diào)度算法之一,它滿足了調(diào)度過程中的“All or nothing”的調(diào)度需求,避免Pod的任意調(diào)度導(dǎo)致集群資源的浪費(fèi)。具體算法是,觀察Job下的Pod已調(diào)度數(shù)量是否滿足了最小運(yùn)行數(shù)量,當(dāng)Job的最小運(yùn)行數(shù)量得到滿足時(shí),為Job下的所有Pod執(zhí)行調(diào)度動作,否則,不執(zhí)行。
如一個(gè)訓(xùn)練場景,假設(shè)一個(gè)由2個(gè)ps容器和4個(gè)worker容器組成的AI應(yīng)用程序需要調(diào)度到有限的資源上。當(dāng)默認(rèn)調(diào)度器嘗試調(diào)度最后一個(gè)工作者容器時(shí),如果沒有可用的資源,則調(diào)度將失敗。作業(yè)掛起,因?yàn)闆]有最后一個(gè)工作者容器應(yīng)用程序就無法運(yùn)行。與此同時(shí),已經(jīng)排定的容器所占用的資源卻沒有產(chǎn)出任何東西。
Volcano確保了一組相關(guān)的容器可以同時(shí)排期。如果出于某種原因,不可能將所有容器排成一組,Volcano不會安排這組。在實(shí)踐中,將一組內(nèi)部依賴容器部署到有限資源上的情況并不少見。在這些情況下,Volcano是至關(guān)重要的,因?yàn)榻M調(diào)度消除了由于資源不足而導(dǎo)致的潛在死鎖。Volcano顯著提高了負(fù)載沉重的集群的資源利用率。
分組調(diào)度基于容器組,或代碼中所稱的“jobs(作業(yè))”。使用分組調(diào)度,算法檢查每個(gè)作業(yè),看是否可以調(diào)度整個(gè)作業(yè)。每個(gè)組中的容器稱為“tasks(任務(wù))”。當(dāng)可以調(diào)度的任務(wù)數(shù)量超過設(shè)定的閾值時(shí),任務(wù)將被調(diào)度到各個(gè)節(jié)點(diǎn)上。這個(gè)調(diào)度過程在代碼中稱為“bind nodes(綁定節(jié)點(diǎn))”。
Nunma-Aware調(diào)度策略是針對那些對cpu參數(shù)敏感、調(diào)度延遲敏感的計(jì)算密集型作業(yè):如科學(xué)計(jì)算、視頻解碼、動漫動畫渲染、大數(shù)據(jù)離線處理等具體場景,volcano通過Resource Reporter上報(bào)的節(jié)點(diǎn)CPU拓?fù)浼癙OD使用CPU的NUMA分布,提供NUMA-Aware能力將POD調(diào)度至合理的CPU上,有效提升任務(wù)的執(zhí)行效率。
Volcano提供了一組不同的調(diào)度算法,比如優(yōu)先級、域資源公平性(DRF)和binpack,這意味著你可以更容易地處理不同的服務(wù)需求。例如,你可能希望在部署應(yīng)用程序時(shí)確保DR和中斷隔離。使用Volcano,你可以輕松地部署在不同節(jié)點(diǎn)上運(yùn)行相同應(yīng)用程序的容器,并且每個(gè)節(jié)點(diǎn)只有一個(gè)pod。在另一個(gè)場景中,為了確保某些應(yīng)用程序不會競爭資源,你可能希望避免將它們部署在同一個(gè)節(jié)點(diǎn)上。Volcano可以幫助你做到這一點(diǎn)。
UCS(On-Premises)旨在將云上的服務(wù)能力延伸至各行業(yè)的客戶的本地?cái)?shù)據(jù)中心,結(jié)合volcano的AI作業(yè)管理及智能調(diào)度能力、xGPU的GPU虛擬化能力,幫助用戶快速在IDC構(gòu)建云原生的AI基礎(chǔ)設(shè)施,更細(xì)粒度的使用GPU資源,讓用戶聚焦AI的業(yè)務(wù)開發(fā),最大限度釋放AI大模型算力潛能。
《人工智能標(biāo)準(zhǔn)化白皮書》(2021版)
《人工智能安全標(biāo)準(zhǔn)化白皮書》(2023版)
《華金證券:AI產(chǎn)業(yè)化再加速,智能大時(shí)代已開啟-GPU行業(yè)深度報(bào)告》
《艾瑞咨詢:2021年中國云原生AI開發(fā)平臺白皮書》
點(diǎn)擊關(guān)注,第一時(shí)間了解華為云新鮮技術(shù)~
關(guān)鍵詞:
質(zhì)檢
推薦