DeepEP – DeepSeek 開(kāi)源的專(zhuān)家并行通信庫(kù),專(zhuān)為 MoE 訓(xùn)練和推理設(shè)計(jì)
DeepEP 是 DeepSeek 開(kāi)源的首個(gè)專(zhuān)為混合專(zhuān)家模型(MoE)訓(xùn)練與推理設(shè)計(jì)的高效 EP(專(zhuān)家并行)通信庫(kù)。它提供高吞吐量和低延遲的全對(duì)全 GPU 內(nèi)核,支持節(jié)點(diǎn)內(nèi)和節(jié)點(diǎn)間的 NVLink 以及 RDMA 通信。DeepEP 針對(duì) DeepSeek-V3 論文中的組限制門(mén)控算法進(jìn)行了特別優(yōu)化,支持 FP8 數(shù)據(jù)格式調(diào)度,并引入了基于 Hook 的通信-計(jì)算重疊技術(shù),從而不占用 GPU 計(jì)算資源。在推理解碼階段,其低延遲內(nèi)核表現(xiàn)卓越,延遲低至 163 微秒。DeepEP 適用于 Hopper GPU 架構(gòu),并要求 Python 3.8、CUDA 12.3 和 PyTorch 2.1 及以上版本。
DeepEP是什么
DeepEP 是 DeepSeek 開(kāi)源的首個(gè)專(zhuān)為混合專(zhuān)家模型(MoE)訓(xùn)練和推理設(shè)計(jì)的開(kāi)源 EP(專(zhuān)家并行)通信庫(kù)。它提供了高吞吐量和低延遲的全對(duì)全 GPU 內(nèi)核,支持節(jié)點(diǎn)內(nèi)和節(jié)點(diǎn)間的 NVLink 和 RDMA 通信。DeepEP 針對(duì) DeepSeek-V3 論文中的組限制門(mén)控算法進(jìn)行了優(yōu)化,支持 FP8 數(shù)據(jù)格式調(diào)度,并引入了基于 Hook 的通信-計(jì)算重疊方法,確保不占用 GPU 的計(jì)算資源。在推理解碼階段,其低延遲內(nèi)核的性能表現(xiàn)出色,延遲低至 163 微秒。DeepEP 主要適用于 Hopper GPU 架構(gòu),需配備 Python 3.8、CUDA 12.3 和 PyTorch 2.1 及以上版本。
DeepEP的主要功能
- 高效通信內(nèi)核:DeepEP 提供高吞吐量和低延遲的全對(duì)全(all-to-all)GPU 內(nèi)核,適用于 MoE 的分發(fā)(dispatch)和合并(combine)操作。
- 低精度計(jì)算支持:支持 FP8 和 BF16 等低精度數(shù)據(jù)格式,顯著提升計(jì)算效率并降低內(nèi)存需求。
- 優(yōu)化的通信機(jī)制:針對(duì) DeepSeek-V3 論文中提出的組限制門(mén)控算法,DeepEP 提供了優(yōu)化的內(nèi)核,支持從 NVLink 到 RDMA 的非對(duì)稱(chēng)帶寬轉(zhuǎn)發(fā),適用于訓(xùn)練和推理的預(yù)填充任務(wù)。
- 低延遲推理解碼:提供純 RDMA 的低延遲內(nèi)核,特別適合對(duì)延遲敏感的推理解碼場(chǎng)景,延遲低至 163 微秒。
- 通信與計(jì)算重疊:引入基于 Hook 的通信-計(jì)算重疊方法,確保不占用 GPU 的流多處理器(SM)資源,從而最大化計(jì)算效率。
- 靈活的資源管理:支持靈活的 GPU 資源管理,允許用戶(hù)控制 SM 的使用數(shù)量,以適應(yīng)不同的工作負(fù)載。
- 網(wǎng)絡(luò)配置優(yōu)化:DeepEP 在 InfiniBand 網(wǎng)絡(luò)上經(jīng)過(guò)全面測(cè)試,支持通過(guò)虛擬通道(VL)實(shí)現(xiàn)流量隔離,有效防止不同類(lèi)型流量之間的干擾。
DeepEP的項(xiàng)目地址
- Github倉(cāng)庫(kù):https://github.com/deepseek-ai/DeepEP
DeepEP的性能表現(xiàn)
- 高吞吐量?jī)?nèi)核:DeepEP 在 H800 GPU 和 CX7 InfiniBand 400 Gb/s RDMA 網(wǎng)絡(luò)卡上進(jìn)行了測(cè)試,展現(xiàn)了卓越的吞吐量表現(xiàn):
- 內(nèi)節(jié)點(diǎn)通信:使用 NVLink 的內(nèi)節(jié)點(diǎn)通信中,分發(fā)和合并操作的瓶頸帶寬分別達(dá)到 153 GB/s 和 158 GB/s。
- 跨節(jié)點(diǎn)通信:在使用 RDMA 的跨節(jié)點(diǎn)通信中,分發(fā)和合并操作的瓶頸帶寬分別達(dá)到 43-47 GB/s。
- 低延遲內(nèi)核:DeepEP 的低延遲內(nèi)核專(zhuān)為推理解碼設(shè)計(jì),采用純 RDMA 技術(shù),顯著降低延遲:
- 在處理 8 個(gè)專(zhuān)家 時(shí),分發(fā)操作的延遲為 163 微秒,合并操作的延遲為 318 微秒,RDMA 帶寬為 46 GB/s。
- 隨著專(zhuān)家數(shù)量增加,延遲略有上升,但在 256 個(gè)專(zhuān)家 時(shí),分發(fā)和合并操作的延遲分別為 194 微秒 和 360 微秒。
- 系統(tǒng)兼容性:DeepEP 主要與 InfiniBand 網(wǎng)絡(luò)兼容,也支持在收斂以太網(wǎng)(RoCE)上運(yùn)行。要求使用 Hopper 架構(gòu)的 GPU、Python 3.8 及以上版本、CUDA 12.3 及以上版本以及 PyTorch 2.1 及以上版本。
DeepEP的系統(tǒng)要求
- 硬件要求:
- 必須支持 Hopper 架構(gòu)的 GPU(如 H100、H800),未來(lái)可能會(huì)支持更多架構(gòu)。
- 需要支持 GPUDirect RDMA 的設(shè)備,具體要求可參考 NVSHMEM 的硬件規(guī)格。
- 節(jié)點(diǎn)內(nèi)通信需使用 NVLink,節(jié)點(diǎn)間通信需使用 RDMA 網(wǎng)絡(luò)。
- 軟件要求:
- 需要 Python 3.8 及以上版本。
- 需安裝 CUDA 12.3 及以上版本。
- 需安裝 PyTorch 2.1 及以上版本。
- 需安裝修改版的 NVSHMEM,具體安裝指南可參考相關(guān)文檔。
- 推薦安裝 GDRCopy(v2.4 及以上版本),用于低延遲 GPU 內(nèi)存拷貝。
- 網(wǎng)絡(luò)要求:
- 主要測(cè)試環(huán)境為 InfiniBand 網(wǎng)絡(luò),兼容 RDMA over Converged Ethernet (RoCE)。
- 支持通過(guò)虛擬通道(VL)進(jìn)行流量隔離,以防止不同工作負(fù)載之間的干擾。
- 其他要求:
- 在容器化環(huán)境中,需確保主機(jī)加載了必要的內(nèi)核模塊(如
gdrdrv
),并正確安裝相關(guān) DEB 包。 - 安裝完成后,需設(shè)置環(huán)境變量(如
NVSHMEM_DIR
)以供 DeepEP 使用。
- 在容器化環(huán)境中,需確保主機(jī)加載了必要的內(nèi)核模塊(如
DeepEP的應(yīng)用場(chǎng)景
- 大規(guī)模模型訓(xùn)練:DeepEP 為混合專(zhuān)家模型(MoE)的訓(xùn)練提供高效的并行通信支持,顯著提升訓(xùn)練效率。
- 推理任務(wù):適合對(duì)延遲敏感的推理解碼場(chǎng)景,能顯著降低延遲,提高推理吞吐量。
- 高性能計(jì)算:支持多種硬件平臺(tái),包括 Hopper GPU 架構(gòu),優(yōu)化了 NVLink 和 RDMA 網(wǎng)絡(luò)的通信性能。
- 智能客服:通過(guò)優(yōu)化推理過(guò)程,DeepSeek 的智能客服系統(tǒng)能夠快速響應(yīng)用戶(hù)需求,提升服務(wù)效率。
- 金融領(lǐng)域:可用于風(fēng)險(xiǎn)評(píng)估、自動(dòng)化報(bào)告生成等,通過(guò)分析企業(yè)財(cái)報(bào)和輿情數(shù)據(jù),預(yù)測(cè)違約概率。
相關(guān)文章
