build.sh 参数说明

简介

build.sh 是 ops-tensor 项目的构建脚本,位于项目根目录下。该脚本通过配置不同参数实现多种功能,包括编译算子、运行测试、生成安装包等。

使用方法

1. 配置环境变量

在使用 build.sh 之前,需要先配置 CANN 环境变量:

# 默认路径安装
source /usr/local/Ascend/cann/set_env.sh

# 验证环境变量
echo $ASCEND_HOME_PATH

2. 构建命令格式

./build.sh [OPTIONS]

参数说明

build.sh 支持多种功能,可通过 --help 参数查看所有选项:

./build.sh --help
参数 必选/可选 说明
--ops=OP_LIST 可选 指定要编译的算子列表,多个算子用逗号分隔(如:--ops=add,sub)。不指定时编译所有算子。
--run 可选 编译后执行测试。需要配合 BUILD_TESTING=ON 使用。
--pkg 可选 编译并打包成 .run 安装包。
--soc=SOC 可选 指定目标 SoC 型号,支持大小写不敏感输入(如:--soc=ascend950--soc=Ascend950)。默认为 Ascend950当前版本仅支持 Ascend950。
-j[N] 可选 指定编译线程数,默认为 8(如:-j16)。若线程数超过 CPU 核心数,会自动调整为 CPU 核心数。
--test-timeout=N 可选 指定测试超时时间(单位:秒),默认为 300。仅在 --run 模式下有效。
-h, --help 可选 显示帮助信息。

支持的 SoC 型号

SoC 型号 SOC_VERSION(CANN 编译器) 说明
Ascend950 ascend950dt_9595 默认支持(dav-3510)

说明:当前版本仅支持 Ascend950,其他 SoC 型号暂不支持。后续版本将逐步支持更多型号。

使用示例

基本编译

# 编译所有算子(默认 8 线程)
./build.sh

# 编译指定算子
./build.sh --ops=add

# 编译多个算子
./build.sh --ops=add,sub

# 使用 16 线程编译
./build.sh -j16

编译并测试

# 编译所有算子并运行测试
./build.sh --run

# 编译指定算子并运行测试
./build.sh --ops=add --run

# 指定测试超时时间(600 秒)
./build.sh --run --test-timeout=600

打包

# 编译所有算子并打包(默认 SoC: Ascend950)
./build.sh --pkg

# 编译指定算子并打包
./build.sh --ops=add --pkg

# 大小写不敏感(当前仅支持 Ascend950)
./build.sh --soc=ascend950 --pkg

组合使用

# 编译 add 算子、运行测试、使用 16 线程
./build.sh --ops=add --run -j16

# 编译所有算子、打包(默认 SoC: Ascend950)
./build.sh --pkg -j16

行为说明

命令 行为
无参数 编译所有算子,不执行测试
--ops=add 只编译 add 算子,不执行测试
--ops=add,sub 编译 add 和 sub 算子,不执行测试
--run 编译所有算子,并执行所有算子的测试
--ops=add --run 编译 add 算子,并执行 add 算子的测试
--ops=add,sub --run 编译 add、sub 算子,并执行这些算子的测试
--pkg 编译所有算子并打包成 .run 文件(默认 SoC: Ascend950)
--ops=add --pkg 编译 add 算子并打包成 .run 文件
--soc=ascend950 --pkg 为 Ascend950 芯片打包(支持大小写不敏感)

输出说明

编译输出

编译成功后,生成的文件位于 build/ 目录:

build/
├── libops_tensor.so         # 动态库
├── tests/
│   └── all_ops_test         # 测试可执行文件
└── ...

打包输出

打包成功后,会在 build/ 目录生成 .run 文件:

build_out/cann-{soc}-ops-tensor_{version}_linux-{arch}.run

例如:

  • cann-950-ops-tensor_9.0.0_linux-x86_64.run
  • cann-950-ops-tensor_9.0.0_linux-aarch64.run

说明{soc} 会根据指定的 SoC 型号自动替换(当前为 950)。

注意事项

  1. 环境变量要求:必须设置 ASCEND_HOME_PATH 环境变量,否则脚本会报错退出。

  2. 线程数限制:如果指定的线程数超过 CPU 核心数,脚本会自动调整为 CPU 核心数。

  3. 测试超时:默认测试超时时间为 300 秒,可根据实际情况调整。

  4. SoC 大小写--soc 参数支持大小写不敏感输入,脚本会自动标准化为首字母大写、其余小写的格式。

  5. 算子验证:如果使用 --ops 指定了不存在的算子,脚本会列出所有可用的算子并报错退出。

相关文档