DeepSeek開(kāi)源DeepGEMM代碼庫(kù) 提供高效FP8通用矩陣乘法支持
2月26日,在開(kāi)源周的第三天,DeepSeek宣布正式開(kāi)放其DeepGEMM代碼庫(kù),進(jìn)一步推動(dòng)人工智能與深度學(xué)習(xí)領(lǐng)域的技術(shù)進(jìn)步。作為一款專為簡(jiǎn)潔高效的FP8通用矩陣乘法(GEMM)設(shè)計(jì)的工具,DeepGEMM在V3/R1訓(xùn)練和推理過(guò)程中提供了強(qiáng)大的支持,特別適合普通和專家混合(MoE)分組的GEMM運(yùn)算。
DeepGEMM的設(shè)計(jì)注重簡(jiǎn)潔和高效,支持不同矩陣形狀的高效計(jì)算,能夠輕松適應(yīng)FP8精度需求的訓(xùn)練和推理任務(wù)。庫(kù)采用CUDA編寫,安裝過(guò)程不需要編譯,通過(guò)在運(yùn)行時(shí)動(dòng)態(tài)使用輕量級(jí)即時(shí)編譯模塊來(lái)編譯所有內(nèi)核,這使得使用過(guò)程非常便捷。盡管DeepGEMM的代碼量?jī)H約300行,它在多種矩陣形狀下的計(jì)算性能表現(xiàn)已經(jīng)超越了專家調(diào)優(yōu)的庫(kù)。
在測(cè)試中,DeepGEMM展現(xiàn)了極為出色的計(jì)算性能。DeepSeek團(tuán)隊(duì)在英偉達(dá)H800上使用NVCC 12.8對(duì)DeepGEMM進(jìn)行測(cè)試,結(jié)果顯示該庫(kù)的計(jì)算性能最高可達(dá)到1358 TFLOPS,內(nèi)存帶寬可達(dá)到2668 GB/s。與基于CUTLASS 3.6的優(yōu)化實(shí)現(xiàn)相比,DeepGEMM在計(jì)算速度上可提速最高達(dá)2.7倍。此外,在分組GEMM(MoE模型)的連續(xù)性布局和掩碼布局下,DeepGEMM可實(shí)現(xiàn)多達(dá)1.2倍的性能提升。
目前,DeepGEMM僅支持英偉達(dá)Hopper架構(gòu)運(yùn)算,針對(duì)FP8張量核心的累加不精確問(wèn)題,DeepGEMM采用了CUDA核心的兩級(jí)累加(提升)方法,進(jìn)一步提高了運(yùn)算精度。該代碼庫(kù)的靈活性和高效性使得它在深度學(xué)習(xí)和AI推理中具有廣泛的應(yīng)用前景。
要使用DeepGEMM,用戶的環(huán)境需要滿足以下要求:
支持Hopper架構(gòu)的GPU,sm_90a
Python 3.8及以上
CUDA 12.3及以上(推薦12.8)
PyTorch 2.1及以上
CUTLASS 3.6及以上