級(jí)到數(shù)據(jù)中心級(jí)梯隊(duì)與顯存帶寬瓶頸)
算力卡選型這件事我在過去兩年里被問過不下上百次問題幾乎都從同一句開場(chǎng)白開始“有沒有一份性能天梯圖我照著買就行”每次我都得先潑一盆冷水天梯圖能告訴你誰快誰慢但告訴不了你“這張卡放在你的機(jī)箱里、跑你的模型、連著跑三十天會(huì)不會(huì)出問題”。消費(fèi)級(jí)卡和數(shù)據(jù)中心級(jí)卡之間的差距從來不是一條平滑的曲線中間隔著供電、散熱、顯存容量、互聯(lián)帶寬、驅(qū)動(dòng)認(rèn)證、連續(xù)運(yùn)行穩(wěn)定性這六七道坎。所以這篇東西我不打算給你一張“第一名、第二名”的排行表那玩意兒網(wǎng)上到處都是而且大部分是拿廠商公布的峰值稀疏算力直接排序水分大得能養(yǎng)魚。我想做的是把 2025 年這個(gè)時(shí)間點(diǎn)上從消費(fèi)級(jí)到數(shù)據(jù)中心級(jí)的算力卡梯隊(duì)拆開來講清楚每一檔到底強(qiáng)在哪、弱在哪什么場(chǎng)景該停在哪一檔多花的那筆錢到底買到了什么。不管你是想在家搭一臺(tái)跑推理的小機(jī)器還是在給團(tuán)隊(duì)規(guī)劃一批訓(xùn)練節(jié)點(diǎn)都能在里面找到能直接對(duì)號(hào)入座的部分。下文涉及的具體型號(hào)我用檔位代號(hào)來指代——消費(fèi)級(jí)用 C 系、工作站級(jí)用 W 系、數(shù)據(jù)中心級(jí)用 D 系后面跟檔位字母。這樣做的原因是各家產(chǎn)品線更新太快具體型號(hào)半年就換一輪但檔位之間的性能關(guān)系和約束條件相對(duì)穩(wěn)定。你看的時(shí)候把自己手上的采購清單往這幾個(gè)檔位里套邏輯是通用的。1. 天梯圖的第一性問題你到底在比什么1.1 三條產(chǎn)品線的分界不是性能是約束條件很多人以為消費(fèi)級(jí)、工作站級(jí)、數(shù)據(jù)中心級(jí)是按性能高低劃分的這是個(gè)挺大的誤解。真實(shí)的分界線是約束條件性能只是約束條件滿足之后的自然結(jié)果。消費(fèi)級(jí)卡的設(shè)計(jì)前提是裝進(jìn)普通機(jī)箱、插普通電源、每天跑幾個(gè)小時(shí)游戲或創(chuàng)作軟件、機(jī)箱里有風(fēng)道但不算強(qiáng)。工作站卡的前提是裝進(jìn)塔式或機(jī)架工作站、可能要連續(xù)跑幾天渲染或仿真、要有專業(yè)軟件的驅(qū)動(dòng)認(rèn)證、顯存不能出錯(cuò)。數(shù)據(jù)中心卡的前提是裝進(jìn) 4U 或 8U 機(jī)箱、由專門的供電和散熱系統(tǒng)伺候、7×24 滿負(fù)荷跑三年、壞了要能熱插拔換掉。這四條前提一旦定下來芯片設(shè)計(jì)的方向就完全不同了。消費(fèi)級(jí)卡會(huì)把 PCB 做小、供電做夠用、顯存控制器做窄以控制成本數(shù)據(jù)中心卡會(huì)把供電相數(shù)堆到夸張、顯存用 HBM 堆到 8 層甚至 12 層、加一堆遙測(cè)和容錯(cuò)電路。你拿一張消費(fèi)級(jí)旗艦去和一張中端數(shù)據(jù)中心卡比紙面算力可能后者還低但真跑起來跑滿一周前者早就因?yàn)轱@存溫度或者供電波動(dòng)開始掉頻了。我見過太多人踩這個(gè)坑預(yù)算有限想用消費(fèi)級(jí)旗艦卡拼一個(gè)“小集群”結(jié)果卡是買回來了機(jī)箱塞不下、電源帶不動(dòng)、多卡之間沒有高速互聯(lián)通道跑分布式訓(xùn)練時(shí)通信開銷把算力全吃掉了。所以看天梯圖之前先在紙上寫清楚你的三個(gè)約束能接受多大功耗、需要連續(xù)跑多久、模型能不能拆開。這三個(gè)答案基本就把你鎖在某一條產(chǎn)品線里了。1.2 五個(gè)參數(shù)構(gòu)成的真實(shí)排序如果非要給一個(gè)排序口徑我一般按五個(gè)維度加權(quán)而不是只看算力。這五個(gè)維度在不同場(chǎng)景下的權(quán)重差異極大這也是為什么“全網(wǎng)最準(zhǔn)天梯圖”這種東西根本不存在。維度消費(fèi)級(jí)權(quán)重工作站級(jí)權(quán)重?cái)?shù)據(jù)中心級(jí)權(quán)重說明精度算力25%25%30%看稠密而非稀疏數(shù)值顯存容量20%30%30%決定能跑多大的模型顯存帶寬30%25%25%決定推理速度和訓(xùn)練吞吐卡間互聯(lián)5%10%15%多卡場(chǎng)景下影響巨大能效與穩(wěn)定性20%10%0%已達(dá)標(biāo)決定長(zhǎng)期成本這張表值得多看一眼。消費(fèi)級(jí)這一列顯存帶寬的權(quán)重我給了最高因?yàn)榻^大多數(shù)個(gè)人用戶跑的是推理推理的瓶頸幾乎永遠(yuǎn)在帶寬上。數(shù)據(jù)中心級(jí)這一列能效和穩(wěn)定性權(quán)重我直接寫成“已達(dá)標(biāo)”意思是這一檔的產(chǎn)品默認(rèn)就能連續(xù)跑不用你再操心選型時(shí)不需要為這個(gè)付溢價(jià)——你付的錢買的是別的東西。顯存容量這一項(xiàng)很多人低估了。模型參數(shù)是硬的7B 參數(shù)用半精度存就是 14GB加上激活值、KV 緩存、框架預(yù)留20GB 顯存跑 7B 推理已經(jīng)比較緊張。你想跑到 13B、30B 甚至 70B顯存不夠就是不夠算力再高也只能看著。所以我把顯存容量單列出來它是一道門檻型的指標(biāo)不是可以線性折中的東西。1.3 為什么峰值 TFLOPS 的排序經(jīng)常和實(shí)測(cè)反過來這里得聊一個(gè)稍微硬一點(diǎn)的概念Roofline 模型。一張卡的實(shí)測(cè)性能取的是“峰值算力”和“帶寬 × 算術(shù)強(qiáng)度”這兩個(gè)值里的較小者。算術(shù)強(qiáng)度指的是每搬運(yùn)一個(gè)字節(jié)的數(shù)據(jù)能完成多少次浮點(diǎn)運(yùn)算。舉個(gè)例子一張卡峰值稠密算力 400 TFLOPS、顯存帶寬 2TB/s那么它的拐點(diǎn)算術(shù)強(qiáng)度就是 400÷2 200 FLOPs/Byte。做大規(guī)模矩陣乘法的時(shí)候算術(shù)強(qiáng)度可以到幾千遠(yuǎn)超拐點(diǎn)這時(shí)候是算力受限卡能跑到峰值的六七成但做自回歸推理的逐 token 生成時(shí)每生成一個(gè) token 要把全部權(quán)重讀一遍算術(shù)強(qiáng)度只有 1 左右離拐點(diǎn)差了 200 倍這時(shí)候是帶寬受限算力再高也只發(fā)揮出百分之幾。這就解釋了一個(gè)特別常見的困惑為什么 A 卡的峰值算力比 B 卡高 40%實(shí)測(cè)推理速度卻只快 5%。因?yàn)?A 卡的帶寬只比 B 卡高 8%而這個(gè)任務(wù)本身就是帶寬受限的。你要是在電商頁面看到“算力提升 40%”的宣傳語先翻到規(guī)格表最后一行看帶寬漲了多少那個(gè)數(shù)字才是推理場(chǎng)景的真實(shí)提升幅度。還有一個(gè)坑是精度口徑。有些宣傳頁上的數(shù)字標(biāo)著“稀疏 INT8”那是把稀疏化和低精度兩個(gè)放大系數(shù)疊在一起的結(jié)果實(shí)際可用值要除以四甚至除以八。我自己整理天梯圖時(shí)只用三個(gè)口徑BF16 稠密、FP8 稠密、INT8 稠密其他的一律不看。你要是拿到的資料里只有稀疏數(shù)值直接用 0.5 乘一下當(dāng)參考誤差會(huì)小很多。2. 消費(fèi)級(jí)梯隊(duì)從能用到“能干活”的跨越點(diǎn)2.1 入門到中端別被算力數(shù)字誘惑消費(fèi)級(jí)這一檔我從下往上講。C30 這個(gè)檔位是入門卡典型規(guī)格是 8GB 顯存、128 位或 96 位顯存位寬、帶寬 250GB/s 上下、半精度算力十幾 TFLOPS、功耗一百瓦出頭。這個(gè)檔位能干什么跑 3B 以下的模型做推理、做圖像生成的中低分辨率出圖、跑一些傳統(tǒng)的計(jì)算機(jī)視覺任務(wù)夠用。但它有個(gè)致命問題8GB 顯存在 2025 年已經(jīng)接近臨界值稍微上點(diǎn)規(guī)模就 OOM。C60 是主流檔12GB 顯存、192 位位寬、帶寬 360GB/s 左右、半精度算力三十 TFLOPS 上下、功耗 150W。這一檔是我個(gè)人認(rèn)為個(gè)人開發(fā)者的性價(jià)比拐點(diǎn)。為什么因?yàn)?12GB 顯存剛好能塞下 7B 模型的 4bit 量化版本加上一段不長(zhǎng)的上下文帶寬 360GB/s 跑量化推理的 token 生成速度能到每秒幾十個(gè) token體驗(yàn)上已經(jīng)“能用”了。而且功耗低普通 550W 電源就能帶機(jī)箱不用換噪音也能接受。C70 是性能檔16GB 顯存、256 位位寬、帶寬 600GB/s 左右、半精度算力六十 TFLOPS 上下、功耗 250W。這一檔的性價(jià)比要看你干什么如果只是跑推理從 C60 到 C70 的體驗(yàn)提升大概是“從有點(diǎn)卡到不卡”值不值這個(gè)差價(jià)得你自己判斷如果要做微調(diào)16GB 是能跑 7B 全參數(shù)量化微調(diào)的底線意義就完全不一樣了。這里有個(gè)我反復(fù)強(qiáng)調(diào)的點(diǎn)入門和中端檔位顯存容量比算力重要得多。同一代產(chǎn)品里C60 和 C70 的算力差距可能只有一倍但顯存差 4GB這 4GB 決定了你能不能跑某個(gè)模型。選卡的時(shí)候先按“模型需要多大顯存”倒推再從滿足顯存要求的卡里挑算力最高的這個(gè)順序不能反。2.2 旗艦消費(fèi)卡真正值錢的是帶寬和顯存跳到 C90 這個(gè)檔位情況就變了。典型規(guī)格是 24GB 到 32GB 顯存、384 位位寬、帶寬 1.0 到 1.8TB/s、半精度算力 160 到 200 TFLOPS、功耗 450W 到 575W。這一檔的價(jià)格通常是 C70 的三到四倍貴出來的錢主要買了三樣?xùn)|西顯存容量、顯存帶寬、和供電規(guī)格。顯存帶寬從 600GB/s 漲到 1.5TB/s 是什么概念跑 7B 模型半精度推理理論上每秒能生成 1500÷14 ≈ 107 個(gè) token實(shí)際打六折也有 60 多個(gè)這個(gè)速度已經(jīng)是“讀起來跟不上”的級(jí)別了。而 C70 的 600GB/s 理論值是 42 token/s實(shí)際 25 左右差距是肉眼可見的。但旗艦消費(fèi)卡有個(gè)很尷尬的地方它處在一個(gè)不上不下的位置。往上工作站卡有更大的顯存和 ECC往下C70 已經(jīng)能滿足大部分個(gè)人需求。我個(gè)人的判斷是旗艦消費(fèi)卡適合兩類人一類是需要大顯存做本地大模型實(shí)驗(yàn)、但不愿意為專業(yè)卡付溢價(jià)的獨(dú)立開發(fā)者另一類是既要跑模型又要打游戲或者做視頻剪輯、一張卡兼顧兩種用途的用戶。如果你是純做 AI 開發(fā)、機(jī)器 24 小時(shí)開著那這筆錢花得不太值往下走 C70 或者往上走工作站卡都更合理。還有一個(gè)細(xì)節(jié)這一檔的功耗普遍在 450W 以上瞬時(shí)功耗尖峰能沖到標(biāo)稱值的兩倍。你要是用老電源標(biāo)稱 750W 那種帶一張這樣的卡加上 CPU很容易在跑滿載推理的時(shí)候觸發(fā)過流保護(hù)直接關(guān)機(jī)。這不是卡的問題是電源的瞬態(tài)響應(yīng)跟不上。我一般建議這一檔配 850W 以上、且要看電源的 12V 單路輸出能力別只看總瓦數(shù)。2.3 消費(fèi)級(jí)跑推理的四個(gè)硬墻用消費(fèi)級(jí)卡做推理有四道墻你遲早會(huì)撞上提前知道能省不少時(shí)間。第一道是顯存容量墻。這道墻最硬繞不過去。32GB 顯存跑 30B 模型的 4bit 量化版本權(quán)重占了 15GB剩下 17GB 要分給 KV 緩存、激活值、框架開銷。你要是把上下文開到 32K、batch 開到 8KV 緩存能吃掉十幾個(gè) GB直接 OOM。解決辦法只有量化、減 batch、減上下文三個(gè)全是降體驗(yàn)的。第二道是顯存帶寬墻。這就是前面說的 Roofline消費(fèi)級(jí)卡的帶寬和算力比例是失衡的算力堆得高、帶寬給得少做矩陣運(yùn)算很爽做逐 token 生成就吃癟。這也是為什么消費(fèi)級(jí)卡跑訓(xùn)練的表現(xiàn)往往比跑推理更“對(duì)得起”它的紙面參數(shù)。第三道是卡間互聯(lián)墻。消費(fèi)級(jí)多卡之間走的是主板上的通用串行總線帶寬和延遲都很難看而且很多主板第二條插槽實(shí)際只有一半通道。你要是想用兩張卡拼顯存跑更大的模型通信開銷會(huì)讓速度掉到單卡的六七成得不償失。多卡消費(fèi)級(jí)方案我只在“張量并行跑單機(jī)多卡推理”這個(gè)場(chǎng)景下見過效果還行的訓(xùn)練基本別想。第四道是散熱與降頻墻。消費(fèi)級(jí)卡的散熱設(shè)計(jì)是按“游戲負(fù)載間歇性滿載”來的你讓它連續(xù)跑幾個(gè)小時(shí)推理顯存溫度會(huì)緩慢爬升到八十多度然后開始降頻保護(hù)。表現(xiàn)就是跑著跑著速度掉了 15%你還不一定能從日志里看出來。想長(zhǎng)時(shí)間跑要么改水冷、要么把功耗墻拉低到 80%、要么在機(jī)箱風(fēng)道上花心思這三件事至少做一件。3. 工作站級(jí)最容易被跳過、卻最省錢的一檔3.1 它和消費(fèi)卡差的不是性能是“能不能連續(xù)跑 30 天”工作站級(jí)這個(gè)檔位在國(guó)內(nèi)的個(gè)人和小團(tuán)隊(duì)里存在感很低大部分人要么買消費(fèi)級(jí)省錢要么直接上數(shù)據(jù)中心級(jí)圖省心中間這一層被跳過去了。但我要說對(duì)相當(dāng)一部分團(tuán)隊(duì)來說這一檔才是最優(yōu)解。它和消費(fèi)級(jí)卡的核心差異不在性能而在四件事一是 ECC 顯存。這個(gè)功能平時(shí)看不出來跑長(zhǎng)任務(wù)的時(shí)候能救命。顯存出一次靜默錯(cuò)誤訓(xùn)練可能不報(bào)錯(cuò)但 loss 曲線莫名其妙發(fā)散你排查三天都找不到原因。ECC 會(huì)把這類錯(cuò)誤糾正掉或者至少報(bào)出來省下的時(shí)間遠(yuǎn)超溢價(jià)。二是驅(qū)動(dòng)認(rèn)證與專業(yè)軟件兼容。做三維渲染、仿真、醫(yī)療影像、CAD 這類工作專業(yè)軟件對(duì)驅(qū)動(dòng)有認(rèn)證要求消費(fèi)卡跑起來可能功能缺失或者直接崩。這一條對(duì)純 AI 開發(fā)不重要對(duì)混合用途的團(tuán)隊(duì)很關(guān)鍵。三是散熱與供電的冗余設(shè)計(jì)。工作站卡默認(rèn)就是 7×24 運(yùn)行的設(shè)計(jì)目標(biāo)風(fēng)扇是渦輪或者雙軸流機(jī)箱風(fēng)道是按機(jī)架環(huán)境設(shè)計(jì)的。我實(shí)測(cè)過同一代產(chǎn)品里工作站卡和消費(fèi)級(jí)旗艦卡連續(xù)跑 72 小時(shí)的穩(wěn)定性前者頻率基本一條直線后者有 5% 到 10% 的波動(dòng)。四是顯存容量的上限更高。工作站檔位普遍能到 48GB 甚至 96GB這個(gè)容量區(qū)間是消費(fèi)級(jí)完全覆蓋不到的而它剛好是“能跑中等規(guī)模模型”的甜點(diǎn)區(qū)。48GB 顯存跑 30B 半精度模型權(quán)重 60GB 裝不下但跑 30B 的 8bit 量化或者 13B 半精度就綽綽有余還能留出充足的 KV 緩存。我給一個(gè)粗略的檔位參考W-A 檔是 24GB 顯存、帶寬 768GB/s 左右、半精度算力 80 TFLOPS、功耗 250WW-B 檔是 48GB 顯存、帶寬 1.2TB/s 左右、半精度算力 200 TFLOPS、功耗 300WW-C 檔是 96GB 顯存、用堆疊式高帶寬顯存、帶寬 2.4TB/s 左右、半精度算力 400 TFLOPS、功耗 600W。這三檔的功耗控制得比消費(fèi)級(jí)旗艦好很多W-B 檔 300W 的功耗做到了消費(fèi)級(jí) 575W 才有的算力水平這就是能效差異。3.2 三檔配置的選型對(duì)照我把這三檔放在一起做個(gè)對(duì)照方便你按場(chǎng)景挑。檔位顯存帶寬半精度稠密算力典型功耗適合場(chǎng)景不適合場(chǎng)景W-A24GB768GB/s80 TFLOPS250W單機(jī)中等模型推理、小規(guī)模微調(diào)大模型全參微調(diào)、多機(jī)訓(xùn)練W-B48GB1.2TB/s200 TFLOPS300W13B 級(jí)模型微調(diào)、多卡單機(jī)推理70B 級(jí)模型、長(zhǎng)上下文高并發(fā)W-C96GB2.4TB/s400 TFLOPS600W30B 級(jí)模型全參微調(diào)、單機(jī)大模型推理超大規(guī)模訓(xùn)練集群選 W-A 還是 W-B我一般讓提問的人先回答一個(gè)問題你未來一年內(nèi)會(huì)不會(huì)需要微調(diào) 13B 以上的模型答案是不會(huì)W-A 就夠了多花的錢不如加到內(nèi)存和存儲(chǔ)上答案是會(huì)直接上 W-B別在 W-A 上折騰因?yàn)轱@存不夠就是不夠任何技巧都繞不過去。W-C 這一檔比較特殊它的價(jià)格已經(jīng)接近入門級(jí)數(shù)據(jù)中心卡了選它的人通常是看中“單機(jī)、不需要機(jī)房、插墻就能用”這三點(diǎn)。如果你的場(chǎng)景是實(shí)驗(yàn)室或者小團(tuán)隊(duì)的內(nèi)部推理服務(wù)不想折騰機(jī)架和配電W-C 是很有性價(jià)比的選擇——一臺(tái)機(jī)器四張卡384GB 總顯存跑 70B 量化模型能撐起一個(gè)小規(guī)模的內(nèi)部服務(wù)了。4. 數(shù)據(jù)中心級(jí)算力的分水嶺在卡外4.1 訓(xùn)練卡顯存和互聯(lián)是一門“堆”的學(xué)問進(jìn)到 D 系討論的方式就要變了。這一檔的卡不是孤立賣的是連著整機(jī)、互聯(lián)、軟件棧一起賣的單看一張卡的參數(shù)意義有限。我先按用途分成兩支訓(xùn)練導(dǎo)向和推理導(dǎo)向這兩支的設(shè)計(jì)取向差異非常大。訓(xùn)練卡的核心指標(biāo)是顯存容量 × 卡間互聯(lián)帶寬算力反而排在第三。為什么因?yàn)榇竽P陀?xùn)練幾乎是強(qiáng)制的并行任務(wù)模型參數(shù)、梯度、優(yōu)化器狀態(tài)要切分到幾十上百張卡上每次梯度同步都要在所有卡之間搬運(yùn)幾十 GB 的數(shù)據(jù)?;ヂ?lián)帶寬不夠卡就在那兒空等算力再高也發(fā)揮不出來。我用一個(gè)具體的數(shù)算給你看。7B 參數(shù)的稠密模型做全參微調(diào)用混合精度加自適應(yīng)優(yōu)化器顯存占用大概是每十億參數(shù) 16GB 的量級(jí)——權(quán)重半精度 14GB、梯度半精度 14GB、主權(quán)重單精度 28GB、優(yōu)化器兩個(gè)狀態(tài)各 28GB加起來 112GB再算上激活值和臨時(shí)緩沖實(shí)際需要 130GB 以上。一張 80GB 的訓(xùn)練卡裝不下必須切分。切到兩張卡每張 65GB勉強(qiáng)切到四張卡每張 33GB寬裕。這就是為什么訓(xùn)練卡要有高速互聯(lián)切得越細(xì)通信越頻繁。再說訓(xùn)練時(shí)間的量級(jí)。7B 模型訓(xùn) 1 萬億 token總計(jì)算量是 6 × 7×10? × 1×1012 4.2×1022 次浮點(diǎn)運(yùn)算。一張卡稠密算力 400 TFLOPS實(shí)際利用率按 40% 算有效算力 1.6×101?那么單卡需要 2.6×10? 秒也就是八年多。這個(gè)數(shù)字不是嚇唬人是在說明為什么大模型訓(xùn)練必須堆卡。堆到 64 張擴(kuò)展效率按 80% 算時(shí)間降到 60 天左右堆到 256 張降到 15 天。你看到的所有“訓(xùn)了幾個(gè)月”的說法背后都是幾百張卡的集群在跑。所以訓(xùn)練卡的選型邏輯是先確定模型規(guī)模算出顯存需求決定要幾張卡再看這幾張卡之間的互聯(lián)帶寬夠不夠最后才看算力。順序反過來的話很容易買回一堆算力很高但互聯(lián)很弱的卡跑起來效率只有三成。4.2 推理卡帶寬和能效才是第一指標(biāo)推理導(dǎo)向的數(shù)據(jù)中心卡是這兩年增長(zhǎng)最快的一支設(shè)計(jì)取向和訓(xùn)練卡幾乎是相反的。它不需要巨大的顯存容量去裝優(yōu)化器狀態(tài)但需要極高的顯存帶寬去支撐逐 token 生成同時(shí)要把能效做到極致因?yàn)橥评矸?wù)是長(zhǎng)期在線跑的電費(fèi)是持續(xù)性支出。我給個(gè)檔位參考D-S 檔是推理專用32GB 堆疊顯存、帶寬 1.5TB/s、INT8 稠密算力 800 TOPS、功耗 400WD-M 檔是訓(xùn)練推理均衡80GB 顯存、帶寬 2TB/s、半精度稠密算力 400 TFLOPS、功耗 700WD-L 檔是訓(xùn)練旗艦141GB 顯存、帶寬 4.8TB/s、半精度稠密算力 990 TFLOPS、功耗 1000W。算一下能效比就有意思了。D-S 的 INT8 能效是 800÷400 2 TOPS/WD-M 的半精度能效是 400÷700 0.57 TFLOPS/WD-L 是 990÷1000 0.99 TFLOPS/W。注意這里的口徑不同不能直接比但同一口徑下 D-S 在低精度推理上的能效優(yōu)勢(shì)是碾壓性的。這就是為什么現(xiàn)在推理集群越來越傾向于用“多張小卡”而不是“少量大卡”——推理任務(wù)的并行粒度細(xì)用數(shù)量和能效換總吞吐更劃算。還有一個(gè)經(jīng)常被忽略的點(diǎn)是顯存帶寬的絕對(duì)量。70B 模型半精度權(quán)重 140GB一張 D-M 裝不下得兩張總帶寬 4TB/s。理論 token 生成速度是 4000÷140 ≈ 28 token/s單個(gè)請(qǐng)求、無批處理實(shí)際打七折約 20 token/s。你要是把 batch 開到 16總的吞吐能到 300 token/s 以上但單請(qǐng)求的延遲會(huì)漲因?yàn)轱@存帶寬被 16 個(gè)請(qǐng)求分著用。這就是推理服務(wù)里“吞吐”和“延遲”的永恒矛盾選卡的時(shí)候要先想清楚你優(yōu)化的是哪個(gè)。4.3 一臺(tái)機(jī)器不等于一張卡整機(jī)視角的三成定律這一節(jié)是我最想強(qiáng)調(diào)的。數(shù)據(jù)中心級(jí)選型里單卡性能大概只占最終效果的三成剩下七成在卡外面互聯(lián)拓?fù)?、供電、散熱、存?chǔ)帶寬、調(diào)度軟件。我給這個(gè)說法起了個(gè)名字叫“三成定律”雖然不精確但足以讓很多人清醒。先說供電。八卡整機(jī)滿載功耗在 10kW 到 12kW 之間這個(gè)數(shù)字意味著什么意味著一臺(tái)機(jī)器要配兩路獨(dú)立的工業(yè)供電意味著機(jī)柜的配電要重新設(shè)計(jì)意味著 UPS 的容量要按 1.5 倍冗余配。我算過電費(fèi)按 10kW、每天滿載 24 小時(shí)、電價(jià) 0.7 元算一臺(tái)機(jī)器一天 168 元一年 6.1 萬元。一百臺(tái)機(jī)器一年的電費(fèi)就是 610 萬。這個(gè)數(shù)字往往比卡本身的采購價(jià)更影響決策而它在天梯圖上是看不到的。再說互聯(lián)拓?fù)?。八張卡塞進(jìn)一臺(tái)機(jī)器卡和卡之間的連接方式?jīng)Q定了通信效率。全互聯(lián)的拓?fù)淠茏屓我鈨蓮埧ㄖ苯油ㄐ怒h(huán)形或者半互聯(lián)的拓?fù)渚偷弥修D(zhuǎn)中轉(zhuǎn)一次延遲翻倍。跑張量并行的時(shí)候通信是每一步都要做的延遲累積起來能把算力吃掉一半。所以買整機(jī)不能只看“八卡”要看“八卡怎么連”。散熱也是一樣。數(shù)據(jù)中心的卡是渦輪風(fēng)扇或者液冷渦輪風(fēng)扇的噪音在 70 分貝以上絕對(duì)不能放在辦公環(huán)境液冷要考慮管路、冷量分配、漏液檢測(cè)。我見過有人把數(shù)據(jù)中心整機(jī)放在普通辦公室結(jié)果一周之內(nèi)機(jī)房溫度上到四十度卡開始批量降頻。這不是卡的問題是環(huán)境不匹配。存儲(chǔ)帶寬這條容易被忽略但很致命。訓(xùn)練時(shí)數(shù)據(jù)加載跟不上卡就在那兒等數(shù)據(jù)利用率從 90% 掉到 50%。解決辦法是配高速本地盤做緩存、或者用分布式存儲(chǔ)加預(yù)取這些都要在選型階段一起規(guī)劃不能等卡裝好了再補(bǔ)。5. 把天梯圖落到預(yù)算三種典型場(chǎng)景的配置推演5.1 場(chǎng)景一個(gè)人開發(fā)者的小模型微調(diào)與推理先說最常見的場(chǎng)景。一個(gè)人、一臺(tái)機(jī)器、預(yù)算在兩三萬到五六萬之間主要工作是跑 7B 到 13B 模型的微調(diào)和推理偶爾做點(diǎn)圖像生成。這個(gè)場(chǎng)景我會(huì)推薦 C70 檔加一張或者預(yù)算寬裕直接上 W-A 檔。理由是這樣7B 模型做低秩適配微調(diào)顯存需求大概是 20GB 上下全參數(shù)量化微調(diào)要 30GB 以上。C70 的 16GB 只能勉強(qiáng)跑低秩微調(diào)還得把 batch 壓到 1、序列長(zhǎng)度壓到 2K稍微長(zhǎng)一點(diǎn)的樣本就 OOM。W-A 的 24GB 能舒服地跑 7B 低秩微調(diào)加 4K 序列或者跑 13B 的 4bit 量化推理覆蓋面寬很多。整機(jī)配置我一般這么配CPU 十二核以上、內(nèi)存按顯存的四倍配24GB 顯存配 96GB 內(nèi)存這個(gè)比例不是瞎定的因?yàn)閿?shù)據(jù)預(yù)處理和模型加載都會(huì)在內(nèi)存里放副本、系統(tǒng)盤用 NVMe、數(shù)據(jù)盤單獨(dú)一塊大容量固態(tài)。電源按整機(jī)峰值功耗的 1.5 倍配機(jī)箱選風(fēng)道好的中塔前面三個(gè)進(jìn)風(fēng)扇后面一個(gè)出風(fēng)扇別用側(cè)透的網(wǎng)紅機(jī)箱那種風(fēng)道是給水冷設(shè)計(jì)的。實(shí)測(cè)下來這套配置跑 7B 模型的低秩微調(diào)1000 條樣本大概兩三個(gè)小時(shí)跑 13B 的 4bit 量化推理能到每秒二三十個(gè) token。對(duì)個(gè)人開發(fā)來說這個(gè)體驗(yàn)是夠的能支撐起從實(shí)驗(yàn)到原型的全流程。5.2 場(chǎng)景二團(tuán)隊(duì)級(jí)別的中等規(guī)模推理服務(wù)第二個(gè)場(chǎng)景是團(tuán)隊(duì)內(nèi)部或者對(duì)外提供推理服務(wù)需要撐住幾十個(gè)并發(fā)模型在 30B 到 70B 之間要求響應(yīng)穩(wěn)定、能連續(xù)跑。這個(gè)場(chǎng)景的關(guān)鍵詞是“并發(fā)”和“穩(wěn)定”單卡已經(jīng)不夠了。我推薦 W-B 檔兩張或者 D-S 檔兩到四張。這兩條路線各有取舍W-B 走的是通用串行總線互聯(lián)兩張卡之間的通信帶寬有限適合做數(shù)據(jù)并行而不是張量并行也就是“一張卡跑一個(gè)模型副本請(qǐng)求分發(fā)到不同副本”這種方式對(duì)互聯(lián)要求低擴(kuò)展性好D-S 走的是專用互聯(lián)可以做張量并行把一個(gè)大模型拆到多張卡上但對(duì)軟件棧的要求高調(diào)試成本也高。我算一筆賬對(duì)比。30B 模型半精度權(quán)重 60GB4bit 量化后 15GB一張 W-B 的 48GB 能裝兩個(gè)副本還有富余兩個(gè)副本各撐 8 路并發(fā)總共 16 路。按每路每秒 20 token 算總吞吐 320 token/s。這個(gè)量級(jí)對(duì)大多數(shù)團(tuán)隊(duì)內(nèi)部服務(wù)是夠用的而且單機(jī)部署運(yùn)維成本極低壞了重啟就行。70B 模型就得上多卡了。半精度 140GB得三張 W-B 拼144GB或者兩張 D-M160GB。前者是通用總線互聯(lián)通信開銷大實(shí)際吞吐大概只有理論值的五成后者是專用互聯(lián)能到七成以上。差價(jià)大概在 30% 到 50%如果你的服務(wù)是長(zhǎng)期跑、對(duì)吞吐敏感這個(gè)溢價(jià)是值得的。這里有個(gè)實(shí)操細(xì)節(jié)KV 緩存要單獨(dú)算。30B 模型假設(shè) 60 層、8 個(gè) KV 頭、每頭 128 維、半精度存儲(chǔ)每個(gè) token 每層占 2×8×128×2 4KB整個(gè)模型每 token 占 60×4KB 240KB。開 8K 上下文就是 1.9GBbatch 16 就是 30GB。這個(gè)數(shù)字經(jīng)常超過權(quán)重本身規(guī)劃顯存的時(shí)候千萬別漏了。5.3 場(chǎng)景三從零起步的訓(xùn)練集群第三個(gè)場(chǎng)景是從零搭一個(gè)小規(guī)模訓(xùn)練集群目標(biāo)是能跑 7B 到 13B 模型的全參微調(diào)或者小模型從零預(yù)訓(xùn)練。這個(gè)場(chǎng)景的坑最多我盡量講透。第一步是算顯存。前面算過7B 全參微調(diào)用混合精度加自適應(yīng)優(yōu)化器每十億參數(shù) 16GB7B 就是 112GB加激活值 130GB 往上。單卡裝不下最少四張 80GB 的卡切成四份每份 32GB 裝模型狀態(tài)剩下的留給激活值。要是訓(xùn) 13B直接翻倍到八張卡。第二步是算互聯(lián)。四張卡做全參微調(diào)每步都要做梯度同步同步的數(shù)據(jù)量是 28GB單精度梯度。互聯(lián)帶寬如果是每卡 900GB/s 全互聯(lián)同步一次大概 30 毫秒如果是通用總線每卡 64GB/s同步一次要 400 多毫秒。按每步計(jì)算 500 毫秒算前者總耗時(shí) 530 毫秒后者 900 毫秒差 70%。這個(gè)差距直接決定了你需要多買 70% 的卡來達(dá)到同樣產(chǎn)出所以互聯(lián)的錢不能省。第三步是算擴(kuò)展效率。線性擴(kuò)展是理想情況實(shí)際每增加一倍卡數(shù)效率掉 5% 到 15%。四張卡到八張卡效率大概 85%八張到十六張80%十六張到三十二張75%。這個(gè)衰減是因?yàn)橥ㄐ耪急入S卡數(shù)增加而上升。我一般建議中小團(tuán)隊(duì)把集群規(guī)??刂圃谌埧ㄒ詢?nèi)超過這個(gè)規(guī)模網(wǎng)絡(luò)拓?fù)浜驼{(diào)度系統(tǒng)的復(fù)雜度會(huì)陡增收益不明顯。第四步是算總擁有成本。卡的價(jià)格只是開始機(jī)架、配電、制冷、網(wǎng)絡(luò)交換機(jī)、存儲(chǔ)、運(yùn)維人力這些加起來往往是卡價(jià)的 50% 到 100%。我在做預(yù)算表的時(shí)候會(huì)把三年期的電費(fèi)單獨(dú)列一行很多決策者看到這個(gè)數(shù)字會(huì)重新考慮規(guī)模。5.4 參數(shù)速算表我把常用的幾個(gè)公式整理成表你在選型的時(shí)候可以直接套。計(jì)算項(xiàng)公式示例推理權(quán)重顯存參數(shù)量 × 每參數(shù)字節(jié)數(shù)7B × 2B 14GB半精度KV 緩存2 × 層數(shù) × KV頭數(shù) × 頭維度 × 序列長(zhǎng)度 × batch × 字節(jié)數(shù)60×8×128×8192×16×2B 30GB訓(xùn)練顯存全參參數(shù)量 × 16 至 20 字節(jié)7B × 16B 112GB訓(xùn)練顯存低秩微調(diào)參數(shù)量 × 2.5 至 3 字節(jié)7B × 3B 21GB訓(xùn)練總計(jì)算量6 × 參數(shù)量 × token 數(shù)6×7e9×1e12 4.2e22 FLOPs訓(xùn)練時(shí)間總計(jì)算量 ÷ (卡數(shù) × 單卡算力 × 利用率)4.2e22 ÷ (64×4e14×0.4) ≈ 4.1e6 秒推理 token 速度上限顯存帶寬 ÷ 權(quán)重顯存1500GB/s ÷ 14GB ≈ 107 token/s年電費(fèi)功率 × 24 × 365 × 電價(jià)10kW × 8760 × 0.7 ≈ 6.1 萬元這張表里我特別想讓你注意的是最后兩行。推理速度上限那一行很多人在優(yōu)化推理性能的時(shí)候第一反應(yīng)是換更貴的卡其實(shí)先算一下就知道瓶頸在哪——如果實(shí)測(cè)速度只有帶寬上限的三成那問題在軟件棧而不在硬件換卡提升有限如果已經(jīng)到七成那換高帶寬的卡收益就很直接。年電費(fèi)那一行則是在提醒你算力卡是持續(xù)消耗品不是一次性投入。6. 踩坑記錄天梯圖上不會(huì)寫的那些事6.1 顯存夠用但跑不起來碎片與預(yù)留有一類問題特別迷惑人nvidia-smi顯示顯存用了 60GB還有 20GB 空閑但程序就是報(bào)顯存不足。這不是玄學(xué)是顯存碎片。顯存分配器的工作方式和內(nèi)存類似長(zhǎng)期運(yùn)行的服務(wù)會(huì)不斷申請(qǐng)和釋放不同大小的塊時(shí)間一長(zhǎng)空閑的顯存在物理上是不連續(xù)的雖然總量夠但沒有一塊連續(xù)區(qū)域能滿足大塊申請(qǐng)。表現(xiàn)就是服務(wù)跑幾個(gè)小時(shí)之后開始報(bào)錯(cuò)重啟就恢復(fù)正常再跑幾個(gè)小時(shí)又報(bào)錯(cuò)。解法有三條。一是在啟動(dòng)時(shí)設(shè)置環(huán)境變量讓分配器采用更激進(jìn)的碎片整理策略代價(jià)是啟動(dòng)稍慢二是把服務(wù)的最大 batch 和最大序列長(zhǎng)度固定下來讓顯存申請(qǐng)的模式變得可預(yù)測(cè)三是定期做顯存池的重建把服務(wù)做成可以優(yōu)雅重啟的形態(tài)在低谷期滾動(dòng)重啟。我一般三條一起用穩(wěn)定性提升很明顯。還有一個(gè)容易被忽略的是框架的顯存預(yù)留。某些框架默認(rèn)會(huì)預(yù)留一大塊顯存做緩存池你看到“已用”其實(shí)是被預(yù)留了并沒有真正消耗。調(diào)優(yōu)的時(shí)候要用實(shí)際可分配的顯存去算別看總量。6.2 掉卡、降頻、跑不滿的排查順序連續(xù)跑長(zhǎng)任務(wù)時(shí)出問題排查要按固定順序走亂試只會(huì)浪費(fèi)時(shí)間。我的順序是這樣的第一步看溫度。顯存溫度和核心溫度分開看很多工具只顯示核心溫度。顯存溫度到 85 度以上就會(huì)觸發(fā)降頻到 95 度會(huì)開始報(bào)錯(cuò)。消費(fèi)級(jí)卡跑長(zhǎng)任務(wù)顯存溫度高是常態(tài)解決辦法是拉低功耗墻到 80%、加強(qiáng)機(jī)箱風(fēng)道、或者加裝顯存散熱片。第二步看功耗。用監(jiān)控工具記錄整機(jī)功耗曲線看有沒有異常尖峰。電源瞬態(tài)響應(yīng)不足會(huì)導(dǎo)致瞬時(shí)掉電重啟這種情況日志里通常什么都沒有只會(huì)看到機(jī)器重啟了。判斷方法是換一個(gè)大功率電源試或者把卡的功耗墻拉低看是否復(fù)現(xiàn)。第三步看互聯(lián)。多卡任務(wù)跑不滿先看卡間通信有沒有報(bào)錯(cuò)或者重傳。通用總線互聯(lián)的卡在多卡滿載時(shí)容易出現(xiàn)鏈路降速從全速降到一半甚至四分之一表現(xiàn)就是訓(xùn)練速度莫名其妙掉一半。查法是用廠商提供的帶寬測(cè)試工具跑一遍點(diǎn)對(duì)點(diǎn)帶寬和標(biāo)稱值對(duì)比。第四步看驅(qū)動(dòng)和固件版本。這一條我放在最后但其實(shí)是最高頻的原因。多卡環(huán)境下驅(qū)動(dòng)版本不一致、固件版本不匹配癥狀五花八門有的掉卡、有的算錯(cuò)、有的只是慢。我一般要求同一批機(jī)器固件版本必須完全一致裝機(jī)器的時(shí)候統(tǒng)一刷一遍再上架。第五步看供電和接地。機(jī)房接地不良會(huì)導(dǎo)致各種隨機(jī)錯(cuò)誤這種問題最難查因?yàn)閾Q機(jī)器換卡都不復(fù)現(xiàn)。判斷方法是把機(jī)器挪到另一個(gè)機(jī)柜試或者測(cè)量機(jī)柜接地電阻。6.3 常見問題速查表現(xiàn)象最可能原因快速驗(yàn)證處理方式報(bào)顯存不足但有余量顯存碎片重啟服務(wù)后恢復(fù)固定 batch、開碎片整理、滾動(dòng)重啟長(zhǎng)任務(wù)跑幾小時(shí)后變慢顯存或核心降頻看溫度曲線拉低功耗墻、改散熱、強(qiáng)風(fēng)道多卡訓(xùn)練速度只有單卡一半互聯(lián)帶寬不足跑點(diǎn)對(duì)點(diǎn)帶寬測(cè)試換互聯(lián)拓?fù)涓玫呐渲?、減少并行度機(jī)器隨機(jī)重啟、無日志電源瞬態(tài)不足換大功率電源上 850W 以上、留足余量訓(xùn)練 loss 無故發(fā)散顯存靜默錯(cuò)誤開 ECC 或校驗(yàn)換帶 ECC 的卡、降低頻率推理速度只有理論值三成軟件棧未優(yōu)化算帶寬上限對(duì)比換推理引擎、調(diào) batch、開連續(xù)批處理多機(jī)訓(xùn)練擴(kuò)展效率驟降網(wǎng)絡(luò)延遲或丟包打流測(cè)試換網(wǎng)絡(luò)拓?fù)?、調(diào)通信庫參數(shù)卡識(shí)別不到固件版本不匹配查固件版本統(tǒng)一刷固件、更新驅(qū)動(dòng)這張表我建議存下來遇到問題按行對(duì)號(hào)入座能省掉大量瞎猜的時(shí)間。表里最后一條“卡識(shí)別不到”看著簡(jiǎn)單實(shí)際是我見過最耽誤事的——多卡整機(jī)里少識(shí)別一張卡有些監(jiān)控工具不報(bào)警你要跑到訓(xùn)練腳本啟動(dòng)才發(fā)現(xiàn)卡數(shù)不對(duì)白白浪費(fèi)一輪排隊(duì)時(shí)間。6.4 幾個(gè)花錢買來的經(jīng)驗(yàn)最后分享幾條我覺得最值錢的經(jīng)驗(yàn)都是踩坑踩出來的。第一同一批機(jī)器必須配置完全一致。多機(jī)訓(xùn)練里只要有一臺(tái)機(jī)器的卡型號(hào)、固件版本、甚至內(nèi)存容量不一樣整個(gè)集群的效率就會(huì)被它拖住。木桶效應(yīng)在這個(gè)領(lǐng)域體現(xiàn)得淋漓盡致。寧可少買兩臺(tái)也要保證買到的完全一致。第二別為了省 10% 的錢選低一檔的互聯(lián)?;ヂ?lián)的差價(jià)看著心疼但它對(duì)訓(xùn)練效率的影響是 30% 起步。我見過為了省預(yù)算選了通用總線互聯(lián)的方案結(jié)果四張卡的實(shí)際算力只相當(dāng)于兩張半最后不得不重新采購。第三功耗墻不是越高越好。廠商標(biāo)稱的峰值算力是在功耗墻拉滿、溫度理想的情況下測(cè)出來的。實(shí)際機(jī)箱環(huán)境里把功耗墻拉到 85%性能只掉 5%但溫度和噪音改善巨大長(zhǎng)期運(yùn)行的穩(wěn)定性提升明顯。這個(gè)操作是免費(fèi)的很多人不知道。第四留出至少一個(gè)檔位的升級(jí)空間。主板插槽、電源功率、機(jī)箱空間、散熱能力這四樣在規(guī)劃的時(shí)候都要往上留一檔。你今年買的是中端卡明年想換旗艦卡結(jié)果電源不夠、機(jī)箱塞不下那就得整機(jī)重來成本比一步到位高得多。第五先跑基準(zhǔn)測(cè)試再談優(yōu)化。拿到機(jī)器第一件事不是裝業(yè)務(wù)是跑一遍標(biāo)準(zhǔn)的算力基準(zhǔn)和帶寬基準(zhǔn)把數(shù)字記下來。以后性能有任何異常和這個(gè)基線一比就知道問題出在哪。沒有基線的性能調(diào)優(yōu)全是玄學(xué)。我自己在實(shí)際操作中的體會(huì)是算力卡這件事上“買對(duì)”比“買貴”重要得多而“買對(duì)”的前提是你能把自己場(chǎng)景的瓶頸算清楚。天梯圖給的是相對(duì)位置不是絕對(duì)答案。同一張卡在一個(gè)人手里是性價(jià)比之選在另一個(gè)人手里就是浪費(fèi)預(yù)算差別只在于他有沒有先算清楚自己要跑的模型多大、要多快、要跑多久。下次你再看任何一份性能排行先別急著看第一名先翻到規(guī)格表把帶寬和顯存容量那兩個(gè)數(shù)字圈出來——那才是決定你體驗(yàn)的東西。