
Salesforce元數(shù)據(jù)API開(kāi)發(fā)指南
在計(jì)算機(jī)中,數(shù)值需要用二進(jìn)制位存儲(chǔ),存儲(chǔ)方式?jīng)Q定了精度和所需空間。傳統(tǒng)上,AI 計(jì)算使用 32 位浮點(diǎn)數(shù)(FP32),這提供了很高的精度,但占用較多存儲(chǔ)空間和計(jì)算資源。
研究表明,很多 AI 任務(wù)實(shí)際上不需要這么高的精度。16 位浮點(diǎn)數(shù)(FP16)已被廣泛采用,而 8 位浮點(diǎn)數(shù)(FP8)是更進(jìn)一步的精度降低。雖然 FP8 精度較低,但對(duì)許多 AI 任務(wù)已經(jīng)足夠,同時(shí)能大大減少內(nèi)存使用并提高計(jì)算速度。 這就像用較粗的刻度測(cè)量大物體,雖然精度降低,但速度快得多,且在大多數(shù)情況下已經(jīng)足夠準(zhǔn)確。
GEMM(通用矩陣乘法)是深度學(xué)習(xí)中最基礎(chǔ)也最常見(jiàn)的計(jì)算操作。簡(jiǎn)單來(lái)說(shuō),它計(jì)算兩個(gè)數(shù)據(jù)表格(矩陣)相乘的結(jié)果。這看似簡(jiǎn)單,但在 AI 計(jì)算中,這些矩陣可能非常龐大,含有數(shù)百萬(wàn)個(gè)元素,使得矩陣乘法成為整個(gè)系統(tǒng)中最耗時(shí)的部分之一。幾乎所有神經(jīng)網(wǎng)絡(luò)層的計(jì)算本質(zhì)上都包含矩陣乘法操作。
DeepGEMM 專門優(yōu)化了 FP8 精度的矩陣乘法,同時(shí)解決了 Hopper 架構(gòu)在處理 FP8 計(jì)算時(shí)可能出現(xiàn)的精度問(wèn)題,確保計(jì)算結(jié)果準(zhǔn)確可靠。
標(biāo)準(zhǔn)矩陣乘法處理的是完整矩陣之間的運(yùn)算,適用于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)架構(gòu),所有數(shù)據(jù)都經(jīng)過(guò)統(tǒng)一處理。
而混合專家模型(MoE)是一種特殊的神經(jīng)網(wǎng)絡(luò)架構(gòu),它包含多個(gè)”專家”網(wǎng)絡(luò)和一個(gè)”門控”網(wǎng)絡(luò)。 門控網(wǎng)絡(luò)負(fù)責(zé)決定將輸入數(shù)據(jù)分配給哪些專家處理,而不是所有數(shù)據(jù)都經(jīng)過(guò)所有專家。這種方法允許模型規(guī)模大幅增長(zhǎng),同時(shí)保持計(jì)算效率,因?yàn)槊看翁幚碇患せ畈糠帜P投侨俊?/p>
針對(duì) MoE 模型,DeepGEMM 提供了兩種特殊數(shù)據(jù)排列方式:
NVIDIA 的 Hopper GPU 是專為人工智能和高性能計(jì)算設(shè)計(jì)的最新硬件平臺(tái),提供了多項(xiàng)關(guān)鍵技術(shù)改進(jìn):
張量核心是 GPU 內(nèi)部的特殊計(jì)算單元,專門針對(duì)矩陣運(yùn)算進(jìn)行了優(yōu)化,能大幅加速深度學(xué)習(xí)計(jì)算。Hopper 架構(gòu)的張量核心支持 FP8 計(jì)算,比前代產(chǎn)品提供更高性能。
TMA(張量?jī)?nèi)存加速器)是 Hopper 架構(gòu)引入的新功能,用于更快速、異步地移動(dòng)數(shù)據(jù)。DeepGEMM 充分利用 TMA 技術(shù)加載和存儲(chǔ)數(shù)據(jù),并使用 TMA 多播和描述符預(yù)取等高級(jí)功能進(jìn)一步提升性能。
即時(shí)編譯(Just-In-Time)是一種程序在運(yùn)行時(shí)才進(jìn)行編譯的技術(shù),而非傳統(tǒng)的在安裝或部署時(shí)預(yù)先編譯。DeepGEMM 采用完全即時(shí)編譯設(shè)計(jì),所有計(jì)算內(nèi)核都在實(shí)際運(yùn)行時(shí)進(jìn)行編譯,這帶來(lái)幾個(gè)優(yōu)勢(shì):
這種即時(shí)編譯方法顯著提高了小矩陣形狀的計(jì)算性能,技術(shù)思路類似于 Triton 等現(xiàn)代編譯器。
CUDA 是 NVIDIA 開(kāi)發(fā)的并行計(jì)算平臺(tái)和編程模型,允許開(kāi)發(fā)者利用 GPU 強(qiáng)大的并行處理能力。這是編寫 GPU 程序的基礎(chǔ)工具。
CUTLASS 是 NVIDIA 的開(kāi)源矩陣乘法庫(kù),提供了高性能的矩陣計(jì)算模板。DeepGEMM 借鑒了 CUTLASS 的一些思路,但沒(méi)有直接依賴其復(fù)雜的模板系統(tǒng),而是自行實(shí)現(xiàn)了一套更簡(jiǎn)潔的代碼,既保證性能又易于理解和學(xué)習(xí)。
DeepGEMM 采用了線程專業(yè)化技術(shù),這是一種高效的任務(wù)分工方法。在這種設(shè)計(jì)中,不同的計(jì)算線程被分配專門負(fù)責(zé)特定任務(wù):一些負(fù)責(zé)數(shù)據(jù)移動(dòng),一些負(fù)責(zé)核心計(jì)算,一些負(fù)責(zé)結(jié)果處理。
這種分工使得數(shù)據(jù)移動(dòng)、計(jì)算和后處理能夠同時(shí)進(jìn)行,形成高效的流水線,大大提高整體性能。
DeepGEMM 包含多項(xiàng)先進(jìn)技術(shù)創(chuàng)新:
傳統(tǒng)上,GPU 計(jì)算通常使用標(biāo)準(zhǔn)大小的數(shù)據(jù)塊(如 128×128)。DeepGEMM 支持非標(biāo)準(zhǔn)塊大小(如 112×128),這能更好地適應(yīng)特定矩陣形狀,提高硬件資源利用率。例如,對(duì)于 M=256,N=7168 的矩陣,標(biāo)準(zhǔn)塊大小只能利用 112 個(gè)計(jì)算單元,而使用非標(biāo)準(zhǔn)塊大小可以利用 128 個(gè),效率提升明顯。
通過(guò)分析不同編譯器版本產(chǎn)生的機(jī)器代碼,DeepGEMM 團(tuán)隊(duì)發(fā)現(xiàn)并實(shí)現(xiàn)了特殊的指令排序優(yōu)化。這種底層優(yōu)化調(diào)整了計(jì)算指令的執(zhí)行方式,使計(jì)算單元能更高效地并行工作,顯著提升了 FP8 計(jì)算性能。
DeepGEMM 設(shè)計(jì)了一套統(tǒng)一的計(jì)算任務(wù)調(diào)度系統(tǒng),采用特殊的排布策略,增強(qiáng)緩存重用效率,減少內(nèi)存訪問(wèn),提高整體性能。
使用 DeepGEMM 需要支持 sm_90a 的 Hopper 架構(gòu) GPU、Python 3.8 以上、CUDA 12.3 以上(推薦 12.8 以上獲得最佳性能)、PyTorch 2.1 以上以及 CUTLASS 3.6 以上。
# Submodule must be cloned
git?clone?--recursive git@github.com:deepseek-ai/DeepGEMM.git
# Make symbolic links for third-party (CUTLASS and CuTe) include directories
python setup.py develop
# Test JIT compilation
python tests/test_jit.py
# Test all GEMM implements (normal, contiguous-grouped and masked-grouped)
python tests/test_core.py
python setup.py install
最后, import?deep_gemm
?就行了
DeepGEMM 提供了清晰的 Python 編程接口,包括:
同時(shí),庫(kù)提供多個(gè)實(shí)用工具函數(shù),用于設(shè)置計(jì)算資源和數(shù)據(jù)格式,讓開(kāi)發(fā)者能根據(jù)具體需求進(jìn)行配置。
DeepGEMM 作為 DeepSeek 開(kāi)源周的第三日發(fā)布,為 Hopper 架構(gòu) GPU 提供了高效的 FP8 矩陣乘法實(shí)現(xiàn)。 通過(guò)精心設(shè)計(jì)的 300 行核心代碼,這個(gè)庫(kù)在多種場(chǎng)景下超越了現(xiàn)有解決方案,為普通神經(jīng)網(wǎng)絡(luò)和混合專家模型提供了強(qiáng)大的計(jì)算基礎(chǔ)。
同時(shí),其清晰的代碼,也堪稱是學(xué)習(xí) GPU 優(yōu)化技術(shù)的優(yōu)質(zhì)資源。
目前,DeepGEMM 專門針對(duì) Hopper 架構(gòu) GPU 優(yōu)化,未來(lái)可能擴(kuò)展到更多硬件平臺(tái)。
文章轉(zhuǎn)載自:一文詳解:DeepSeek 第三天開(kāi)源的 DeepGEMM
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)