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.sh2、构建项目
执行工程构建脚本 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.sh3、在python工程中导入deep_ep
- A2 的
low_latency_dispatch和low_latency_combine算子支持两种内部算子类型:不分层和分层。 在分层算子的实现中,节点内通信使用 HCCS,节点间通信使用 RDMA。在不分层算子的实现中,节点内和节点间通信均使用纯 RDMA。 默认情况下,执行的是非层次化算子。如果配置了环境变量HCCL_INTRA_PCIE_ENABLE=1和HCCL_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.sh1、如果安装.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