| name | external-gitcode-ascend-atb-aclnn-operator-replacement-designer |
| description | 自动生成 ATB 到 ACLNN 算子替换的详细设计文档。接收用户提供的 ATB 和 ACLNN 接口文档链接, 输出包含参数映射、开发自测、风险评估的 7 章结构化设计文档。 TRIGGER when: 用户需要将 ATB 算子替换为 ACLNN 算子并撰写设计文档。
|
| keywords | ["atb","aclnn","operator","replacement","design","算子","设计文档","昇腾"] |
| metadata | {"author":"ascend-transformer-boost-team + Claude Code + deepseek-v4-pro","version":"1.4.0","created":"2026-04-17","updated":"2026-04-29","skill-type":"design","gates":[{"id":"gate-design","description":"设计文档确认","trigger":"设计文档生成完成后,必须等待用户确认再进入 CSV 用例设计阶段"}]} |
| hooks | {"PreToolUse":[{"matcher":"Write|Edit|Bash","hooks":"[Truncated]"}],"PostToolUse":[{"matcher":"Write","hooks":"[Truncated]"}],"Stop":[{"hooks":"[Truncated]"}]} |
| original-name | atb-aclnn-operator-replacement-designer |
| synced-from | https://gitcode.com/Ascend/agent-skills |
| synced-date | 2026-05-26 |
| synced-commit | 1f7666e7768a0ceb21bb1d40ce4b5179fcb6f1d6 |
| license | UNKNOWN |
ATB到ACLNN算子替换详设文档生成器
功能概述
该工具能够根据用户提供的ATB和ACLNN接口文档链接,自动生成完整的算子替换详细设计文档。支持多种算子类型,提供标准化的文档结构和内容。
调用时机
在以下情况下调用此技能:
- 用户需要将 ATB 算子替换为 ACLNN 算子并撰写设计文档
- 用户已有 ATB 算子接口和 ACLNN 接口文档链接
- 变更涉及 LayerNorm、Softmax、RmsNorm 等标准算子
规模检测与分级
调用此技能时,必须首先执行规模检测,确定使用完整模板还是轻量模板。
检测步骤
find <ATB_REPO_PATH>/src/ops/ops_infer/<op_type>/ -name '*_aclnn_runner.cpp' -type f 2>/dev/null
find <ATB_REPO_PATH>/src/ops/ops_infer/<op_type>/ -name '*_aclnn_runner.h' -type f 2>/dev/null
分级标准
| 场景 | 判断条件 | 模板等级 | 说明 |
|---|
| 已有 Runner 接入 | *_aclnn_runner.cpp 已存在且已注册 REG_RUNNER_TYPE | 轻量模板 (4 节) | 仅需参数映射 + 约束 + 风险 |
| 全新迁移 | *_aclnn_runner.cpp 不存在 | 完整模板 (7 章) | 需要完整设计文档 |
向用户报告检测结果的标���话术
## 规模检测结果
算子: {OpType}
ATB 仓库: <ATB_REPO_PATH>
检测: {op_type}_aclnn_runner.{h,cpp} [✅ 已存在 / 不存在]
→ 使用 [轻量模板 / 完整模板] 生成设计文档。
→ 预计生成 [4 节 / 7 章] 文档。
轻量模板(已有 Runner 模式)
当 ACLNN Runner 已存在时(如仅需修改 Operation 的 CreateRunner 以挂载已有 runner),生成以下精简文档:
# {OpType} OPS→ACLNN 替换设计文档(轻量版)
## 文档信息
| 项目 | 内容 |
|------|------|
| 算子名称 | {OpType} |
| 迁移类型 | 挂载已有 ACLNN Runner({op}_aclnn_runner.cpp 已存在) |
| 变更范围 | 仅修改 {op}_operation.cpp 的 CreateRunner,添加 910B/950 设备检测 |
| 目标设备 | 910B / 950 |
## 需求简述
- 将 {OpType} 算子在 910B/950 上从 OPS 切换至 ACLNN
- 非 910B/950 设备保持 OPS 路径
- ACLNN Runner 已存在且通过 REG_RUNNER_TYPE 注册,仅需接入分发
## 参数映射关系
| ATB参数 | ACLNN参数 | 映射类型 | 说明 |
|---------|-----------|----------|------|
| [从已有 runner 代码提取] | [从已有 runner 代码提取] | [直接/计算] | |
## 规格约束
- 数据类型: [从已有 runner 和接口文档提取]
- 输入约束: [提取]
- 参数约束: [提取]
- 设备相关: 950 上仅支持 {受支持的变体}
## 风险评估
| 风险项 | 风险等级 | 应对策略 |
|--------|---------|---------|
| 设备检测逻辑错误 | 低 | 参考已有 runner (Gather/Split/Repeat) 的分发模式 |
| 变体路由错误 | 中 | 在 CreateRunner 中加严格的 layerType/quantType 过滤 |
| 非目标设备回归 | 低 | 非 910B/950 设备保持 OPS 路径不变 |