利用率
3秒看懂
利用率是衡量人工智慧計算(尤其是深度神經網路訓練與推論)中,硬體、軟體、資料等資源被有效使用的程度。它不等於“裝置在忙”,而是追問“忙得是否有價值”。最常見的指標是算力利用率(MFU, Model FLOPs Utilization),即實際執行的有效數學運算量佔硬體理論峰值算力的比例。頂尖大型模型訓練中,MFU往往只有50%左右,其餘算力被記憶體搬運、通訊等待、指令排程開銷吞噬。利用率每提升一個百分點,都意味著數百萬美元的訓練成本節省或同等預算下更大的模型規模。
3分鐘產業解釋
在AI產業鏈中,“利用率”是一面照妖鏡,直接映出算力投資是否落在實處。買一張理論算力312 TFLOPS的GPU,跑訓練時真實吞吐量換算下來可能只有160 TFLOPS的有效浮點運算,相當於一半的錢打了水漂。這背後的原因不是硬體偷懶,而是計算和資料的供需錯配:計算單元要等資料從視訊記憶體搬到暫存器,要等其他GPU的梯度同步,要等流水線填充完畢。
產業上,利用率最佳化橫跨幾個層面:
- 運算元層面:通過矩陣乘法和注意力機制的極致實現(如FlashAttention)減少視訊記憶體讀寫,將更多時間還給計算。
- 架構與編譯器:XLA、TVM等自動進行運算元融合,消除中間結果視訊記憶體往返,讓GPU的Tensor Core持續滿載。
- 分散式策略:張量並行、流水線並行、序列並行等各自帶來通訊或氣泡開銷,降低利用率,需要巧妙排布以接近理想的線性加速比。
- 硬體設計:更高頻寬的HBM、更大容量的片上SRAM、NVLink/NVSwitch高速互聯,本質上都是為了讓計算單元“少等”。
雲端廠商和大型AI實驗室將利用率視作核心運營指標。對他們而言,一張GPU早期可能因為最佳化不足只發揮30%潛力,隨著軟體棧成熟,MFU爬升到60%就是巨大的成本壓縮。對晶片設計公司(如NVIDIA、AMD、華為、初創企業),自家的GPU紙面引數強不算贏,最終要看客戶實際跑出多高的利用率,這嚴重依賴CUDA生態和編譯器質量。
15分鐘專家深入
當討論邁向專家級,必須拆解利用率的多個維度,並理解它們如何交叉影響。單純的“GPU使用率”(nvidia-smi看到的百分比)極易誤導:只要GPU有kernel在執行,使用率就顯示100%,但那些計算可能低效、重複、或只是等待同步的空轉指令。真正的利用率要分層審視:
-
算術強度與屋頂線模型 每個計算任務有算術強度(FLOPs per byte of data),硬體有算力峰值和頻寬峰值。若算術強度低於機器平衡點,任務就是頻寬瓶頸,算力利用率被記憶體頻寬鎖死。例如,注意力機制的計算量相比大矩陣乘偏低,但記憶體訪問密集,是拉低整體MFU的主因之一。
-
MFU的精確定義 MFU = 實際每秒有效浮點運算次數 / 理論峰值每秒浮點運算次數。通常用前向+反向的總FLOPs需求除以訓練一步的時間,再比上理論峰值。這裡“有效”排除了重計算等冗餘,但仍包含一些架構開銷。嚴格來說,只用模型理論最少乘積累加量來衡量,才能暴露實現的浪費。
-
分散式利用率 在多卡訓練中,僅算單卡MFU不夠。需引入算力效率(Hardware FLOPs Efficiency, HFE) 和擴充套件效率。流水線並行會產生氣泡(idle time),氣泡比例直接減損整體利用率。MoE模型中,All-to-All通訊佔用時間,此時GPU算力閒置。即使單卡MFU保持在55%,擴充套件到千卡可能整體效用只有40%。
-
視訊記憶體頻寬利用率與重算 啟用重算(activation recomputation)是用計算換視訊記憶體。它增加了總FLOPs需求,若最佳化得當,雖然單次前向MFU下降,但節省的視訊記憶體使得更大batch size成為可能,提高了整體吞吐和硬體佔用率。這是利用率的“以量換量”思路。
一個形象的ASCI示意圖可概括訓練中時間軸的碎片化:
[ 矩陣乘 ]---[ 等待梯度同步 ]---[ 矩陣乘 ]---[ 資料載入空閒 ]---...
| 計算 | | 通訊與IO | | 計算 | | 流水氣泡 |
最佳化的目標就是壓縮非計算間隔,將時間軸擠壓成幾乎連續的密集計算塊。
技術原理(最深)
利用率的根基是硬體執行模型與軟體任務對映的不完美。我們以單GPU訓練一個Transformer層為例,拆解其微觀迴圈。
關鍵路徑與佔用率(occupancy) 當GPU的一個流多處理器(SM)發射一批執行緒塊(thread block)時,它能並行執行warp(32執行緒)組。若共享記憶體或暫存器用量過高,SM上同時駐留的warp數量減少,一旦一個warp因訪存而停頓,SM無法快速切換到其他就緒warp,造成延遲隱藏失敗——計算管線空轉。佔用率 = 活躍warp數/理論最大warp數。高佔用率是充分利用率的前提,但過高的暫存器使用反而會降低佔用率,形成悖論。
計算單元的時間片爭奪 在A100/H100等GPU中,Tensor Core專門處理矩陣乘累加,速度遠超標量/向量單元。但前提是輸入資料已在暫存器中排好指定版面配置。版面配置轉換、分塊迴圈、地址生成皆由其它單元完成。若這些輔助操作成為瓶頸,Tensor Core在“張口”等資料。硬體利用率 = ∑(TensorCore繁忙週期) / 總時間。優秀的庫(如cuBLAS、CUTLASS)可以保持Tensor Core佔用超過80%。
記憶體子系統的層級與資料搬運
視訊記憶體(HBM)→ L2 Cache → L1/SM共享記憶體 → 暫存器。每一級相差數量級的頻寬和延遲。要避免計算單元捱餓,必須完美排程資料搬運,儘可能重用片內資料。Warp級程式設計(如使用CUDA的__shfl_sync指令交換暫存器資料)可極致利用暫存器頻寬。軟體流水線技術將Global->Shared記憶體傳輸與計算重疊:
時間軸:
|--[Load tile k]--|--[compute tile k]--|--[Load tile k+1]--|--[compute tile k+1]--|...
實現雙緩衝或三緩衝,掩蓋訪存延遲。
通訊與計算重疊 在多卡張量並行中,一次矩陣乘法後需進行AllReduce聚合結果。理想情況是反向計算梯度時,同時啟動通訊。但這要求精細控制CUDA流(stream)和依賴關係,否則通訊與計算序列,利用率斷崖。Megatron-LM通過將計算圖中的通訊操作後移,最大限度重疊,達到近似的隱藏。
量化與稀疏性利用 FP8訓練利用更窄的資料型別提升吞吐,但轉換和縮放計算引入額外開銷。若硬體有原生FP8 Tensor Core支援,且軟體進行細粒度縮放管理,可帶來接近2x的計算吞吐量提升(理論峰值吞吐),但利用率(實際/理論)並不直接翻倍,甚至可能因額外開銷而輕微下降。稀疏性(如2:4結構化稀疏)則要求矩陣模式匹配硬體加速單元,編解碼開銷需小於節省的計算量,才能實際提升利用率。
模型FLOPs計算標準 業界廣泛採用的是:對於矩陣乘 A(m×k) × B(k×n) 計 2×m×n×k FLOPs。Transformer 層中,QKV 投影、注意力分數、加權求和、FFN 兩次線性變換等均可按此計算。分析時需排除 residual add 和 layer norm 等微小項。從訓練日誌反推利用率時,實際耗時包含最佳化器步驟、梯度裁剪、日誌記錄等,需剔除這些非模型計算。
由於本次無任何外部資料來源,上述機制均為對現代GPU計算體系的定性概括,未引用具體硬體代際的數值頻寬、暫存器數量等。讀者應結合所用硬體技術手冊進行量化分析。
技術演進史
手工最佳化時代(2012-2016) AlexNet時期,用CUDA手寫卷積核,利用率主要靠工程師直覺。當時關注點在於“讓GPU跑滿”,很少提MFU。cuDNN庫推出後,卷積隱式降低為矩陣乘,利用率大幅躍升。
架構與編譯器覺醒(2017-2020) PyTorch/TensorFlow成為主流,但運算元粒度較粗,中間張量頻繁出入視訊記憶體。XLA和TVM引入圖級最佳化和自動運算元融合,將利用率推上新臺階。同期,混合精度訓練(FP16)配合Loss Scaling,使Volta架構Tensor Core利用率爆發。
大型模型時代並行爆炸(2020-2023) GPT-3等大型模型逼迫分散式成為標配。NVIDIA的Megatron-LM、微軟DeepSpeed分別最佳化張量並行和ZeRO資料並行,極力平衡計算與通訊。此時MFU成為評測分散式方案的核心指標:DeepSpeed ZeRO-Infinity論文中專門度量了算力效率。即便頂尖團隊,據報道千卡規模訓練的MFU也經常在30%-50%區間(此為行業常見經驗數值,非本次檢索所得)。
硬體-軟體協同設計(2023-今) H100引入Transformer Engine(FP8),和NVLink Switch大幅擴頻寬。FlashAttention-2/3進一步壓榨注意力運算的GPU佔有率,利用更精細的線上分塊和非同步搬運,將注意力部分的利用率從以往不到20%提升至50%以上(定性經驗)。下一代晶片開始內嵌專用注意力加速器,從硬體層面直接提升這類瓶頸運算元的利用率。
技術路線對比(量化表)
注:因檢索失敗,下表數字為基於行業公開討論的示意區間,不代表精確基準,僅供思路參考。
| 最佳化技術 | 典型MFU提升幅度(估算) | 關鍵技術機制 | 適用場景 | 代價/限制 |
|---|---|---|---|---|
| 運算元級手工最佳化(FlashAttention) | +10 ~ +30 百分點(注意力部分) | 分塊、重計算、減少HBM讀寫 | 大序列長度Transformer | 需要專門實現,通用性差 |
| 自動運算元融合(XLA/TVM) | +5 ~ +20 百分點 | 消除中間變數,端到端kernel生成 | 通用推論/訓練 | 編譯時間增長,除錯困難 |
| 混合精度(FP16/BF16) | ~2x 理論吞吐(但MFU計算方式改變) | 利用Tensor Core,降低視訊記憶體壓力 | 大部分現代GPU訓練 | 需損失縮放,部分運算元不適用 |
| 張量並行+通訊重疊 | MFU維持非分散式下的80%-95%(對照無疊加時<50%) | 非同步AllReduce/ReduceScatter與計算重疊 | 單層超模型,跨卡切分 | 對卡間頻寬要求極高,受拓撲限制 |
| 流水線並行微批次排程 | 氣泡率從預設30%-50%降至<5% | 交錯式1F1B排程、雙向流水 | 層數多的大型模型 | 引入峰值視訊記憶體壓力,排程複雜 |
| 啟用重計算 | 整體訓練吞吐+10%~30%(通過擴大batch) | 反向重算中間啟用 | 視訊記憶體受限的大型模型 | 總FLOPs增加約1.3x,降低單步MFU |
| FP8訓練(硬體原生支援) | 實際計算吞吐量可提升約1.5-2倍,但MFU可能因額外開銷略有下降(對比FP16) | Transformer Engine,細粒度縮放 | H100等新一代GPU | 需模型/架構適配,數值穩定性驗證 |
表注:具體數值高度依賴模型結構、規模、硬體型號及軟體版本,未檢索到精確資料前均標註為“估算”。
上下游
上游:硬體設計與IP
- GPU/TPU/NPU 晶片:內部計算單元與快取層次結構、互聯頻寬決定了利用率的天花板。如HBM世代、TensorCore代數、SM內部寄/共享記憶體容量。
- 互聯技術:NVLink、PCIe、InfiniBand、自研匯流排。通訊頻寬直接影響分散式利用率。
- 伺服器及散熱:供電、散熱限制會降頻,拉低實際峰值,間接影響利用率絕對值。
中游:基礎軟體與生態
- CUDA/cuDNN/cuBLAS:底層庫效率是利用率基礎。
- 編譯器棧:TVM、XLA、MLIR、Triton語言等,在上層Python與底層PTX之間搭建最佳化橋樑。
- 分散式架構:Megatron、DeepSpeed、PyTorch FSDP、Colossal-AI。
下游:AI應用與服務
- 雲端算力平台:AWS、Azure、GCP及國內阿里雲端、華為雲端的GPU例項,利用率直接影響定價和毛利率。
- 大型模型公司:OpenAI、Anthropic、Google DeepMind及國內各LLM廠商,訓練成本與利用率強相關。
- AI推論服務:線上推論的請求併發性影響GPU排隊和batch效率,低利用率抬升單次呼叫成本。
關鍵指標
- MFU(Model FLOPs Utilization):最重要指標。計算公式:
(模型理論FLOPs * tokens數) / (訓練步數 * 單步時間) / 硬體理論峰值FLOPs。通常只計算矩陣乘等大運算元,排除norm和殘差。 - 算力效率(Hardware Efficiency):類似MFU,但可能把通訊、排程等一切開銷都視為分母。
- 記憶體頻寬利用率:
實際讀寫頻寬 / 理論頻寬上限。通過profiling工具測得,用以診斷是否頻寬瓶頸。 - GPU佔用率(Occupancy):SM上活躍warp/最大warp比例,是底層微觀指標。
- 擴充套件因子(Scale-up efficiency):N卡吞吐量 / (單卡吞吐量 × N)。理想為100%,實際衰退部分反映通訊和氣泡利用率損失。
- 流水線氣泡率(Bubble ratio):流水線各階段總空閒時間 / 總執行時間,氣泡越小利用率越高。
在上述指標中,沒有任何一個能單獨講述完整故事。例如,高記憶體頻寬利用率可能因為大量冗餘讀寫,低MFU照樣發生。
供需與市場資料
由於資訊檢索失敗,本節全部採用定性分析及行業常識,不包含特定來源數字。
供給端:算力晶片的產能(如CoWoS封裝限制)影響著可部署的總等效算力。當供應緊張,雲端廠商和AI企業更注重已有GPU的利用率,以最大化產出。軟體最佳化工具的市場需求相應放大。
需求端:大型模型訓練對算力的渴求呈指數增長,促使企業追求極致的利用率。推論市場也自2023年起爆發,空閒的推論GPU資源池化、最佳化批處理排程,成為公共雲端廠商提升投入產出比的關鍵。
定價與利用率關聯:舉一個典型現象——GPU雲端例項的折扣售賣(如搶佔式例項),就是平台把常規算力中未能充分利用的碎片資源折價出售。如果平台最佳化足夠好,搶佔式庫存會縮小。這反映了宏觀利用率水平對市場定價的影響。
行業普遍共識(未引用特定報告)是,當前萬卡級大型模型訓練的全域性MFU仍偏低,很多情況下在30%-60%區間浮動。每提升10個百分點,被視為數千萬人民幣級別的成本節約,這也驅動了訓練基礎設施技術棧的快速迭代。
代表公司與資本對映
NVIDIA 硬體提供者與利用率生態的錨。CUDA生態使得其GPU的真實利用率往往高於競爭對手紙面算力更高的產品。通過持續釋出新的庫(cuDNN、TensorRT、Transformer Engine),不斷拉高開發者能輕易達到的利用率基線。資本市場上,NVIDIA的軟體護城河(本質是利用率護城河)的溢價極高。
AI超算與雲端平台(Google、Microsoft、Amazon、Oracle、CoreWeave等) 這些公司直接運營萬卡叢集,內部有專門的效能工程團隊最佳化利用率。提高利用率等於在不增加資本支出下擴大有效算力,直接影響損益表。Google TPU與自研編譯器XLA的緊耦合,使其在某些工作負載下可實現極高的批次利用。
大型模型創業公司與研究機構(OpenAI、Anthropic、Meta、DeepSeek等) 它們是利用率的極限壓榨者。例如,OpenAI長期招聘核心工程師,直接編寫CUDA/Triton kernel,定製通訊收集庫,以實現特定模型架構下前所未有的MFU。其技術壁壘部分體現在能將相同硬體跑出遠高於競爭對手的利用率。
系統最佳化初創企業 如開發分散式訓練架構的公司(如MosaicML被Databricks收購),以及專注於AI編譯器的新銳(Modular等)。資本投資邏輯在於:誰能成為“利用率的黑盒最佳化器”,誰就能分享巨大的算力節省蛋糕。
國內對應 華為昇騰、海光、寒武紀等硬體廠商,需自建CANN等軟體棧,利用率追趕CUDA生態是核心挑戰。大型模型獨角獸(智譜、MiniMax、月之暗面等)同樣在訓練基礎設施上投入重資源做利用率調優。達摩院、幻方(DeepSeek)等技術實力強的團隊,常通過開源方式分享改善利用率的策略,吸引資本關注其工程能力。
投資邏輯
- “軟硬同重”原則:投資AI計算不能只看GPU理論FLOPS。需考察平台能否提供維持高利用率的軟體棧(編譯最佳化、運算元庫、分散式架構)。這就是為何NVIDIA售價昂貴但份額高企,因為使用者為“可用利用率”買單。
- 算力利用率作為公司技術競爭力的體現:一級市場看大型模型團隊,可以索要其訓練效率報告:同樣模型架構和硬體下,單步時間與MFU達到多少。每比平均高5個百分點,意味著其訓練迭代速度具備顯著優勢。
- 週期因素:算力供應緊張時,利用率最佳化服務(如模型最佳化工具鏈)需求激增。投資這類軟體公司,其營收與GPU短缺程度正相關。
- 潛在陷阱:一些公司通過大量重計算或低效的激增大batch來提高硬體使用率,但這並不等效於高利用率。需區分“高吞吐”和“低效吞吐”。真實投資評估要看每元算力消耗產出的有效模型更新。
- 推論側利用率:雲端推論業務毛利極受利用率影響。能實現多模型混部、動態batch、請求合併,有效提升單GPU吞吐的推論引擎技術(如TensorRT-LLM、vLLM),蘊含巨大商業價值。
常見誤讀糾偏
誤讀1:“GPU利用率100% = 充分利用了算力”
真實情況:nvidia-smi或類似工具的GPU-Util只是表示過去取樣週期內至少有一個核心在執行的比例。它可能是重複的空操作、一直在等待資料的無效迴圈、或者是低端口占用但TensorCore空轉的場景。真正的算力利用率(MFU)要單算有效FLOPs,經常在工具顯示90%+時,MFU只有40%。
誤讀2:“MFU越高越好,應該無腦堆到最高” 不一定。追求極致MFU有時意味著採用更激進的運算元融合和通訊覆蓋,這往往會大幅增加程式碼複雜度和除錯難度,甚至犧牲一定的可移植性。而且某些場景下,允許一定的流水線氣泡換得更簡單的排程,可以更早開始訓練,贏得時間視窗。需綜合權衡“開發效率/易維護性”與“裝置資金成本”。另外,重計算犧牲單步MFU卻換來整體吞吐提升,也是反直覺的典型。
誤讀3(補充):“混合精度讓計算量翻倍,利用率自然也翻了倍” 錯誤。混合精度提升了單位時間完成的浮點運算數,但如果拿硬體理論FP32峰值做分母,真實利用率數值會下降。正確的比較需統一峰值基準,並區分有效FLOPs與低精度格式的等效換算。
學習路徑
- 基礎概念入門:閱讀《CUDA C Programming Guide》前5章,理解執行緒層次、記憶體模型和佔用率概念。
- 效能分析工具:學習NVIDIA Nsight Systems / Nsight Compute,學會讀懂SM效率、記憶體頻寬利用率、計算利用率等核心指標。
- 經典論文:深入Roof-line model(Williams et al. 2009);Transformer訓練的效能分析如《Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM》。
- 開原始碼閱讀:FlashAttention(原始碼+論文),理解如何減少I/O提升利用率。Megatron-LM的通訊重疊和流水線排程實現。
- 動手實踐:用一箇中型Transformer模型,分別用PyTorch預設訓練、啟用混合精度、手動插入
torch.cuda.Stream進行通訊重疊,用profiler觀察每步的利用率變化,對照MFU公式計算驗證。 - 追蹤前沿:每年MLSys、NSDI頂會,關注AI訓練/推論系統、編譯器最佳化的論文。
一句話總結
利用率是貫穿AI算力從沙子到智慧的成本密碼——它將硬體理論算力兌現為模型有效訓練量,是聯結晶片設計、系統軟體和演算法最佳化的核心技術經濟指標。
延伸閱讀與來源
由於本次檢索完全失敗,無法提供直接來源連結。建議讀者通過以下方向自行檢索獲取更具體的資料和手冊:
- 官方文件:NVIDIA CUDA Toolkit Documentation / GPU Performance Optimization Guide;TensorFlow XLA文件;PyTorch Profiler手冊。
- 頂尖論文與報告:Attention原理解析及FlashAttention系列;Megatron-LM和DeepSpeed的訓練效率章節;MLPerf Training基準測試結果(可比較不同系統利用率)。
- 行業分析:SemiAnalysis(知名半導體和AI系統分析平台)定期釋出各GPU微架構利用率分析;雲端廠商技術部落格(AWS/Google Cloud)中關於AI基礎設施最佳化的文章,常公佈類似MFU的例項資料。
- 經典綜述:“Roofline: An Insightful Visual Performance Model for Multicore Architectures”(S. Williams, et al.),它奠定了算力/頻寬受限分析的基礎。
提示:因未獲取到即時檢索資料,本文所有具體數字均為基於行業共識的定性描述或估算範圍,用於演示概念架構。實證應用時請務必以權威來源確認。