build.sh 参数说明
简介
build.sh 是 ops-fft 项目的构建脚本,位于项目根目录下。该脚本通过配置不同参数实现多种功能,包括编译算子、运行测试、生成安装包等。
使用方法
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=rfft1_d,irfft1_d)。不指定时编译所有算子。 |
--run |
可选 | 编译后执行测试。需要配合 BUILD_TESTING=ON 使用。 |
--pkg |
可选 | 编译并打包成 .run 安装包。 |
--soc=SOC |
可选 | 指定目标 SoC 型号,支持大小写不敏感输入(如:--soc=ascend950 或 --soc=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) |
| Ascend910B | ascend910b | 已支持(dav-2201) |
使用示例
基本编译
# 编译所有算子(默认 8 线程)
./build.sh
# 编译指定算子
./build.sh --ops=rfft1_d
# 编译多个算子
./build.sh --ops=rfft1_d,irfft1_d
# 使用 16 线程编译
./build.sh -j16
编译并测试
# 编译所有算子并运行测试
./build.sh --run
# 编译指定算子并运行测试
./build.sh --ops=rfft1_d --run
# 指定测试超时时间(600 秒)
./build.sh --run --test-timeout=600
打包
# 编译所有算子并打包(默认 SoC: Ascend950)
./build.sh --pkg
# 编译指定算子并打包
./build.sh --ops=rfft1_d --pkg
# 为指定 SoC 打包
./build.sh --soc=Ascend950 --pkg
# 大小写不敏感
./build.sh --soc=ascend950 --pkg
组合使用
# 编译 rfft1_d 算子、运行测试、使用 16 线程
./build.sh --ops=rfft1_d --run -j16
# 编译所有算子、打包、指定 SoC
./build.sh --pkg --soc=Ascend950 -j16
行为说明
| 命令 | 行为 |
|---|---|
| 无参数 | 编译所有算子,不执行测试 |
--ops=rfft1_d |
只编译 rfft1_d 算子,不执行测试 |
--ops=rfft1_d,irfft1_d |
编译 rfft1_d 和 irfft1_d 算子,不执行测试 |
--run |
编译所有算子,并执行所有算子的测试 |
--ops=rfft1_d --run |
编译 rfft1_d 算子,并执行 rfft1_d 算子的测试 |
--ops=rfft1_d,irfft1_d --run |
编译 rfft1_d、irfft1_d 算子,并执行这些算子的测试 |
--pkg |
编译所有算子并打包成 .run 文件(默认 SoC: Ascend950) |
--ops=rfft1_d --pkg |
编译 rfft1_d 算子并打包成 .run 文件 |
--soc=ascend950 --pkg |
为 Ascend950 芯片打包(支持小写) |
输出说明
编译输出
编译成功后,生成的文件位于 build/ 目录:
build/
├── libops_fft.so # 动态库
├── tests/
│ └── all_ops_test # 测试可执行文件
└── ...
打包输出
打包成功后,会在 build/ 目录生成 .run 文件:
build_out/cann-{soc}-ops-fft_{version}_linux-{arch}.run
例如:
cann-950-ops-fft_9.0.0_linux-x86_64.runcann-950-ops-fft_9.0.0_linux-aarch64.run
注意事项
-
环境变量要求:必须设置
ASCEND_HOME_PATH环境变量,否则脚本会报错退出。 -
线程数限制:如果指定的线程数超过 CPU 核心数,脚本会自动调整为 CPU 核心数。
-
测试超时:默认测试超时时间为 300 秒,可根据实际情况调整。
-
SoC 大小写:
--soc参数支持大小写不敏感输入,脚本会自动标准化为首字母大写、其余小写的格式。 -
算子验证:如果使用
--ops指定了不存在的算子,脚本会列出所有可用的算子并报错退出。