원클릭으로
blas-build-commands
BLAS 算子仓编译与验证命令参考。编译算子、运行测试、打包的常用命令。触发:需要编译算子、运行测试、查看 build.sh 用法时。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
BLAS 算子仓编译与验证命令参考。编译算子、运行测试、打包的常用命令。触发:需要编译算子、运行测试、查看 build.sh 用法时。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
ops-blas 算子全流程开发技能,协调 agent 团队完成设计->开发->验收->上库的完整开发链路。触发:用户要求开发新算子或实现某 BLAS 接口时。
为 BLAS 算子开发 GTest + CSV 驱动的精度 ST。触发场景: - 新算子 ST、编写 xxx_param.h / xxx_golden.h / xxx_npu_wrapper.h / xxx_test.cpp / xxx_test.csv - 改写旧式 TEST_F 为 CSV 参数化测试 按 6 步执行:分析 API → 写 param → 写 cpu/npu → 写 GTest → CMake → build.sh 验证。
ops-blas 日志框架使用规范。提供 Host 侧 dlog 日志集成模板、日志配置 API 说明和最佳实践。触发:算子开发中需要集成日志、检视日志使用规范、迁移 printf 到 dlog 时。
ops-blas 仓 AscendC 编码规范 + MR 安全编码规则速查索引。 **非开发期常驻上下文**:作为代码提交前的自查工具,按需读取。 触发时机:① 2.x.2 联调前 ② 2.x.3 验收前 ③ 3.1/4.2 代码检视前 ④ reviewer 检视 MR 代码时。 详细规则内容位于 references/ 目录,由调用方按需加载相关文档。
生成 PR 或 Issue 文件,并可通过 GitCode API 直接提交到仓库。仅当用户明确说"提PR"、"创建PR"、"提交Issue"、"推送到PR"、"amend"、"force push"等时才触发,禁止根据上下文推断自动触发。所有操作必须经过用户许可,禁止擅自行动。
工作流维护技能。任何对 agent/ 目录下文件的新增、修改、删除操作,都必须先触发本技能再执行操作,包括修改本技能自身。禁止未触发直接修改。
| name | blas-build-commands |
| description | BLAS 算子仓编译与验证命令参考。编译算子、运行测试、打包的常用命令。触发:需要编译算子、运行测试、查看 build.sh 用法时。 |
验证一个算子需要两步:编译 → 运行测试
# 步骤 1:编译算子(仅编译,不运行)
bash build.sh --ops=<算子名> --soc=<芯片型号>
# 步骤 2:编译并运行测试(加 --run)
bash build.sh --ops=<算子名> --soc=<芯片型号> --run
当测试用例执行失败时,需要判断是否为本次修改引入的问题:
获取最新基准分支代码:
git fetch cann
切换到基准分支,重新编译并运行相同算子的测试:
git checkout cann/master
bash build.sh --ops=<算子名> --soc=<芯片型号> --run
对比结果:
切回开发分支继续工作:
git checkout <你的分支名>
注意:切换分支前确保当前修改已 commit 或 stash,避免丢失工作进度。
| 命令 | 说明 |
|---|---|
bash build.sh | 只编译库,不编译测试 |
bash build.sh --ops=scopy | 编译指定算子 |
bash build.sh --ops=scopy,sdot | 编译多个算子(逗号分隔) |
bash build.sh --ops=gbmv | 编译整个算子家族(自动展开子算子) |
bash build.sh --ops=scopy --run | 编译并运行测试 |
bash build.sh --run | 编译并运行所有算子测试 |
bash build.sh --ops=scopy --run --device=1 | 指定测试运行设备(默认 0) |
bash build.sh --pkg | 编译并打包 run 包 |
bash build.sh --pkg --soc=ascend950 | 打包指定 SOC 的 run 包 |
| 参数 | 说明 | 示例 |
|---|---|---|
--ops=<name> | 指定算子名或家族名,支持逗号分隔多个 | --ops=scopy,sdot |
--soc=<soc> | 指定目标芯片(默认 ascend910b3) | --soc=ascend950 |
--run | 编译后运行测试 | — |
--pkg | 编译后打包 run 包 | — |
--device=<id> | 指定测试运行的 NPU 设备 ID(默认 0) | --device=1 |
ascend910b / ascend910_93 → arch22(支持前缀匹配,如 ascend910b3)ascend950 → arch35ascend310p → arch20注意:--soc 参数支持前缀匹配,例如 ascend910b3、ascend910b4 都会匹配到 ascend910b 对应的 arch22 架构。
--ops 参数支持两种格式:
scopy、sswap)→ 直接编译该算子gbmv、geqrf_batched)→ 自动展开为家族下所有有当前 SOC arch 实现的子算子build/out/(库文件在 out/lib64/,头文件在 out/include/)build/test/<family>/<op>/<op>_test