程序员开发实例大全宝库

网站首页 > 编程文章 正文

DeepSeek团队推出DeepEP:高效专家并行通信库,专

zazugpt 2025-03-19 04:10:21 编程文章 23 ℃ 0 评论

标题:《DeepEP: an efficient expert-parallel communication library》
机构:DeepSeek团队(Chenggang Zhao、Shangyan Zhou等)
地址DeepEP[1]


背景与亮点

在大规模模型训练和推理中,Mixture-of-Experts (MoE) 和专家并行(Expert Parallelism, EP)是提升效率的重要技术。然而,通信瓶颈一直是制约性能的关键问题。为此,DeepSeek团队推出了DeepEP,一个专为MoE和专家并行设计的高性能通信库,具备以下亮点:

高吞吐低延迟:支持NVLink和RDMA网络,提供高效的all-to-all GPU通信内核,适用于训练和推理任务。
低精度优化:支持FP8和BF16数据类型,进一步提升计算效率。
跨域带宽优化:针对NVLink到RDMA的非对称带宽转发场景进行了深度优化。
低延迟解码:提供纯RDMA低延迟内核,特别适合推理解码阶段。
灵活配置:支持自适应路由、虚拟通道隔离和流多路复用,满足不同场景需求。


核心功能与设计

高效通信内核

DeepEP的核心在于其优化的通信内核,分为普通内核低延迟内核两种模式:

普通内核

适用场景:训练和推理预填充(prefilling)阶段。
特点

  • 支持高吞吐量的NVLink和RDMA通信。
  • 在H800 GPU上测试,最大带宽可达153 GB/s (NVLink) 和**46 GB/s (RDMA)**。
  • 提供SM(Streaming Multiprocessors)数量控制功能,可根据硬件资源动态调整。

低延迟内核

适用场景:推理解码(decoding)阶段。
特点

  • 纯RDMA实现,最小化延迟,典型场景下延迟仅163微秒
  • 引入基于hook的通信-计算重叠方法,无需占用GPU SM资源,最大化计算效率。
  • 支持CUDA Graph兼容性,便于流水线优化。

性能表现

以下是DeepEP在实际测试中的性能数据:

特色功能

自适应路由

  • 低延迟内核支持自适应路由,可有效消除网络拥塞,但会引入少量额外延迟。
  • 推荐在高负载环境下启用,在低负载环境下使用静态路由以获得最佳性能。

流量隔离

  • 使用InfiniBand的虚拟通道(Virtual Lanes, VL)实现流量隔离,避免不同类型任务间的干扰。
  • 可通过NVSHMEM_IB_SL环境变量配置虚拟通道分配。

拥塞控制

  • 当前未启用拥塞控制,因生产环境中未观察到显著拥塞现象。

快速上手

环境要求

  • 硬件:Hopper架构GPU(未来可能支持更多架构)。
  • 软件:Python 3.8+、CUDA 12.3+、PyTorch 2.1+。
  • 网络:节点内通信需NVLink,节点间通信需RDMA网络。

安装步骤

  1. 下载并安装依赖库NVSHMEM[2]
  2. 构建DeepEP:
    NVSHMEM_DIR=/path/to/installed/nvshmem python setup.py install
  3. 在Python项目中导入deep_ep模块即可使用。

示例代码

♂ 训练或推理预填充阶段


from deep_ep import Buffer

# 初始化通信缓冲区
buffer = Buffer(group, num_nvl_bytes, num_rdma_bytes)

# MoE分发操作
recv_x, recv_topk_idx, recv_topk_weights, _, _, _ = buffer.dispatch(x, topk_idx, topk_weights)

# MoE合并操作
combined_x, _ = buffer.combine(recv_x, handle)

♀ 推理解码阶段


from deep_ep import Buffer

# 初始化低延迟通信缓冲区
buffer = Buffer(group, 0, num_rdma_bytes, low_latency_mode=True)

# 低延迟分发操作
recv_hidden_states, recv_expert_count, _, _, _ = buffer.low_latency_dispatch(hidden_states, topk_idx)

# 低延迟合并操作
combined_hidden_states, _, _ = buffer.low_latency_combine(hidden_states, topk_idx, topk_weights)

总结

DeepEP作为一款专为MoE和专家并行设计的通信库,凭借其高吞吐、低延迟的特性,以及对低精度操作和跨域带宽优化的支持,为大规模模型训练和推理提供了强有力的技术支撑。无论是训练还是推理场景,DeepEP都能显著提升性能,助力开发者更高效地构建和部署模型。

如果你对MoE和专家并行感兴趣,或者正在寻找提升模型性能的工具,不妨试试DeepEP吧!

参考资料

[1]DeepEP: https://github.com/deepseek-ai/DeepEP

[2]NVSHMEM: third-party/README.md

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表