build.sh 参数说明
本文档介绍ops-rand项目中build.sh脚本的功能和参数说明。
功能概述
build.sh是ops-rand项目的编译脚本,提供以下功能:
- 编译算子源码
- 运行测试用例
- 生成安装包(RUN文件)
- 支持指定算子编译
- 支持多线程编译
使用方法
bash build.sh [OPTIONS]
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
--ops=NAME |
编译指定算子,多个算子用逗号分隔 | all(编译所有算子) |
--soc=VERSION |
目标SoC版本 | ascend950 |
--build-type=TYPE |
构建类型:Release(发布版)、Debug(调试版) | Release |
--run |
编译后运行测试用例 | OFF |
--pkg |
生成安装包(RUN文件) | OFF |
-j[N] |
并行编译线程数 | nproc(CPU核心数) |
-v, --verbose |
显示详细编译输出 | 关闭 |
-h, --help |
显示帮助信息 | - |
支持的SoC版本
| SoC版本 | 对应产品 |
|---|---|
| ascend950 | Ascend 950PR / Ascend 950DT |
命令示例
基本编译
# 编译所有算子
bash build.sh
# 编译并运行测试
bash build.sh --run
指定算子编译
# 编译指定算子
bash build.sh --ops=stateless_random_uniform_v2
# 编译多个算子(示例)
bash build.sh --ops=stateless_random_uniform_v2,other_op
# 编译指定算子并运行测试
bash build.sh --ops=stateless_random_uniform_v2 --run
生成安装包
# 生成ops-rand安装包
bash build.sh --pkg --soc=ascend950
# 多线程编译并生成安装包
bash build.sh --pkg --soc=ascend950 -j16
调试模式
# Debug模式编译
bash build.sh --build-type=Debug
# 详细输出
bash build.sh -v --run
组合使用
# 编译指定算子、Debug模式、运行测试、详细输出
bash build.sh --ops=stateless_random_uniform_v2 --build-type=Debug --run -v
# 多线程编译安装包
bash build.sh --pkg --soc=ascend950 -j16 -v
编译输出
编译成功后,输出目录结构如下:
build/ # 编译中间文件目录
build_out/ # 编译输出目录
└── cann-950-ops-rand_*.run # 安装包(使用--pkg时生成)
常见问题
1. 编译失败:找不到bisheng编译器
原因:bisheng编译器未安装或未配置到PATH环境变量。
解决方案:
# 检查bisheng是否安装
bisheng --version
# 如未安装,请参考环境部署文档安装CANN toolkit包
2. 编译失败:找不到ASCEND_HOME_PATH
原因:未配置CANN环境变量。
解决方案:
# 配置环境变量
source /usr/local/Ascend/cann/set_env.sh
3. 测试运行失败
原因:可能缺少运行依赖或NPU设备未正确配置。
解决方案:
# 检查NPU设备
npu-smi info
# 检查CANN环境
cat /usr/local/Ascend/ascend-toolkit/latest/opp/version.info