Skip to content

Latest commit

 

History

History
91 lines (74 loc) · 3.13 KB

File metadata and controls

91 lines (74 loc) · 3.13 KB

DeepEP-Ascend

English | 中文

介绍

DeepEP的ascend实现

软硬件配套说明

硬件型号支持:Atlas A2 和 A3 系列产品 平台:aarch64/x86 配套软件

  • 驱动 Ascend HDK 25.0.RC1.1、CANN社区版8.2.RC1.alpha003及之后版本(参考《CANN软件安装指南》安装CANN开发套件包以及配套固件和驱动)
  • 安装CANN软件前需安装相关依赖列表
  • Python >= 3.9
  • PyTorch >= 2.5.1, torch-npu >= 2.5.1-7.0.0

快速上手

DeepEP-Ascend支持A2和A3,需要在A2和A3上分别生成包。

编译执行

1、准备CANN的环境变量(根据安装路径修改)

source /usr/local/Ascend/ascend-toolkit/set_env.sh

2、构建项目 执行工程构建脚本 build.sh前,根据CANN安装路径,修改build.sh:line7_ASCEND_INSTALL_PATH

  • A3
    # Building Project
    bash build.sh -a deepep
  • A2
    # Building Project
    bash build.sh -a deepep2

安装

1、执行pip安装命令,将.whl安装到你的python环境下

pip install output/deep_ep*.whl

# 设置deep_ep_cpp*.so的软链接
cd "$(pip show deep-ep | grep -E '^Location:' | awk '{print $2}')" && ln -s deep_ep/deep_ep_cpp*.so && cd -

# (可选)确认是否可以成功导入
python -c "import deep_ep; print(deep_ep.__path__)"

2、执行CANN的环境变量(根据安装路径修改)

source /usr/local/Ascend/ascend-toolkit/set_env.sh

3、在python工程中导入deep_ep

特性

  1. A2 的 low_latency_dispatchlow_latency_combine 算子支持两种内部算子类型:不分层和分层。 在分层算子的实现中,节点内通信使用 HCCS,节点间通信使用 RDMA。在不分层算子的实现中,节点内和节点间通信均使用纯 RDMA。 默认情况下,执行的是非层次化算子。如果配置了环境变量 HCCL_INTRA_PCIE_ENABLE=1HCCL_INTRA_ROCE_ENABLE=0,则将执行分层算子。 A3 无需分层,节点内和节点间通信均使用纯 HCCS 通信。

测试

执行deepep相关测试脚本

python3 tests/python/deepep/test_fused_deep_moe.py
python3 tests/python/deepep/test_intranode.py
python3 tests/python/deepep/test_low_latency.py

# 在A2双机下执行,测试internode (需要先设置run_test_internode.sh中的主节点IP)
bash run_test_internode.sh

常见问题

1、如果安装.whl后,在工程中import deep_ep出现找不到deep_ep库,则检查是否正确安装到当前Python环境的site-packages目录下; 查看安装路径:

pip show deep-ep

2、如果安装.whl后,出现找不到deep_ep_cpp,则需要将site-packages/deep_ep目录下的deep_ep_cpp*.so文件软链接到site-packages目录下; 在site-packages目录下执行:

ln -s deep_ep/deep_ep_cpp*.so