深夜的路口,一台小黃停在紅燈前。引擎在轉、跳表在跳、數字一格一格往上加——可是後座沒有人。
你付的每一塊錢,錶都老實記了下來。只是那些錢,沒有把任何人送到任何地方。
說白了,這就是很多人的 GPU 現在的樣子:錶跳得很勤,效能卻一直跳票。
我是黃冠澔,GitHub 上叫 rich7420,目前是UCSD intern,最近主要研究Ai infra、RL、Quantum。
接下來 30 天,我不當講師,當你的老司機。GPU就是我們搭的小黃,我開了夠久,早就知道「錶跳得再勤,也不代表後座真的有人」。這條路我自己繞過、也多付過冤枉錢,所以特別想帶你認一次路。
上車吧,我們把 GPU 抓來問一句:你到底有沒有在載客,還是只是空車跳表?
nvidia-smi 跳到 98%,你鬆一口氣:「卡有在做事。」
但 utilization 這個數字,說穿了只是在"講過去這一小段時間,GPU 上有沒有至少一顆 kernel" 在跑。它回答「錶有沒有在跳」,可沒回答「有沒有載到客」。一張卡可以整整一分鐘掛在 100%,卻連一個 token 都沒往前推。
講白一點:這種 GPU 就是薪水小偷。人在工位、電費照付、util 亮紅燈給你看很忙,實際上一件正事都沒做。而且你有八個這種員工。
全季就一句口令,會一直出現:忙 ≠ 有用;跳表 ≠ 載客。
先把工具擺清楚。你不用一次學會十個工具,只要知道每個工具是回答哪個問題的就好:

30 天的弧線也就三個字:猜 → 量 → 證。前面幾天我們會拆穿「表象層」為什麼會騙人,中間階段我們會學會「量」,最後用一份優化前後的 diff,把「我覺得變快了」變成「wall time 少了三成」。
今天,我們待在最上面那層===>
因為帳單,就是從這裡寄來的。
一台小黃有兩個數字。
一個是跳表:只要引擎發動、輪子有在轉,它就跳。這是 nvidia-smi 的 util%,也是你雲端帳單上的每一秒。
另一個是載客里程:真的把客人往目的地送了多遠。這在 GPU 上叫 MFU(Model FLOPs Utilization),也就是你的模型「真正需要的那些浮點運算」,佔了這張卡「理論峰值」的百分之幾。一句白話:
MFU = (每秒推進的有效運算) ÷ (這張卡理論上每秒能做的運算)
跳表跳得快,不代表里程在走。中間那些空轉(等資料、等別張卡、kernel 之間的空檔、搬記憶體)全部照樣計費,卻一公尺都沒載到。
誤解一:util 高就是效能好。 util 只看"有沒有 kernel 在跑",不看那顆 kernel 有沒有把算力吃滿。NCCL 通訊很重的多卡訓練,常常 util≈100%,但實際 SM 活躍度只有 10–20%——跳錶的錢跳滿格,車還在原地。
誤解二:MFU 應該接近 100%。 不會。真實世界的大規模訓練,MFU 落在哪?PaLM 約 46%、Llama 3 約 38–43%、公開紀錄裡很猛的 MegaScale 也才 55.2%;純 matmul 的理論天花板大概就 70–80%。所以你的 run 如果是 40%,代表超過一半的 GPU 時間,根本沒花在"模型必要的 FLOPs"上。這不是你廢,這是常態,也正是我們接下來有事可做的地方。
誤解三:要 profiling 得先架一套很重的工具。 不用。這系列大多數的圖,你用公開的 profile 檔就能跟著看;真的要自己抓,一行 nsys profile 就開戰了。門檻沒你想的高。
現在打開哪個專案都"含機量爆表",AI 參與度拉滿。但含機量爆表 ≠ 機器真的有在做事,很多卡是吃了電還在發呆。講成本可能對各位來說最有感,以下是 2026-08-01 覆核的 8×H100 隨選價(每 GPU-hr):
| 雲 | 代表 SKU | 節點 $/hr | $/GPU-hr |
|---|---|---|---|
| AWS | p5.48xlarge | $55.04 | ~$6.88 |
| GCP | a3-highgpu-8g | $88.49 | ~$11.06 |
| Azure | ND96isr H100 v5 | $98.32 | ~$12.29 |
(順帶戳破一個都市傳說:三大雲不是同價,同樣 8×H100,AWS 這時候的每卡單價明顯低於 GCP/Azure,別在會議上講錯。)(怎麼跨雲自動挑最便宜、又有貨的那朵,有興趣可以參考 SkyPilot。)
現在把 MFU 乘進去。假設你在 AWS 跑,帳面 $6.88 / GPU-hr,但 MFU 只有 40%:
有效成本 = 帳面價 ÷ MFU
= $6.88 ÷ 0.4
≈ $17.2 (每 GPU-hr 的「真正有用功」)
帳單寫 $6.88,可是你真正買到的「載客里程」,每小時得花 $17.2 才換得到。中間那 2.5 倍,付了全額、只載到 0.4 支的客,就是你當雲端盤子繳的算力智商稅。錶跳得再勤,效能還是跳票。
今天的主調圖(形式 A|跳表 vs 里程): 左邊一支跳到滿格的紅色錶(util 98%、帳單照跳),右邊一支綠色里程表卻只走了 40%。一眼看懂:你付了整支錶,只載到 0.4 支的客。

今天只要記得一件事:nvidia-smi 的百分比是跳表,不是里程。 它讓你安心,但不讓你結案。
不用焦慮,也不用一次學完,這系列每天只多給你一個判準。明天 Day 2,我們把「錢到底花去哪了」拆成三種死法:算不動、搬不完、還是在發呆,先建立一個能套一整季的判斷框架。
錶還在跳。我們明天開始,目標是讓它真的載到客。
p5.48xlarge、GCP a3-highgpu-8g、Azure ND96isr H100 v5。深夜小黃那段一出來就懂了,nvidia-smi 真的很像錶在跳、客人卻還沒上車;把 util 98% 跟 MFU 40% 直接對照,帳單和里程差這麼多,畫面超有感。連 8×H100 的跨雲價差也一起攤開,看起來很忙的卡,原來可能只是空轉得很敬業。我手邊有多的 Lovable 額度想送給有緣人,有興趣可從連結看看我的系列。 https://ithelp.ithome.com.tw/articles/10401174