首页Machine Learningdeepseek-ai/DeepEP
deepseek-ai

DeepEP

AI#Machine Learning#CUDA#NCCL#Distributed Training#GPU
前往 GitHub →
9,594

// 项目简介

DeepEP 是一款专为现代机器学习训练和推理设计的高性能通信库,特别专注于专家并行技术。该库利用轻量级的 Just-In-Time 编译模块和 NCCL Gin 后端,提供高吞吐量、低延迟的 GPU kernels。它支持流水线并行和远程内存访问等高级功能,并与之前版本相比显著降低了 SM 资源消耗。

// 技术分析

DeepEP 是一款专为现代机器学习训练和推理而设计的高性能通信库,主要专注于专家并行(Expert Parallelism, EP)。通过利用轻量级的即时(JIT)编译模块,该库消除了复杂的 CUDA 安装步骤,同时实现了达到或超过硬件带宽限制的性能。V2 架构通过将 SM 使用率降低至 V1 的 1/4,显著提高了资源效率,并引入了统一的 ElasticBuffer 接口,简化了高吞吐量和低延迟通信内核的集成。

// 核心亮点

01
完全 JIT 编译的内核消除了对预安装 CUDA 编译的需求,简化了部署。
02
NCCL Gin 后端提供了一个轻量级的、仅包含头文件的通信层,可复用现有的 NCCL 通信器。
03
EPv2 引入了 SM 和 QP 数量计算的分析方法,消除了手动自动调优的需求。
04
统一的 ElasticBuffer 接口支持用于 MoE 分发和合并操作的高吞吐量和低延迟 API。
05
显著的 SM 资源优化使得在比之前版本使用更少 SM 的情况下,能够实现相同或更好的性能。
06
对流水线并行、上下文并行和远程内存访问(Engram)中零 SM 原语的实验性支持,最大化了计算可用性。

// 典型使用场景

01
高吞吐量和低延迟的 MoE 分发与合并操作
02
用于大规模模型训练和推理的高效专家并行
03
对流水线并行、上下文并行和远程内存访问的实验性支持

// 快速开始

要开始使用 DeepEP,请通过 pip 安装所需的 NCCL 依赖项,并确保您的环境满足硬件要求,例如 Hopper (SM90) GPU 和支持 RDMA 的网络。然后,您可以使用 'python setup.py install' 安装该库,并通过初始化 'ElasticBuffer' 来管理您的 MoE 通信设置,从而将其集成到您的项目中。对于开发,您可以运行 'tests/' 目录中提供的测试脚本来验证您的集群配置。