宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

一文看懂 DeepSeek 開源項目第三彈,300 行代碼揭示 V3/R1 推理效率背後的關鍵

2025年02月26日 首頁 » 熱門科技
開源周進行到第三天,DeepSeek一文看懂 DeepSeek 開源項目第三彈,300 行代碼揭示 V3/R1 推理效率背後的關鍵 不僅帶來了技術,還傳出 R2 在路上的好消息。
作為用戶,一邊見識著 DeepSeek 拋出來的一個個技術庫,還能看到應用了這些技術的模型,怎麼不算一種見證巨星的誕生。
一文看懂 DeepSeek 開源項目第三彈,300 行代碼揭示 V3/R1 推理效率背後的關鍵
今天出場的是 DeepGEMM,是一個專為乾淨、高效的 FP8 通用矩陣乘法 (GEMM) 而設計的庫,具有細粒度縮放功能。
如 DeepSeek-V3 中所述,它支持普通和混合專家 (MoE) 分組 GEMM。該庫用 CUDA 編寫,在安裝過程中無需編譯,而是使用輕量級即時 (JIT) 模塊在運行時編譯所有核心。
沒有說 DeepSeek 不厲害的意思,但這三天的開源都能看出,即便背靠幻方,他們始終不像大廠那樣資源雄厚,必須在壓榨計算資源方面狠下功夫。
包括這次的 GeepGEMM 仍然沒有離開這個主旋律,相比於之前的技術,DeepGEMM 的優勢在於:

更高的效率:通過 FP8 和兩級累積降低了計算和內存開銷

靈活的部署:JIT 編譯適應性強,減少預編譯負擔

針對性優化:支持 MoE 並深度適配 Hopper 張量核心

