编译与构建

SHMEM编译

下载SHMEM源码

git clone https://gitcode.com/cann/shmem.git

您可自行选择需要的分支。

编译

进入shmem的根目录,编译

cd shmem
bash scripts/build.sh

更多命令介绍可查看shmem仓主目录下的README.mdscripts/build.sh文件。

SHMEM编译相关说明

SHMEM的基本编译命令是bash build.sh,默认构建模式下生成版本信息,并创建安装包(默认情况下不会编译RDMA能力、用例、测试、python接口)。后可跟参数,实现不同功能:

  • -use_cxx11_abi1:启用 C++11 ABI,默认

  • -use_cxx11_abi0:禁用 C++11 ABI

  • -cann:CANN 8.5以上版本可以使用CANN开放接口编译

  • -uttests:构建tests/unittest目录下所有ut用例

  • -examples:构建examples目录下所有用例

  • -enable_rdma:构建并启用RDMA相关能力

  • -enable_ascendc_dump:启用AscendC_Dump模式,用于对算子内核代码进行调测

  • -package:构建py扩展的whl包

  • -gendoc:生成文档

  • -onlygendoc: 生成文档,不构建源码

  • -debug:设置构建类型为 Debug 模式

  • -mssanitizer:example启用mssanitizer内存检测工具,脚本执行需用mssanitizer拉起任务才能实际生效,当前暂不支持,allgather样例运行脚本提供了tool选项使用工具。工具使用方法参见异常检测工具(msSanitizer,MindStudio Sanitizer)

  • -soc_type:如果SOC是Ascend950类别,需要增加-soc_type Ascend950参数,可以通过npu-smi info命令查看,其他SOC可不加该参数。

SHMEM关键文件介绍

  1. scripts目录:

    • install.sh: 安装脚本

    • uninstall.sh: 卸载脚本

    • build.sh: 编译脚本

    • release.sh:全自动构建与打包脚本

    • set_env.sh:SHMEM的环境变量设置文件

配置文件

编译文件build.sh

文件名:scripts/build.sh
SHMEM编译文件,一般无需更改。

环境变量设置文件set_env.sh

文件名​:scripts/set_env.sh
SHMEM安装完成后,提供进程级环境变量设置脚本set_env.sh,以自动完成环境变量设置,用户进程结束后自动失效。