SuperAPI AI 工具集

ascendc-operator-design

设计与创作

查看项目

更新于 10-15 19:58

技能介绍

用途:该技能帮助完成 AscendC 算子的架构设计、接口定义与性能规划,生成 design.md 供后续 code-gen 技能消费。适用于算子设计、算子开发、tiling 策略、内存规划、AscendC kernel 设计、两级 tiling、核间切分、核内切分等场景。

主要能力:分析算子需求(算子名称、功能描述或数学公式、支持的数据类型);检查 PyTorch/NumPy 是否存在同名接口并要求签名与语义对齐;推荐实现路径(AscendC Kernel、CATLASS 模板库、ACLNN 封装);生成包含接口定义、计算逻辑、Tiling 策略、Workspace 需求、性能优化、Kernel 实现要点与检查清单的设计文档;将数学公式分解为 AscendC API 调用序列;给出两级 Tiling(Block 级核间切分与 UB 级核内切分)设计、UB 分配表与 bufferCoefficient。

使用方式:通常在 ascendc-operator-project-init 创建骨架后、ascendc-operator-code-gen 生成代码前调用。被调度技能调用时直接使用已确定的算子名称与功能描述;独立调用时先与用户确认需求。生成前必须读取 templates/design-template.md,并按算子类型选读 elementwise、reduction、index、sort、pooling 等 tiling 参考文档。输出位置为 ascend-kernel/csrc/ops/<op_name>/design.md。

限制与约束:UB 需按 32 字节对齐,Block 级按 Cache Line 512 字节对齐;FP16/BF16 输入需升精度到 FP32 计算;elementwise 类 Workspace 通常为 SYSTEM_WORKSPACE_SIZE(示例 16MB),其他类按 tiling data 大小计算;设计文档必须明确每种 dtype 的 bufferCoefficient,否则代码生成无法正确计算 tileLength。资料未提供具体收费、价格与平台支持信息。