聽說,現(xiàn)在已經(jīng)有人在搞十萬卡集群了!
什么概念呢?100000張GPU或者AI加速卡攢在一起,組團(tuán)干活,提供“核彈級”算力。
這么頂,真有必要嗎?必須有,業(yè)界大佬都在這么干!
只因AGI太火爆,引發(fā)了算力“軍備競賽”,十萬卡集群已經(jīng)成為業(yè)界頂尖大模型公司的標(biāo)配,xAI、Meta、OpenAI都在搞!
即便大家如此激進(jìn),算力瓶頸仍然拖了大模型迭代的后腿。
坊間傳聞,GPT5遲遲不能發(fā)布的原因之一,就是算力不足。
而國內(nèi)的頭部大模型廠商,也都在互相較勁,緊鑼密鼓地籌建十萬卡集群…
總之,趨勢在那里擺著,算力基礎(chǔ)設(shè)施必須要跟上,“不搞就會落后,落后就要挨揍”!
“十萬卡”集群,有多難搞?
首先,你懂的,家里確實要有礦!
一臺8卡服務(wù)器,十萬卡就是12500臺服務(wù)器,這就是250億了。
所以,十萬卡集群,都是巨頭或者拿到巨額投資的公司在搞。
但是,對于國內(nèi)企業(yè)來說,光“家里有礦”還不夠,第一道技術(shù)坎就把大家卡住了。
這道坎就是:十萬卡規(guī)模的智算中心,必須要跨地域部署。
為什么要把一個好好的數(shù)據(jù)中心拆散,讓他們跨地域呢?
首先,十萬卡集群,是妥妥的超級電老虎,一天的耗電量,高達(dá)300萬度,相當(dāng)于北京東城區(qū)居民一天的電量。
單一物理數(shù)據(jù)中心,很難滿足這種用電需求。
同時,這樣的超標(biāo)電老虎,會對所在區(qū)域的電網(wǎng)造成沖擊,超出電網(wǎng)的配電限制。
不止如此,十萬張卡,光服務(wù)器機(jī)房的面積就超過10萬平方米。
相當(dāng)于14個足球場那么大,這還不包括其他數(shù)據(jù)中心配套設(shè)施,不做特殊規(guī)劃,根本放不下。
所以,能耗和空間的制約,讓這種超標(biāo)集群,不得不跨樓、跨園區(qū)部署,考慮到電力供給,甚至要跨城市組網(wǎng)。
大家都知道,在單個物理數(shù)據(jù)中心操控調(diào)度海量算力卡,就已經(jīng)很難了,要考慮傳輸性能、穩(wěn)定性、故障恢復(fù)、各種并行策略等等。
一旦跨了地域,難度更是飆升了無數(shù)倍↓
比如,受電力、配網(wǎng)、空間等限制,在實際部署中,集群不得不分布在兩個相距100KM的數(shù)據(jù)中心…
但IB和RoCE等無損網(wǎng)絡(luò)的原始設(shè)計,就不是為這樣的跨地域、超長距、高延遲場景服務(wù)的,它們受不了這種“沒苦硬吃”的工作。
以前,在單一數(shù)據(jù)中心內(nèi)部,網(wǎng)絡(luò)鏈路的設(shè)計通常都是按照1:1收斂的,全網(wǎng)無阻塞,所有GPU流量不沖突,滿足訓(xùn)練時各種并行策略對帶寬和時延的要求。
現(xiàn)在,跨地域部署之后,兩個數(shù)據(jù)中心間互聯(lián)帶寬,充其量也就幾百個T,看著不少,攤到每個節(jié)點、每塊GPU,那就是獨木橋。
有效帶寬容量差了幾十上百倍,調(diào)度稍有不慎,就會“塞車”。
這100公里的距離,會帶來額外500μs的延遲,相當(dāng)于數(shù)據(jù)中心本地網(wǎng)絡(luò)的100倍(約5μs)。
IB/RoCE的網(wǎng)卡、交換機(jī)、重傳機(jī)制、擁塞控制機(jī)制都是按照10μs級別時延來設(shè)計的,面對500μs這種超綱問題,結(jié)果完全不可控。
而且,模型并行算法,在常規(guī)設(shè)計中也只考慮了網(wǎng)絡(luò)低時延、帶寬最大化的場景,這種長距的高延遲甚至都超過了一次矩陣計算的時間。
距離產(chǎn)生美,也產(chǎn)生了麻煩。
很難想象吧,這點距離,幾乎成了國內(nèi)十萬卡集群無法跨越的鴻溝,簡直Mission Impossible了。
跨地域“十萬卡”,有人搞定了
真的要一別兩寬嗎?不!
最新消息,百度百舸團(tuán)隊給出了自己的解決方案,讓跨地域構(gòu)建“十萬卡集群”成為可能。
百度百舸具體是怎么干的呢?
一、先夯實基本功,把本地萬卡+集群玩到飛起,儲備跨地域組網(wǎng)能力。
?網(wǎng)絡(luò)性能升級
本地大規(guī)模集群都搞不好的話,想搞跨地域那就是空談,百度智能云在原有萬卡集群網(wǎng)絡(luò)的基礎(chǔ)上,對自研網(wǎng)絡(luò)交換機(jī)進(jìn)行升級。
升級后,整張高性能網(wǎng)絡(luò)具備了更為智能的動態(tài)負(fù)載均衡能力,徹底消除哈希沖突和網(wǎng)絡(luò)擁塞。
即便面對十萬卡產(chǎn)生的海量數(shù)據(jù)沖擊,也可以輕松應(yīng)對,提供無阻塞、低延遲轉(zhuǎn)發(fā)。
?平滑可擴(kuò)展的架構(gòu)設(shè)計
十萬卡并非一蹴而就,即便本地數(shù)據(jù)中心五萬張卡,那也可能是從千卡、萬卡、兩萬卡…逐步升級起來的。
百度高性能網(wǎng)絡(luò)在架構(gòu)設(shè)計上,支持Pod級別的按需平滑擴(kuò)容,建好的部分,可以立即投入使用,建一批投產(chǎn)一批,工期時間短,擴(kuò)容無壓力。
?提升整體穩(wěn)定性
十萬卡集群相比萬卡集群,在設(shè)備故障率不變的情況下,訓(xùn)練任務(wù)故障率會極速增長,這將給系統(tǒng)穩(wěn)定性帶來極大挑戰(zhàn)。
百度百舸4.0內(nèi)置了一套自動化容錯機(jī)制,致力于訓(xùn)練任務(wù)永不中斷。
比如,單網(wǎng)卡故障,任務(wù)會流量切換到同機(jī)網(wǎng)卡繼續(xù)傳輸數(shù)據(jù),網(wǎng)絡(luò)故障修復(fù)后,任務(wù)自動回切。
比如,單節(jié)點故障,該節(jié)點全部數(shù)據(jù)可通過內(nèi)存和網(wǎng)絡(luò)導(dǎo)入到備用機(jī)器中繼續(xù)訓(xùn)練任務(wù)。
同時,針對無法自動化恢復(fù)的錯誤,百舸4.0提供了更加快速的「感知-定位-重啟-恢復(fù)」服務(wù)。
怎么個快法?
首先,百度自研的集合通信庫BCCL,內(nèi)置了錯誤感知的專用觀察方法和故障定位的專用能力,將錯誤感知從傳統(tǒng)的10+分鐘縮短到秒級,并且秒級鎖定故障節(jié)點。
故障定位后,接下來就是快速任務(wù)重啟和斷點恢復(fù),百度百舸平臺提供分級恢復(fù)策略,根據(jù)任務(wù)類型,用最省事、最快的方法恢復(fù)任務(wù)。
接下來,還記得我們前面說的“Graph重建”嗎?
重啟的任務(wù)直接通過RDMA從重建節(jié)點的內(nèi)容中獲取Checkpoint,原地繼續(xù)下一步的計算,重啟時間從過去10+分鐘縮短到分鐘級。
這么說吧,百度百舸通過上述這一系列操作(性能提速、可擴(kuò)展架構(gòu)、穩(wěn)定性設(shè)計),不僅提升了萬卡級集群的能力,也為挑戰(zhàn)十萬卡集群打好了底子。
接下來,就是十萬卡的大場面了↓
二、集中火力,攻克跨地域集群難點。
?物理設(shè)施層“加班整活”
RDMA網(wǎng)絡(luò)對丟包和擁塞是“零容忍”的,但是,從數(shù)據(jù)中心內(nèi)部可以肆意狂奔的“陽關(guān)道”,到數(shù)據(jù)中心之間路窄車多的“獨木橋”,堵車在所難免。
為此,百度百舸團(tuán)隊專門設(shè)計了一套無擁塞網(wǎng)絡(luò)機(jī)制,借助流量工程的思路進(jìn)行流量調(diào)度。
簡單講,就是在數(shù)據(jù)中心互聯(lián)出口部署自研的流量控制器,根據(jù)訓(xùn)練任務(wù)的模型特征,將需要跨地域的訓(xùn)練任務(wù)流量均勻地調(diào)度到出口鏈路上,避免擁塞。
長距離的高延時問題,會讓傳統(tǒng)的擁塞控制不靈。
針對這種“基因型BUG”,百度百舸的方案是通過自研交換機(jī)代答,來縮短端側(cè)感知擁塞的響應(yīng)時間,降低高延時的負(fù)面影響。
?集合通信鏈路層“持續(xù)優(yōu)化”
百度自研的集合通信庫BCCL,可以根據(jù)不同的網(wǎng)絡(luò)時延場景,動態(tài)調(diào)整Buffer大小。
比如跨區(qū)域高時延場景,增加Buffer大小,在不產(chǎn)生擁塞的同時將鏈路打滿,讓網(wǎng)絡(luò)吞吐量發(fā)揮到極致。
同時,在模型訓(xùn)練中,要讓所有的GPU工作量都飽和,沒人閑著摸魚,效率才能最大化。
這依賴于網(wǎng)絡(luò)傳輸和GPU之間的默契配合,它們就像流水線工人一樣絲滑默契。
但是跨域集群的高時延,會讓原來GPU和網(wǎng)絡(luò)之間的那種默契配合被打亂節(jié)奏,導(dǎo)致GPU閑置摸魚,訓(xùn)練效率下降。
百度集合通信庫BCCL通過優(yōu)化Channel算力排布,在借助大Buffer將網(wǎng)絡(luò)能力打滿的基礎(chǔ)上,成功讓GPU滿負(fù)荷運(yùn)轉(zhuǎn),高效率的流水線又開起來了。
在這里,BCCL對算力的排布優(yōu)化主要包括兩個層面↓
第一是增加Channel數(shù)量,提升GPU中參與通信的SM資源量,并在一條鏈路上實現(xiàn)多Channel并發(fā)傳輸,讓集合通信性能跑滿。
第二是優(yōu)化Channel結(jié)構(gòu),根據(jù)底層鏈路特征(時延、帶寬),進(jìn)行合理分組,盡量避免或者減少使用性能差異大的鏈路做強(qiáng)同步通信。
vs
?計算框架層“卷到極致”
在GPU計算時代,即便是單一數(shù)據(jù)中心內(nèi)部,整個端到端鏈路也存在不同能力的連接方式,比如NVLink、PCIe、RDMA網(wǎng)絡(luò)等等,各自的帶寬和延遲差異明顯。
如今,再跨地域,又額外增加了長距離RDMA這種差異化鏈路。
因此,必須要根據(jù)網(wǎng)絡(luò)拓?fù)渲贫ǜ鼮楹线m的并行策略,讓計算和網(wǎng)絡(luò)進(jìn)一步深度融合,才能讓計算效率最大化。
百度百舸的計算框架層能夠比較不同流量類型對各種鏈路的容忍度,然后對訓(xùn)練任務(wù)作出并行策略調(diào)整,從而卷出了最優(yōu)的集合通信性能來承載最佳模型訓(xùn)練性能。
?長距傳輸“無損保護(hù)倒換”
跨區(qū)的傳輸線路相比數(shù)據(jù)中心內(nèi)部脆弱了許多,比如城市施工挖斷了光纖。
一條光纖被挖斷,就可能影響幾十個400G端口(每條光纖可承載數(shù)十T帶寬)。
傳統(tǒng)高可用保護(hù)方案會導(dǎo)致大量機(jī)器的50ms丟包,從而造成訓(xùn)練進(jìn)度受損,非常影響客戶體驗。
為此,百度百舸團(tuán)隊設(shè)計了傳輸無損保護(hù)倒換方案,通過線路側(cè)雙活、支路側(cè)緩存并行檢測的手段,實現(xiàn)無損倒換,數(shù)據(jù)不丟失、不重傳,訓(xùn)練業(yè)務(wù)0中斷。
好了,十萬卡集群因為距離產(chǎn)生的難關(guān),都被百度百舸逐一搞定了,距離不再是問題。
那么這就萬事俱備了嗎?不!還差好幾萬張卡呢。
國內(nèi)的情況你懂的,成套的一萬張卡都很難湊齊,更不用說十萬張卡。
怎么辦呢,只能一云多芯,最終組成多芯混合的十萬卡集群。
本來跨區(qū)域就夠難了,再加上混合多芯,真是難上加難。
但你大可放心,“多芯”難題,百度百舸早就搞定了,上一期我們就介紹過,傳送門在這里:《不是GPU買不起,而是多芯混合更有性價比》。
還有如何搭建多芯混合集群動畫,大家可以一起復(fù)習(xí)
百度預(yù)判了趨勢,早早為?萬卡集群做好了一切準(zhǔn)備:距離不是問題、多芯混合不是問題,穩(wěn)定性持續(xù)加碼…
實測數(shù)據(jù)顯示,在百度百舸4.0的加持之下,100KM以內(nèi)跨地域范圍內(nèi)訓(xùn)練性能單?訓(xùn)練任務(wù),性能折損低于4%,混合多芯集群相對單芯集群,訓(xùn)練效能損耗低于5%!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.