用途:在 Ascend C 算子开发的设计阶段,帮助确定 Tiling 策略,包括多核切分、UB 切分、Buffer 分配与分支覆盖等核心设计决策。
主要能力:提供算子分类体系及各类型的设计指南,包括 Reduction 归约类(ReduceSum、Softmax、LayerNorm、ArgMax)、Elementwise 逐元素类(Sin、Cos、Abs、Exp)、Broadcast 广播类(Add、Mul、Sub)、Conversion 数据转换类(Transpose、Concat、Split)、Random 随机类(RandomUniform、Dropout)、MatMul 矩阵乘类(MatMul、BatchMatMul)、Convolution 卷积类(Conv2D、DepthwiseConv)、NN 神经网络类(FlashAttention、GroupNorm)。其中部分类别标注为规划中或仅部分支持。
通用设计要素:
- 多核切分策略:关注负载均衡、数据局部性与切分粒度,需给出切分维度、每核任务量与使用的 AI Core 数量。
- UB 切分策略:受 UB 容量限制(DAV_2201 为 192KB,DAV_3510 为 248KB),需明确单次处理数据量、是否分 chunk 及 chunk 大小计算公式。
- Buffer 规划:区分输入 buffer(inQueue)、输出 buffer(outQueue)与中间计算 buffer(tmpBuf、workBuf 等),可考虑 Double Buffer 优化,需列出 Buffer 列表、用途、各 Buffer 大小计算公式与总 UB 使用量。
- 分支场景覆盖:常见分支维度包括数据类型(FP32/FP16/BF16/INT8)、Shape 大小、32 字节对齐与否、边界情况,需给出分支决策条件、处理策略与测试用例。
使用方式:该技能通过描述中的触发条件调用,适用于算子设计阶段、设计 Tiling 策略(多核切分/UB 切分)、规划 Buffer 分配、查阅某类算子的 Tiling 方法论时。
限制:资料未提供具体安装命令、代码示例与完整收费标准;部分算子类别处于规划中或仅部分支持,具体支持范围需以实际环境为准。