幫大模型提速80%,華為拿出昇騰推理殺手锏FlashComm,三招搞定通算瓶頸
在今年 2 月的 DeepSeek 開源周中,大模型推理過程中并行策略和通信效率的深度優(yōu)化成為重點之一。
近日,華為數(shù)學(xué)家出手,祭出 FlashComm,三箭齊發(fā),解決大模型推理通算難題:
- FlashComm1: 大模型推理中的 AllReduce 通信優(yōu)化技術(shù)。將 AllReduce 基于通信原理進行拆解,并結(jié)合后續(xù)計算模塊進行協(xié)同優(yōu)化,推理性能提升 26%。
- FlashComm2:大模型推理中以存換傳的通信優(yōu)化技術(shù)。在保持計算語義等價的前提下,實現(xiàn) ReduceScatter 和 MatMul 算子的計算流程重構(gòu),整體推理速度提升 33%。
- FlashComm3: 大模型推理中的多流并行技術(shù)。充分挖掘昇騰硬件的多流并發(fā)能力,實現(xiàn) MoE 模塊的高效并行推理,大模型吞吐激增 30%。
隨著大語言模型(Large Language Models, LLMs)規(guī)模的指數(shù)級擴張,其部署形態(tài)也隨之變化,顯卡配置朝著規(guī)模化、集約化演進。從神經(jīng)網(wǎng)絡(luò)時代的單卡部署,到稠密模型時代的多卡 / 單節(jié)點部署,再到以最近發(fā)布的 DeepSeek V3/R1 模型為代表的混合專家(Mixture of Experts, MoE)模型,大語言模型甚至?xí)捎脭?shù)百卡組成的集群和超節(jié)點來部署。
可以說,模型推理早已不是「單兵作戰(zhàn)」,而是一場高協(xié)同的「群體作戰(zhàn)」。而在這基于集群的大模型推理中,集合通信操作就像是一群工人協(xié)作蓋房子時傳遞材料和信息的方式,能讓多個計算節(jié)點高效配合完成任務(wù)。
有一些常用集合通信操作,比如全量規(guī)約(AllReduce)可以想象成一群工人各自收集了不同區(qū)域的建筑材料數(shù)據(jù),全量規(guī)約就是把所有工人手里的數(shù)據(jù)匯總到一個地方,進行求和、求平均值等計算。在大模型里,多個計算節(jié)點可能各自計算了一部分參數(shù)梯度,AllReduce 操作能把這些梯度匯總起來,計算出最終的梯度,用于更新模型參數(shù)。
再比如全量收集(All-Gather)則類似于所有工人把自己手頭的材料清單共享給彼此,這樣每個人都知道所有材料的情況。在大模型里,All-Gather 操作能讓每個計算節(jié)點都獲取到其他節(jié)點計算出的部分結(jié)果,將分散在各節(jié)點的數(shù)據(jù)聚合到所有節(jié)點。還有像規(guī)約散射(Reduce-Scatter)操作則相當(dāng)于先把所有建筑材料按類別匯總,再重新分配給不同工人。在大模型中,Reduce-Scatter 先對數(shù)據(jù)進行規(guī)約計算,再將計算結(jié)果分散到各個節(jié)點,常用于在多個節(jié)點間分攤計算壓力。也還有像 All-To-All 這樣允許所有節(jié)點之間相互交換數(shù)據(jù),讓每個節(jié)點都能獲取到其他節(jié)點的相關(guān)數(shù)據(jù)的操作。
這些形形色色的集合通信操作,大多用來支持在集群上運行大模型推理時的并行策略,比如常見的張量并行(TP)是把一個大的張量(可以理解為模型的參數(shù)矩陣)拆分成多個部分,分配到不同的計算節(jié)點上計算。在這個過程中,節(jié)點之間需要頻繁交換數(shù)據(jù),比如 All-to-All 操作就經(jīng)常被用到,讓各個節(jié)點能獲取計算所需的張量片段,實現(xiàn)高效的并行計算。
再如數(shù)據(jù)并行(DP),其將輸入數(shù)據(jù)分成多個批次,在不同節(jié)點上同時處理不同批次的數(shù)據(jù)。各節(jié)點計算完各自批次數(shù)據(jù)對應(yīng)的梯度后,需要用 AllReduce 操作把這些梯度匯總起來,計算出平均梯度,再將更新后的模型參數(shù)發(fā)送給所有節(jié)點,保證各節(jié)點使用相同的模型。
而被 MoE 帶火的專家并行(EP)就像工廠的流水線,不同的計算節(jié)點負責(zé)模型不同專家的計算。在這個過程中,節(jié)點之間需要傳遞中間計算結(jié)果,類似廣播操作會把上一層的輸出傳遞給下一層的節(jié)點,確保專家正常激活運行。
由上可以看出,集合通信操作是大模型推理中多個計算節(jié)點協(xié)作的「橋梁」,不同的并行策略(TP、DP、EP)通過這些操作實現(xiàn)高效的數(shù)據(jù)交互和計算,從而加速大模型的推理過程。
通信:Scaling law 頭頂?shù)臑踉?/span>
隨著集群規(guī)模和推理并發(fā)數(shù)的飛速增長,在大語言模型的推理中,通信面臨的壓力也在不斷變大,在推動應(yīng)用通算融合技術(shù)上還有一些問題需要解決:
1) 隨著 MoE 模型規(guī)模的持續(xù)擴張,專家數(shù)量與參數(shù)總量呈指數(shù)級增長,單個模型參數(shù)突破千億級別已成常態(tài)。盡管 MoE 通過稀疏激活機制僅調(diào)用部分專家,但海量參數(shù)的存儲與調(diào)度仍對硬件構(gòu)成嚴峻挑戰(zhàn)。MoE 模型的稀疏計算特性雖能提升推理效率,卻引入了更復(fù)雜的流程與通信瓶頸。專家路由、數(shù)據(jù)分發(fā)與結(jié)果聚合等環(huán)節(jié)緊密耦合,通信帶寬需求隨專家數(shù)量呈平方級增長,極易引發(fā)網(wǎng)絡(luò)擁塞;而流程各階段的強依賴性使得計算與通信難以重疊,硬件資源長期處于「饑餓」狀態(tài)。如何實現(xiàn)通信與計算的深度協(xié)同成為關(guān)鍵難題。
2) 傳統(tǒng)的通信方案中小并發(fā)推理場景下常用的通信策略 —— AllReduce,存在著一些缺陷:
- AllReduce 在通信原理上, 等價于 ReduceScatter 和 AllGather 的組合。直接使用 AllReduce 算子,在通信次數(shù)上較少,適用于小并發(fā)場景。但在大并發(fā)場景下,AllReduce 算子對比拆分的 ReduceScatter 和 AllGather,收益并不明顯。
- Transformer 結(jié)構(gòu)中 AllReduce 算子之后,往往會有一些其他計算操作,如 RMSNorm、以及 MLA 中的降維計算等。這些計算過程會在不同卡上執(zhí)行相同的計算操作,在小并發(fā)場景下可能耗時不高,但在大并發(fā)場景下,會帶來不小的代價。
3) 當(dāng)前主流的并行方案是張量并行 (TP) 在應(yīng)用 AllReduce 時也面臨一些問題。TP 方案通過卡間均勻切分權(quán)重的方式,雖然能夠有效降低每張卡上加載的模型權(quán)重大小,但卡間求和的 AllReduce 操作在大模型端到端推理時延中占比較高;在多節(jié)點的部署場景中,跨節(jié)點的帶寬限制進一步加劇了整網(wǎng)時延劣化。
針對上面三個難題,華為團隊用數(shù)學(xué)補物理,給出了他們的系列性創(chuàng)新解法,把加速大模型推理提到了新的高度。
項目鏈接:https://gitcode.com/ascend-tribe/ascend-inference-cluster/tree/main/FlashComm
FlashComm:別讓通信扼住算力的咽喉
FlashComm1 通算重組:給通信裝上「智能壓縮器」
傳統(tǒng) AllReduce 的笨重通信方式如同用集裝箱運輸散裝貨物,華為團隊則通過數(shù)學(xué)手段,基于昇騰硬件特點,將其拆解重構(gòu):先將數(shù)據(jù)智能分揀(ReduceScatter),再對精簡后的核心信息進行廣播(AllGather)。在這兩個階段之間,創(chuàng)新性插入數(shù)據(jù)投影降維和 INT8 動態(tài)量化技術(shù),使后續(xù)通信量直降 35%,關(guān)鍵計算量銳減至 1/8。
這種「先濃縮再傳遞」的智慧,讓 DeepSeek 模型 Prefill 推理性能提升 22 ~ 26%,Llama3.1-70B 模型的 Decode 階段性能提升 14%,如同為數(shù)據(jù)洪流建造了分級疏導(dǎo)系統(tǒng)。
技術(shù)博客:https://gitcode.com/ascend-tribe/ascend-inference-cluster/blob/main/FlashComm/ascend-inference-cluster-flashcomm.md
FlashComm2 以存換傳:重新定義計算與通信的平衡
面對 TP+AllReduce 架構(gòu)的通信瓶頸,團隊發(fā)現(xiàn)了一個精妙的數(shù)學(xué)等價關(guān)系:通過調(diào)整矩陣乘法的并行維度,在保持計算結(jié)果精確性的前提下,將原本需要傳輸?shù)娜S張量「壓扁」成二維矩陣。這種維度魔法配合 INT8 量化技術(shù),使得 DeepSeek 模型在注意力機制轉(zhuǎn)換階段的通信量驟降 86%,整體推理速度提升 33%。
這就像在保證貨物完整性的前提下,把運輸集裝箱體積壓縮了五分之四,讓數(shù)據(jù)傳輸真正實現(xiàn)「輕裝上陣」。
技術(shù)博客:https://gitcode.com/ascend-tribe/ascend-inference-cluster/blob/main/FlashComm/ascend-inference-cluster-flashcomm2.md
FlashComm3 多流并行:打破計算鏈條的串行桎梏
針對上文提到的最后一個問題,華為團隊提出了昇騰親和的大模型推理多流并行技術(shù)。
在 MoE 模型的推理過程中,華為團隊如同拆解精密鐘表般對 DeepSeek V3/R1 的計算流程展開深度剖析。通過數(shù)學(xué)重構(gòu)將原本環(huán)環(huán)相扣的激活通信、門控決策等五大模塊拆解重組,借助昇騰硬件的多流引擎實現(xiàn)三股計算流的精準并行:當(dāng)一組數(shù)據(jù)正在進行專家計算時,另一組數(shù)據(jù)已開啟門控決策,而第三組數(shù)據(jù)已在傳輸途中 —— 這種「計算不停歇」的流水線設(shè)計,使關(guān)鍵路徑耗時大幅縮短。
更巧妙的是,通過 TP8 分片與流水線技術(shù)的交織運用,在多卡并行時仍為系統(tǒng)騰出 2GB 內(nèi)存空間,如同在高速運轉(zhuǎn)的引擎內(nèi)部完成精密的空間重組。實際部署中,DeepSeek 模型的 Prefill 階段提速超 10%,Decode 吞吐激增 25%-30%。
技術(shù)博客:https://gitcode.com/ascend-tribe/ascend-inference-cluster/blob/main/FlashComm/ascend-inference-cluster-flashcomm3.md
總結(jié)與展望
針對 DeepSeek 這類超大規(guī)模 MoE 模型的多機多卡推理場景中的通信挑戰(zhàn),華為團隊提出了三項關(guān)鍵技術(shù),其中 FlashComm 技術(shù)基于相同的集合通信邏輯替大模型推理中的 AllReduce 通信算子,在不改變網(wǎng)絡(luò)并行方式的前提下,充分利用網(wǎng)絡(luò)中低維度數(shù)據(jù)或低比特數(shù)據(jù)特性進行通信算子位置的編排,實現(xiàn)通信數(shù)據(jù)量的降低和通信時延的優(yōu)化,同時消除了計算流程中的冗余計算,進一步提升了網(wǎng)絡(luò)端到端推理性;FlashComm2 技術(shù)充分考慮網(wǎng)絡(luò)并行過程中數(shù)據(jù)特征的維度變化,基于相同的集合通信邏輯將張量并行中的原有通信算子進行替換,并對新的通信算子在網(wǎng)絡(luò)中的位置進行編排;FlashComm3 技術(shù)通過對 MoE 架構(gòu)的細致理解,通過計算流程的等價變換,盡可能提升模型計算的并行度,并借助昇騰硬件提供的多流能力實現(xiàn)并行,進而大幅提升大模型的推理吞吐。
未來,圍繞著超大規(guī)模 EP 下的多流并行、權(quán)重自動預(yù)取、模型自動多流并行等方向,華為團隊將進行更多的創(chuàng)新,進一步提升大模型推理的系統(tǒng)性能。
同時,隨著大語言模型特別是 MoE 架構(gòu)的進一步擴展,其參數(shù)規(guī)模、專家數(shù)量與并發(fā)推理需求將持續(xù)增長,對通信、調(diào)度和資源協(xié)同會提出更高的要求。在這一趨勢下,華為昇騰不僅僅是硬件算力的提供者,更要構(gòu)建一個面向大模型推理的全棧生態(tài)體系。