一键式构建指南

前置环境准备

本项目支持一键式源码构建,在构建前,请根据如下步骤完成相关环境准备,确保系统满足构建要求。

安装构建工具

以下所列为构建所需的工具,请注意版本要求:

  • Python3 >= 3.8.0

  • CMake >= 3.16.0 (建议使用3.20.0版本)

    # Ubuntu/Debian操作系统安装命令示例如下,其他操作系统请自行安装
    sudo apt-get install cmake
    

检查编译环境

安装完成后,建议执行环境检查脚本,确认当前环境是否满足编译要求。

bash scripts/check_env.sh

检查结果说明如下:

状态 含义 处理建议
[PASS] 检查通过 无需处理
[WARNING] 非关键依赖缺失或版本存在偏差 建议修复,不影响核心编译
[ERROR] 关键依赖缺失或版本不兼容 必须修复,否则无法编译

注意

环境检查脚本中所有的检查项和版本约束严格来源于 docs/build.md 和 super_kernel/requirements-dev.txt,如文档和依赖更新,请同步修改脚本

安装社区版cann-toolkit包

根据实际环境,下载对应Ascend-cann-toolkit_${cann_version}_linux-${arch}.run包,请选择最新版本,下载链接

# 确保安装包具有可执行权限
chmod +x Ascend-cann-toolkit_${cann_version}_linux-${arch}.run
# 安装命令
./Ascend-cann-toolkit_${cann_version}_linux-${arch}.run --full --force --install-path=${ascend_install_path}
  • ${cann_version}:表示 CANN 包版本号。
  • ${arch}:表示CPU架构,如 aarch64、x86_64。
  • ${ascend_install_path}:表示指定安装路径,不指定则默认安装在/usr/local/Ascend(root 用户)或${HOME}/Ascend(非 root 用户)目录。
  • 安装过程如有其他问题请参阅:CANN 社区版-环境准备-软件安装

安装社区版CANN ops包

根据产品型号和环境架构,下载对应Ascend-cann-${soc_name}-ops-${cann_version}_linux-${arch}.run包,下载链接如下:

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:下载链接
# 确保安装包具有可执行权限
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=${ascend_install_path}
  • ${soc_name}:表示NPU型号名称,即${soc_version}删除“ascend”后剩余的内容。
  • ${ascend_install_path}:表示指定安装路径,需要与toolkit包安装在相同路径,默认安装在/usr/local/Ascend目录。

源码下载

若您的编译环境可以访问网络,编译过程中将自动下载上述开源第三方软件,可以使用如下命令进行源码下载:

git clone https://gitcode.com/cann/graph-autofusion.git

若您的编译环境无法访问网络,您需要通过下列步骤在联网环境中下载源码及开源软件压缩包,并手动上传至您的编译环境中:

  1. 在联网环境中,进入本项目主页, 通过下载ZIPclone按钮,根据指导,完成源码下载。
  2. 下载下列第三方开源软件。
开源软件 版本 下载地址
makeself 2.5.0 makeself-release-2.5.0-patch1.tar.gz
  1. 将源码及第三方开源软件上传到离线编译环境中,解压缩源码。
# 解压缩源码
unzip graph-autofusion.zip
  1. 在源码同级目录创建open_source目录,将第三方开源软件压缩包放到open_source目录下解压缩后改名。
# 创建open_source目录
mkdir open_source
# 将第三方开源软件压缩包放到open_source目录下
mv makeself-release-2.5.0-patch1.tar.gz open_source/
# 解压缩第三方开源软件压缩包并改名
cd open_source
tar -zxvf makeself-release-2.5.0-patch1.tar.gz && mv makeself-release-2.5.0 makeself
  1. 完成后文件目录如下:
├── graph-autofusion                     # 解压后的源码仓
│  ├── cmake
│  └── ...
├── open_source                          # 三方开源软件
│  └── makeself
│     ├── COPYING
│     ├── Makefile
│     ├── README.md
│     └── ...

安装 python 依赖

  1. 建议使用 Python 虚拟环境:
    python3 -m venv venv
    source venv/bin/activate
    
  2. 安装依赖:
    cd graph-autofusion
    pip3 install -r super_kernel/requirements-dev.txt
    

构建

确保已完成前置环境准备

配置环境变量

根据前面安装社区版cann-toolkit包的安装路径,执行合适的命令。

    # 如果之前未指定路径安装,则:
    # root 用户,ascend_install_path=/usr/local/Ascend
    # 非 root 用户,ascend_install_path=${HOME}/Ascend
    source ${ascend_install_path}/cann/bin/setenv.bash

执行构建

执行以下命令:

  bash build.sh --pkg

执行成功后会在build_out目录下生成cann-graph-autofusion_${cann_version}_linux-${arch}.run

  • --pkg 表示构建 run 包
  • ${cann_version} 表示 cann 版本号。
  • ${arch} 表示 CPU 架构,如 aarch64、x86_64。
  • 更多选项功能可以用 -h 查看。
  bash build.sh -h

测试验证

在执行本章节操作之前,确保已完成前置环境准备

UT 验证

  bash build.sh -u

执行完成后根据输出日志查看UT测试执行情况,用例执行成功会打印passed并且无failed打印,确认所有测试用例通过。

ST 验证

  bash build.sh -s

执行完成后根据输出日志查看ST测试执行情况,用例执行成功会打印passed并且无failed打印,确认所有测试用例通过。

覆盖率验证

  bash build.sh -u -c # UT 覆盖率
  bash build.sh -s -c # ST 覆盖率
  bash build.sh -c    # UT 覆盖率 + ST 覆盖率

执行完成后根据输出日志查看覆盖率情况,确认所有测试用例通过。

安装与卸载

cann-graph-autofusion_${cann_version}_linux-${arch}.run来自前面执行构建环节构建生成。

# 安装,如果需要指定安装路径,则加上 --install-path=${ascend_install_path}
./cann-graph-autofusion_${cann_version}_linux-${arch}.run --full --quiet --pylocal

# 卸载,如果是安装到指定路径情况,则加上 --install-path=${ascend_install_path}
./cann-graph-autofusion_${cann_version}_linux-${arch}.run --uninstall
  • 说明,此处的安装路径(无论默认还是指定)需与前面安装 cann-toolkit 包时的路径保持一致。
  • --full 全量模式安装。
  • --install-path 指定安装路径,不指定则默认安装在/usr/local/Ascend(root 用户)或${HOME}/Ascend(非 root 用户)目录。
  • --quiet 静默安装,跳过人机交互环节。
  • --pylocal 安装 run 包时,是否将包内的 .whl 跟随 run 包安装路径来安装。
    • 若选择该参数,则 .whl 安装在${ascend_install_path}/cann/python/site-packages路径下。
    • 若不选择该参数,则 .whl 安装在本地 python 路径下,例如/usr/local/python3.7.5/lib/python3.7/site-packages
  • 更多安装选项请用 --help 选项查看。

安装完成后可参考样例运行尝试运行样例