CANN/HCOMM源码构建指南

张开发
2026/5/9 14:18:02 15 分钟阅读

分享文章

CANN/HCOMM源码构建指南
源码构建【免费下载链接】hcommHCOMMHuawei Communication是HCCL的通信基础库提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm环境准备本项目支持源码构建编译运行前需参考以下步骤完成基础环境搭建和源码下载确保已安装NPU驱动、固件和CANN软件。前置依赖本项目编译用到的软件依赖如下注意满足版本号要求。python 3.7.0pip3 20.3.0setuptools 45.0.0wheel 0.34.0gcc g : 7.3.0 至 13.3.xcmake 3.16.0pkg-config 0.29.1用于编译rdma-coreccache可选用于提高二次编译速度安装CANN软件包安装驱动与固件运行态依赖驱动与固件的下载和安装操作请参考《CANN软件安装指南》中“准备软件包”和“安装NPU驱动和固件”章节。驱动与固件是运行态依赖若仅编译本项目源码可以不安装。安装CANN软件包场景1体验master版本能力或基于master版本进行开发请单击下载链接选择最新时间版本并根据产品型号和环境架构下载对应软件包。安装命令如下更多指导参考《CANN软件安装指南》。安装CANN Toolkit开发套件包。# 确保安装包具有可执行权限 chmod x Ascend-cann-toolkit_${cann_version}_linux-${arch}.run # 安装命令 ./Ascend-cann-toolkit_${cann_version}_linux-${arch}.run --install --install-path${install_path}安装CANN ops算子包运行态依赖。ops算子包是运行态依赖若仅编译本项目源码可不安装此软件包。# 确保安装包具有可执行权限 chmod x Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run # 安装命令 ./Ascend-cann-${soc_name}-ops_${cann_version}_linux-${arch}.run --install --install-path${install_path}${cann_version}表示CANN软件包版本号。${arch}表示CPU架构如aarch64、x86_64。${soc_name}表示NPU型号名称。${install_path}表示指定安装路径CANN ops算子包需与CANN Toolkit开发套件包安装在相同路径root用户默认安装在/usr/local/Ascend目录。场景2体验已发布版本能力或基于已发布版本进行开发请访问CANN官网下载中心选择发布版本仅支持CANN 8.5.0及后续版本并根据产品型号和环境架构下载对应软件包最后参考网页提供的命令完成安装。环境验证安装完CANN软件包后需验证环境是否正常。检查NPU设备# 运行npu-smi若能正常显示设备信息则驱动正常 npu-smi info检查CANN软件# 查看CANN Toolkit开发套件包的version字段提供的版本信息默认路径安装arch表示CPU架构aarch64或x86_64。 cat /usr/local/Ascend/cann/arch-linux/ascend_toolkit_install.info # 查看CANN ops算子包的version字段提供的版本信息默认路径安装。 cat /usr/local/Ascend/cann/arch-linux/ascend_ops_install.info环境变量配置按需选择合适的命令使环境变量生效。# 默认路径安装以root用户为例非root用户将/usr/local替换为${HOME} source /usr/local/Ascend/cann/set_env.sh # 指定路径安装 # source ${install_path}/cann/set_env.sh编译安装下载源码源码下载命令如下请将${tag_version}替换为目标分支标签名源码分支标签与CANN版本配套关系参见release仓库。# 下载项目对应分支源码 git clone -b ${tag_version} https://gitcode.com/cann/hcomm.git编译源码本项目提供一键式编译构建能力进入代码仓根目录执行如下命令# 编译 host 包 bash build.sh --pkg # 编译 host device 包 bash build.sh --pkg --full编译时会自动下载开源第三方软件依赖中列出的依赖包。如果编译环境无法访问网络您需要在联网环境中下载上述依赖压缩包手动上传至编译环境并通过--cann_3rd_lib_path参数指定依赖包的存放路径。# 指定依赖包存放路径默认为./third_party bash build.sh --cann_3rd_lib_path{your_3rd_party_path}编译完成后会在./build_out目录下生成cann-hcomm_version_linux-arch.run软件包。其中version表示软件版本号arch表示操作系统架构取值包括“x86_64”与“aarch64”。安装安装编译生成的HCOMM软件包bash ./build_out/cann-hcomm_version_linux-arch.run --full请注意编译时需要将上述命令中的软件包名称替换为实际软件包名称。安装完成后用户编译生成的HCOMM软件包会替换已安装CANN Toolkit开发套件包中的HCOMM相关软件。卸载若您想卸载编译生成的HCOMM软件包恢复到安装完CANN Toolkit开发套件包的状态可参考如下命令bash ./build_out/cann-hcomm_version_linux-arch.run --uninstall请注意卸载时需要将上述命令中的软件包名称替换为实际软件包名称。测试LLT 测试安装完编译生成的HCOMM软件包后可通过如下命令执行LLT用例。bash build.sh --ut上板测试[!NOTE]说明 上板测试前请确保已安装驱动固件、CANN Toolkit开发套件包与CANN ops算子包。开发者可通过HCCL Test工具进行集合通信功能与性能的上板测试HCCL Test工具的使用流程如下工具编译使用HCCL Test工具前需要安装MPI依赖、编译HCCL Test工具详细操作方法可参见配套版本的昇腾文档中心-HCCL性能测试工具使用指南中的“MPI安装与配置”与“工具编译”章节。关闭验签本源码仓编译生成的cann-hcomm_version_linux-arch.run软件包中包含如下tar.gz子包cann-hcomm-compat.tar.gz: HCOMM兼容升级包。cann-hccd-compat.tar.gz: DataFlow兼容升级包。aicpu_hcomm.tar.gz: AI CPU通信基础包。上述tar.gz包会在业务启动时加载至Device加载过程中默认会由驱动进行安全验签确保包可信。由于开发者通过本源码仓自行编译生成的tar.gz包中并不含签名头所以需要关闭驱动安全验签的机制。关闭验签方式配套使用Ascend HDK 25.5.T2.B001及以上版本并通过该Ascend HDK自带的npu-smi工具关闭验签。以下为参考命令需要以root用户在物理机上执行以device 0为例。npu-smi set -t custom-op-secverify-enable -i 0 -d 1 # 使能验签配置 npu-smi set -t custom-op-secverify-mode -i 0 -d 0 # 关闭客户自定义验签执行HCCL Test测试命令测试集合通信的功能及性能。以1个计算节点8个NPU设备测试AllReduce算子的性能为例命令示例如下# “/usr/local/Ascend”是root用户以默认路径安装的CANN软件安装路径请根据实际情况替换 cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test # 数据量-b从8KB到64MB增量系数-f为2倍参与训练的NPU个数为8 mpirun -n 8 ./bin/all_reduce_test -b 8K -e 64M -f 2 -d fp32 -o sum -p 8工具的详细使用说明可参见昇腾文档中心-HCCL 性能测试工具使用指南中的“工具执行”章节。查看结果执行完HCCL Test工具后回显示例如下“check_result”为 success代表通信算子执行结果成功AllReduce 算子功能正确。”aveg_time“集合通信算子的执行耗时单位 us。”alg_bandwidth“集合通信算子执行带宽单位为 GB/s。”data_size“单个 NPU 上参与集合通信的数据量单位为 Bytes。附录开源第三方软件依赖编译本项目时依赖的第三方开源软件列表如下开源软件版本下载地址json3.11.3include.zipmakeself2.5.0makeself-release-2.5.0-patch1.tar.gzopenssl3.0.9openssl-openssl-3.0.9.tar.gzhcomm_utils9.0.0 (aarch64)cann-hcomm-utils_9.0.0_linux-aarch64.tar.gzhcomm_utils9.0.0 (x86_64)cann-hcomm-utils_9.0.0_linux-x86_64.tar.gzgoogletest1.14.0googletest-1.14.0.tar.gzboost1.87.0boost_1_87_0.tar.gzmockcpp2.7-h4mockcpp-2.7.tar.gzmockcpp-patch2.7-h4mockcpp-2.7_py3.patchabseil-cpp20250127.0abseil-cpp-20250127.0.tar.gzprotobuf25.1protobuf-25.1.tar.gzrdma-corev42.7-h1rdma-core-42.7.tar.gzrdma-core-patchv42.7-h1rdma-core-42.7.patchcann-cmakemaster-004cmake-master-004.tar.gz【免费下载链接】hcommHCOMMHuawei Communication是HCCL的通信基础库提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

更多文章