CANN/hixl源码构建指南

CANN/hixl源码构建指南 源码构建【免费下载链接】hixlHIXLHuawei Xfer Library是一个灵活、高效的昇腾单边通信库面向集群场景提供简单、可靠、高效的点对点数据传输能力。项目地址: https://gitcode.com/cann/hixl环境准备本项目支持源码编译在源码编译前需要确保已经安装Toolkit开发套件包。执行所有样例前需要确保已经安装驱动和固件执行python样例前还需要确保已经安装ops包。软件安装方式请根据如下描述进行选择安装方式说明使用场景使用Docker部署Docker镜像是一种CANN高效部署方式目前仅适用于Atlas A2系列产品OS仅支持Ubuntu操作系统。适用有昇腾设备需要快速搭建环境的开发者。手动安装-适用有昇腾设备想体验手动安装CANN包或体验最新master分支能力的开发者。场景一使用Docker部署1.安装固件和驱动请参考CANN软件安装指南。2.安装依赖、CANN Toolkit开发套件包以及CANN ops算子包操作步骤如下。配套 X86 构建镜像地址swr.cn-north-4.myhuaweicloud.com/ci_cann/ubuntu24.04_x86:lv6_v1.1039配套 ARM 构建镜像地址swr.cn-north-4.myhuaweicloud.com/ci_cann/ubuntu24.04_arm:lv6_v1.1039以下是推荐的使用方式可供参考:image${根据本地机器架构类型从上面选择配套的构建镜像地址} # 1. 拉取配套构建镜像 docker pull ${image} # 2. 创建并进入容器 # 假设您需要使用的NPU设备安装在/dev/davinci0和/dev/davinci1上并且您的NPU驱动程序安装在/usr/local/Ascend上 docker run \ --name env_for_hixl_build \ --device /dev/davinci0 \ --device /dev/davinci1 \ --device /dev/davinci_manager \ --device /dev/devmm_svm \ --device /dev/hisi_hdc \ --cap-add SYS_PTRACE \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/bin/hccn_tool:/usr/bin/hccn_tool \ -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ -v /usr/local/Ascend/driver/tools/:/usr/local/Ascend/driver/tools/ \ -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \ -v /etc/ascend_install.info:/etc/ascend_install.info \ -it ${image} bash[!NOTE]说明--cap-add SYS_PTRACE创建Docker容器时添加SYS_PTRACE权限以支持本地验证时的内存泄漏检测功能。更多 docker 选项介绍请通过docker --help查询。配套构建镜像的CANN包安装路径为/home/jenkins/Ascend。如需要使用镜像之外的其他CANN版本请参考如下章节在docker内手工安装CANN包。更多版本镜像和镜像的使用方法可根据需要在Ascend-CANN镜像自行选择。场景二手动安装CANN包场景1体验master版本能力或基于master版本进行开发如果您想体验master分支最新能力单击下载链接获取软件包按照如下步骤进行安装。更多安装指导请参考CANN软件安装指南。安装固件和驱动请参考CANN软件安装指南。安装依赖。以下所列为源码编译用到的依赖请注意版本要求。# Ubuntu/Debian操作系统安装命令示例如下其他操作系统请自行安装 sudo apt-get install cmake bash ccacheGCC 7.3.0Python 3.9.0CMake 3.16.0 (建议使用3.20.0版本)bash 5.1.16由于测试用例开启了地址消毒代码中执行system函数会触发低版本的bash被地址消毒检查出内存泄露。ccache可选ccache为编译器缓存优化工具用于加快二次编译速度。安装社区版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包。# 确保安装包具有可执行权限 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}表示指定安装路径需要与toolkit包安装在相同路径root用户默认安装在/usr/local/Ascend目录。场景2体验已发布版本能力或基于已发布版本进行开发如果您想体验官网正式发布的CANN包能力请访问CANN官网下载中心选择对应版本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字段提供的版本信息默认路径安装arch表示CPU架构aarch64或x86_64。 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源码编译安装第三方开源依赖以下所列为源码编译用到的依赖请注意版本要求。# Ubuntu/Debian操作系统安装命令示例如下其他操作系统请自行安装 sudo apt-get install cmake bash ccacheGCC 7.3.0Python 3.9.0CMake 3.16.0bash 5.1.16由于测试用例开启了地址消毒代码中执行system函数会触发低版本的bash被地址消毒检查出内存泄露。ccache可选ccache为编译器缓存优化工具用于加快二次编译速度。HIXL在编译时依赖的第三方开源软件列表如下开源软件版本下载地址googletest1.14.0googletest-1.14.0.tar.gzjson3.11.3include.zipmakeself2.5.0makeself-release-2.5.0-patch1.tar.gzpybind112.13.6pybind11-2.13.6.tar.gzcann-cmakemaster-004cmake-master-004.tar.gz[!NOTE]注意 如果您从其他地址下载请确保版本号一致。源码下载开发者可通过如下命令下载本仓源码git clone https://link.gitcode.com/i/4cc7a3c0d305896768726980f139be78.git[!NOTE] 注意 gitcode平台在使用HTTPS协议的时候要配置并使用个人访问令牌代替登录密码进行克隆推送等操作。若您的编译环境无法访问网络由于无法通过git指令下载代码须在联网环境中下载源码后手动上传至目标环境。在联网环境中进入本项目主页, 通过下载ZIP或clone按钮根据指导完成源码下载。连接至离线环境中上传源码至您指定的目录下。若下载的为源码压缩包还需进行解压。源码编译若您的编译环境可以访问网络编译过程中将自动下载上述开源第三方软件可以使用如下命令进行编译# 默认路径安装root用户默认路径是/usr/local/Ascend普通用户默认路径是${HOME}/Ascend bash build.sh若您的编译环境无法访问网络您需要在联网环境中下载上述开源软件压缩包并手动上传至您的编译环境中。您需要在编译环境中新建一个{your_3rd_party_path}目录来存放这些第三方开源软件。mkdir -p {your_3rd_party_path}创建好目录后将下载好的第三方开源软件压缩包上传至目录{your_3rd_party_path}后可以使用如下命令进行编译bash build.sh --cann_3rd_lib_path{your_3rd_party_path}成功编译后会在build_out目录下生成cann-hixl_${cann_version}_linux-${arch}.run。${cann_version}表示cann版本号。${arch}表示CPU架构如aarch64、x86_64。如需要进行样例验证或者基准测试Benchmarks验证编译时候附加指定参数--examples更多执行选项可以用-h查看或查询下表。bash build.sh -h参数说明默认值-h, --help打印帮助信息--v, --verbose显示详细的编译命令--jN设置编译时使用的线程数8--build_typeRelease\|Debug--build-typeRelease\|Debug设置编译类型Release--cann_3rd_lib_pathPATH--cann-3rd-lib-pathPATH设置第三方依赖包安装路径./third_party--output_pathPATH--output-pathPATH设置编译输出路径./build_out--pkg构建run包保留参数---examples编译样例和基准测试OFF--asan启用地址消毒用于内存泄漏检测OFF--cov启用代码覆盖率OFF--sign-scriptPATH--sign_scriptPATH设置签名脚本的指定路径---enable-sign启用签名功能-本地验证(tests)利用tests路径下的测试用例进行本地验证:安装依赖# 安装根目录下requirements.txt依赖 pip3 install -r requirements.txt如果需要本地查看tests覆盖率则需要额外安装coverage并将Python3的bin路径添加到PATH环境变量中命令示例如下pip3 install coverage # 修改下面的PYTHON3_HOME为实际的PYTHON安装目录 export PATH$PATH:$PYTHON3_HOME/bin执行测试用例# 默认路径安装root用户默认路径是/usr/local/Ascend/普通用户默认路径是${HOME}/Ascend bash tests/run_test.sh # 如果已自行将第三方开源软件压缩包上传至目录{your_3rd_party_path}可以使用如下命令进行执行 bash tests/run_test.sh --cann_3rd_lib_path{your_3rd_party_path}更多执行选项可以用 -h 查看bash tests/run_test.sh -h安装将编译执行环节生成的run包进行安装。说明此处的安装路径无论默认还是指定需与前面安装toolkit包时的路径保持一致。# 如果需要指定安装路径则加上--install-path${cann_install_path} ./cann-hixl_${cann_version}_linux-${arch}.run --full --quiet --pylocal--full 全量模式安装。--quiet 静默安装跳过人机交互环节。--pylocal 安装HIXL软件包时是否将.whl安装到HIXL安装路径。若选择该参数则.whl安装在${cann_install_path}/cann/python/site-packages路径。若不选择该参数则.whl安装在本地python路径例如/usr/local/python3.7.5/lib/python3.7/site-packages。更多安装选项请用--help选项查看。关于签名的补充说明编译产生cann-hixl_version_linux-arch.run软件包中含有cann-hixl-compat.tar.gz(hixl兼容升级包)。cann-hixl-compat.tar.gz会在业务启动时加载至Device加载过程中默认会由驱动进行安全验签确保包可信。开发者下载本仓源码自行编译产生cann-hixl-compat.tar.gz并不含签名头为此需要关闭驱动安全验签的机制。关闭验签方式关闭验签功能依赖Ascend NPU驱动软件包Ascend HDK 25.5.T2.B001或以上版本可以通过该Ascend HDK配套的npu-smi工具查询版本和关闭验签详见查询基本信息设置自定义验签能力使能状态设置验签模式命令文档需要以root用户在物理机上执行。以device 0为例其中 -i 后面的参数是device idnpu-smi info # 查询基本信息包含驱动版本 npu-smi set -t custom-op-secverify-enable -i 0 -d 1 # 使能自定义验签 npu-smi set -t custom-op-secverify-mode -i 0 -d 0 # 设置成关闭验签模式安装完成后可参考样例运行尝试运行样例也可参考基准测试Benchmarks尝试运行基准测试。【免费下载链接】hixlHIXLHuawei Xfer Library是一个灵活、高效的昇腾单边通信库面向集群场景提供简单、可靠、高效的点对点数据传输能力。项目地址: https://gitcode.com/cann/hixl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考