更簡潔的設計:核心代碼少,避免複雜依賴,便於學習和優化
這些特性使其在現代 AI 計算中脫穎而出,尤其是在需要高效推理和低功耗的場景下
DeepSeek 開源周,APPSO 將持續帶來最新動態和解讀,往期回顧👇
為現代 AI 計算而造
更高的效率和更靈活的部署,是 DeepGEMM 的亮點,核心邏輯僅約 300 行代碼,卻在大多數矩陣尺寸上超越了專家級別調優的核心。Hopper GPUs 上最高可達 1350 FP8 TFLOPS。
FP8 是一種壓縮數字的方法,相當於把原本需要 32 位或 16 位存儲的數字,精簡成 8 位存儲。就像你用更小的便利貼記筆記,雖然每張紙能寫的內容少了,但攜帶和傳遞更快
這種壓縮計算的好處是內存占用減少——同樣大小的任務,需要的「便利貼」更少,搬運小紙片比大文件快,因此計算速度也更快。但挑戰是很容易出錯。
一文看懂 DeepSeek 開源項目第三彈,300 行代碼揭示 V3/R1 推理效率背後的關鍵
為了解決 FP8 精度問題,DeepGEMM 用了巧妙的「兩步法」:用 FP8 進行大批量乘法,像用計算器快速按出一串結果。這個步驟里,誤差在所難免。
但沒關係,還有第二步:高精度匯總。每隔一段時間,就把這些結果轉成更精確的 32 位數累加,像用草稿紙仔細核對總和,避免誤差積累。
先跑,再通過兩級累積防錯。通過這種設計,DeepGEMM 讓 AI 模型在手機、電腦等設備上運行得更流暢,同時減少耗電,適合未來更複雜的應用場景
一文看懂 DeepSeek 開源項目第三彈,300 行代碼揭示 V3/R1 推理效率背後的關鍵
包括對 JIT 編譯的應用,也是類似的思路。JIT 編譯,全稱是「Just-In-Time」編譯,中文可以叫即時編譯,相對應的概念是靜態編譯。
一般的程序在你用之前就得全部寫好、編譯好,變成電腦能懂的語言,但 JIT 編譯不一樣,它是程序運行的時候才把代碼變成電腦能執行的指令。
它可以根據你的電腦情況現場調整代碼,量身定製出最適合的指令,不像提前編譯那樣死板,這樣程序就能跑得更順暢。只編譯當下要用的部分,不浪費時間和空間,讓一切都變得剛剛好。
Hopper 張量核心和 JIT 編譯是最佳搭檔。JIT 編譯可以在運行時根據你的 Hopper 顯卡情況,現場生成最優的代碼,讓張量核心的計算效率拉滿。
一文看懂 DeepSeek 開源項目第三彈,300 行代碼揭示 V3/R1 推理效率背後的關鍵
DeepGEMM 支持普通 GEMM 和混合專家(MoE)分組 GEMM,這些任務的計算需求各不相同。JIT 編譯能根據任務特點,臨時調整代碼,直接調動張量核心的FP8計算或變換引擎功能,減少浪費,提高速度。
怎麼形容這樣一種技術路線呢:纖巧、輕量、鋒利
對於廣大開發者來說,DeepGEMM 可以說是又一個福音。以下是部署相關的資訊,大家不妨玩起來。
DeepGEMM 部署指南
DeepGEMM 是一個專為 FP8 通用矩陣乘法(GEMM)優化的庫,具備精細的縮放機制,並在 DeepSeek-V3 中提出。
它支持標準 GEMM 和混合專家(MoE)分組 GEMM。該庫採用 CUDA 編寫,無需在安裝時進行預編譯,而是通過輕量級的即時編譯(JIT)模塊在運行時編譯所有核心函數。
目前,DeepGEMM 僅支持 NVIDIA Hopper 張量核心。針對 FP8 張量核心計算精度不足的問題,它採用 CUDA 核心的兩級累積(提升)技術進行優化。
儘管借鑑了一些 CUTLASS 和 CuTe 的概念,DeepGEMM 並未過度依賴它們的模板或數學運算,而是以簡潔為目標,僅包含一個核心計算核函數,代碼量約 300 行。這使得 DeepGEMM 成為學習 Hopper FP8 矩陣乘法與優化技術的清晰且易於理解的參考資源。
儘管設計簡潔,DeepGEMM 在各種矩陣形狀下的性能可與專業優化的庫媲美,甚至在某些情況下表現更優。
性能
我們在 H800 上使用 NVCC 12.8 進行測試,涵蓋 DeepSeek-V3/R1 推理過程中可能使用的所有矩陣形狀(包括預填充和解碼,但不涉及張量並行)。所有加速比指標均基於我們內部精心優化的 CUTLASS 3.6 實現進行對比計算。
DeepGEMM 在某些特定矩陣形狀下的表現不夠理想,如果你對優化有興趣,歡迎提交優化相關的 PR。
密集模型的標準 GEMM
一文看懂 DeepSeek 開源項目第三彈,300 行代碼揭示 V3/R1 推理效率背後的關鍵
MoE 模型的分組 GEMM(連續布局)
一文看懂 DeepSeek 開源項目第三彈,300 行代碼揭示 V3/R1 推理效率背後的關鍵
MoE 模型的分組 GEMM(掩碼布局)
一文看懂 DeepSeek 開源項目第三彈,300 行代碼揭示 V3/R1 推理效率背後的關鍵
快速啟動
環境要求

Hopper 架構 GPU,需支持 sm_90a

Python 3.8 及以上版本

CUDA 12.3 及以上版本(強烈推薦使用 12.8 及以上版本以獲得最佳性能)

PyTorch 2.1 及以上版本

CUTLASS 3.6 及以上版本(可通過 Git 子模塊克隆)
開發
# Submodule must be cloned
git clone --recursive [email protected]:deepseek-ai/DeepGEMM.git
# Make symbolic links for third-party (CUTLASS and CuTe) include directories
python setup.py develop
# Test JIT compilation
# Test all GEMM implements (normal, contiguous-grouped and masked-grouped)
安裝
python setup.py install
然後,在你的 Python 項目中導入 deep_gemm,盡情使用吧!

一文看懂 DeepSeek 開源項目第三彈,300 行代碼揭示 V3/R1 推理效率背後的關鍵

我們正在招募夥伴

✉️ 郵件標題
「姓名 崗位名稱」(請隨簡歷附上項目/作品或相關鏈接)
宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2025 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新