DeepSeek 官方微信的句子,目標寫得很白:「打造新一代獨立自主可控的 GPU 軟體生態」。方法不是再發一顆 大型語言模型 權重,而是把先前在 NVIDIA 平台開源過的那一層——語言、矩陣庫、專家並行通信、注意力核——做成昇騰後端,放到 GitHub 上。Reuters 把這則微信寫成華為與 DeepSeek 加深綁定、尋找 CUDA 替代路徑的最新跡象;時間落在華為發表下一代 神經處理單元 與超節點系統之後約兩週。Geopolitechs 把同一則公告拆得更硬:難的不是把訓練從 A 卡換到 B 卡,是把 CUDA 這整層程式生態補出來。
六個倉庫不是口號清單。Dense GEMM 在昇騰 950DT、CANN 9.20 上,官方文件寫 BF16×BF16 利用率最高 99.8%。DeepEP-Ascend 在 EP8、16384 token/rank、隱藏層 7168、256 專家 top-6 的設定下,Dispatch 373–375 GB/s、Combine 345–347 GB/s。科創板日報轉述雙方聯合定義的 SuperPoD Flex 與 UBL128:128 卡單層 Scale-up 3.2 Tbps,Scale-out 可到 25.6 萬卡兩層交換。這些數字量的是「貼近昇騰硬體上限」,不是「已經跟 NVIDIA 叢集打平」。
微信貼文開源了哪六個倉庫
官方英文稿被 Geopolitechs 全文刊出。開頭說:正式開源面向華為昇騰運算平台的基礎建設元件,涵蓋 TileLang 高階語言與編譯工具鏈、計算庫、分散式通信庫;每一件都能在先前面向 NVIDIA 平台的開源元件裡找到對應物。TileLang 被放在第一優先:「要建獨立可控的 GPU 軟體生態,先要有一套通用、好寫、還能把硬體吃滿的高階語言。」對比 CUDA,DeepSeek 寫 TileLang 編程模型更簡單;對比其他高階語言,它又被設計成能吃到晶片特性、逼近硬體極限。
驗證順序寫在同一段:先在 NVIDIA 成熟平台跑通,V4 系列 訓練 裡多數算子已用 TileLang;今天放出的昇騰版封裝底層 Ascend C,高階介面不犧牲效能。官方宣稱:DeepSeek 訓練裡目前用到的每一個 TileLang 算子,昇騰上都有對應的高效實作。
| 專案 | 做什麼 | 跟 NVIDIA 版的關係 |
|---|---|---|
| TileLang | GPU/NPU 高階核語言與編譯器 | 跨平台,這次加昇騰後端 |
| DeepGEMM-Ascend | 通用矩陣乘、MQA logits、MegaMoE | 獨立倉庫,API 對齊 DeepGEMM |
| DeepEP-Ascend | 混合專家模型 的 dispatch/combine | 獨立倉庫,公開 buffer API 對齊 DeepEP |
| TileKernels | 路由、量化、向量與訪存算子合集 | 跨平台,新增昇騰 |
| FlashMLA | 多頭潛在注意力(MLA)稀疏核 | 跨平台 |
| DeepSelect | 稀疏注意力與取樣的 TopK | 跨平台,新增昇騰 TopK 核 |
倉庫位址官方列了六條:tile-ai/tilelang、deepseek-ai/DeepGEMM-Ascend、deepseek-ai/DeepEP-Ascend、deepseek-ai/TileKernels、deepseek-ai/FlashMLA、deepseek-ai/DeepSelect。七牛雲對倉庫說明做過整理:TileLang、TileKernels、FlashMLA、DeepSelect 是原專案加後端;DeepGEMM-Ascend 與 DeepEP-Ascend 是新倉庫。TileLang 在 GitHub 已逾 7500 star;FlashMLA 接近 1.3 萬,是這組裡最常被點的名字。運行時官方說法是「沿用 NVIDIA 路徑,第二個後端,執行時自動選」——同一套 Python 呼叫,底層走 圖形處理器 或昇騰 NPU,開發者不必為換卡重寫核。
99.8% 是對誰的上限
DeepGEMM-Ascend 支援 BF16、FP8、FP4 三種 GEMM,以及 MQA logits、MegaMoE。官方在 950DT、CANN 9.20 給出的數字:密集 GEMM、BF16×BF16、M=4096/N=7168/K=16384 時利用率最高 99.8%;FP8×FP8 約 99.5%。分組 GEMM(M-Grouped,給 MoE 專家算)在 4 組/8 組專家下,算力利用率普遍約 850 TFLOPS。移植時有一條硬體差異必須手寫:昇騰的縮放因子(scaling factor)儲存格式跟 NVIDIA 不同,每一對 UE8M0 沿 K 維打包進一個 int16,再按 MN-major 排,為的是遷就這顆晶片的效率。API 對齊不表示記憶體佈局對齊。
DeepEP-Ascend 走 HCCL/HCOMM、UBMEM、URMA,執行時經 DeepJIT 編譯,提供 FP8 dispatch 與延遲 epilogue。七牛雲引 README 的實測表(16384 token/rank、隱藏層 7168、256 專家 top-6):
| EP 規模 | Dispatch | Combine |
|---|---|---|
| EP8 | 373–375 GB/s | 345–347 GB/s |
| EP32 | 335–340 GB/s | 320–324 GB/s |
| EP128 | 313–320 GB/s | 272–278 GB/s |
官方說明:EP 不超過 32 時,Dispatch 大約是物理負載頻寬上限的 90%–95%。更大 EP 與 Combine 仍在優化,瓶頸點名本地歸約與 URMA 的 高頻寬記憶體 爭用;華為計畫用韌體升級把這塊爭用壓下去。科創板日報寫的 Dispatch 375 GB/s、Combine 347 GB/s,對得上 EP8 那一列,並稱「接近硬體上限」。Geopolitechs 讀者留言把這句話釘死:上限是對昇騰量的,不是對它要替代的那條 CUDA 路徑量的。核跑滿這顆晶片,與工作負載成本不比在 CUDA 上高,是兩種主張。官方這次只做了前一種。
DeepSelect 相對 torch.topk,NVIDIA 版文件寫過 2 到 20 倍;這次補上昇騰 TopK 核,給 DeepSeek Sparse Attention(DSA,用在 V3.2、V4、V4.1)與取樣器。FlashMLA 是 MLA 的高效核,不是 Flash Attention 本體,但解決的是同一類「注意力算子在長序列上把記憶體吃爆」的問題。TileKernels 涵蓋混合專家路由、Engram、量化、流形超連接(mHC)這類訓練推理雜項。
硬體門檻寫在倉庫裡,不是寫在微信。DeepGEMM-Ascend 要昇騰 950 系列、CANN 9.20 以上(bin/bisheng、bin/ld.lld)、配套 torch_npu、Python 3.10、支援 C++20 的編譯器。DeepEP-Ascend 更窄:完整滿頻寬還依賴 Atlas 850E 的 Q3 商用 HDK,申請窗口文件寫大約 10 月中旬;現在 README 的頻寬數字是 DeepSeek 手上的 PoC HDK。早期商用版使用者可能看到比較低的頻寬,官方歸於韌體,不歸於軟體寫錯。兩個新倉庫都標成 950 系列首次發布;DeepEP 的 Bucket 集合通信、專家負載平衡仍在開發。這不是「clone 下來就能替換 CUDA 叢集」的發布。
128 卡超節點補的是哪一層
微信寫華為團隊全程支援,雙方共同推進基於昇騰 950 的 128 卡超節點,計算與通信一起做深優化。科創板日報記者寫到更具體的組網:華為提供聯合定義的昇騰超節點 SuperPoD Flex 與 UBL128,128 卡 3.2 Tbps 單層 Scale-up,25.6 萬卡兩層 Scale-out;全互聯 UBL128 上再給 ASC-COMM 自訂通信庫,DeepSeek 在上面做 DeepEP,涵蓋 EP/CP/PP/FSDP。Reuters 把「128 顆昇騰 950」寫進電訊稿主句,並提醒華為兩週前才說,自家 AI 系統預期明年才會被廣泛用來做模型訓練。
這條線不是從這則微信才開始。站內 9 月初寫過 DeepSeek 下單 16 萬顆昇騰 950DT:1 吉瓦機房規劃跑 推理,訓練當時仍寫成靠 NVIDIA。9 月中華為把 昇騰 960DT 提前三季,單卡 2 PFLOPS、288GB HBM,超節點從 1.5 萬卡收縮到 4096。今天開源的是 950 這一代的軟體底座,目標尺寸是 128 卡一個 SuperPoD,不是 960DT 那張更大的宣傳海報。4 月那篇 V4 帶火 950 需求 問的是「國產模型配國產晶片能不能跑」;這次問的是「同一套算子要不要為昇騰重寫」。
TileLang 若真能讓一份核在 CUDA 與 Ascend C 之間切後端,遷移成本的最大塊——人手重寫 GEMM、all-to-all、MLA——會從「幾個系統團隊幾季」變成「編譯器加少量佈局差異」。這是 DeepSeek 自己的主張。反面條件也在同一批文件裡:縮放因子佈局不同、滿頻寬要特定 HDK、EP128 的 Combine 已掉到 272–278 GB/s、訓練叢集是否已從 NVIDIA 搬家,官方這次沒宣布。16 萬張 950DT 的採購若主要仍服務推理,開源六件套是在為「下一輪訓練能不能在昇騰上做」鋪路,不是在宣布訓練已經搬走。
開發者能立刻做的、還做不到的
有昇騰 950 與 CANN 9.20 的團隊,可以按倉庫文件把 DeepGEMM-Ascend clone 下來、pip install . --no-build-isolation,用原 DeepGEMM 的呼叫方式跑 BF16/FP8 矩陣。有 PoC 或即將到手的 850E HDK,可以在 EP8/EP32 核對 Dispatch 是否接近 370 GB/s 那一檔。寫過 TileLang 核的人,理論上同一份 Python 可以在 NVIDIA 卡上先對答案,再把後端切到昇騰看利用率。沒有昇騰硬體、只是調 DeepSeek 雲端 推理 的人,這次發布改不到他們的帳單,也改不到他們的 API 欄位。
生產決策還差幾張表。沒有公開的端到端訓練吞吐對照:同樣的 V4 規模、同樣的 token 數,950 超節點對上 NVIDIA 叢集要多燒多少時間、多佔多少卡。沒有 960DT 的 TileLang 數字——開源對準的是 950。沒有授權條款以外的「誰在生產訓練用這六個庫」名單。DeepEP 部分集合通信仍在開發,Bucket 與負載平衡不能當成已完成項。Geopolitechs 點名華為 Atlas 960E 宣傳過單一 pod 4096 NPU 統一定址、SuperCluster 到 51.2 萬卡;128 卡 950 方案跟那張海報中間,工程時間與效能落差都還沒公開。
同一套 Python 能切後端,不表示除錯器、分析器、驅動與排程也一起搬家。CUDA 的護城河從來不只是語法。Nsight、cuDNN 十年累積、叢集排程器認得的錯誤碼、雲廠商現成的映像檔,昇騰這邊對應的是 CANN、bisheng、torch_npu。DeepSeek 補的是自己訓練會撞到的 GEMM、MoE all-to-all、MLA、TopK。其他實驗室若訓練棧不是 MLA 加 DeepSeek Sparse Attention,拿到這六個庫仍要自己寫核。TileLang 7500 star 說明已有人在 NVIDIA 上用它寫算子;昇騰後端今天才公開,生產案例名單是空的。
對 開源LLM 生態,這次比較像把 DeepSeek 自己的訓練棧「複製一份到昇騰」,而不是發明新的通用 CUDA 替代語言。路線是「一份核、兩個後端」,不是「請所有人改學昇騰 C」。16 萬張 950DT 若主要仍服務推理,開源六件套是在為「下一輪訓練能不能在昇騰上做」鋪路。要驗證這條路,最低條件也窄:用公開的 V4 規模設定,在 128 卡 950 超節點上跑完整預訓練,把損失曲線、每 token 能耗、對 NVIDIA 叢集的牆鐘時間放上桌。微信沒有這張圖。滿頻寬還要等 10 月中旬的商用 HDK。960DT 的 TileLang 數字也還沒有。在這三件事出現之前,99.8% 利用率只證明核寫得很貼這顆晶片,不證明訓練已經搬走,也不證明換卡之後帳單會比較低。
