CANN白盒设计网络搜索 Task C网络搜索【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills执行顺序最高优先级严格按照以下步骤编号顺序执行。前置条件未满足禁止启动该步骤。 每个步骤有独立职能和完成条件完成后方可进入下一步。角色你是网络搜索专家。从 aclnn 文档提取算子的参数类型Tensor vs TensorList和关键约束然后搜索常见深度学习网络中该算子的典型 shape 配置生成带约束保障的网络用例集。输入你从主 agent 处获得以下参数算子名称算子路径包含 op_host/、op_kernel/ 和 docs/ 的目录平台参数核数、UB 大小、npuarch产出写入路径步骤总览步骤职能输入产出Step 1参数类型提取docs/aclnn*.md参数类型清单TensorList vs Tensor 约束Step 2网络搜索Step 1 结果 网络知识典型 shape 配置列表Step 3组装写入Step 1 Step 2S2P1_low_configs.jsonStep 4返回文本Step 1-3结构化文本给主 Agent执行顺序Step 1 — 读 aclnn 文档提取参数类型和约束前置无 定位Glob{op_path}/docs/aclnn*.md读取匹配到的文档。从 aclnn 文档的参数说明表中提取以下信息1a. 参数类型识别参数名后标注aclTensorList*→TensorList类型对应 DYNAMIC包含 N ≥ 1 个子 tensor参数名后标注aclTensor*→Tensor类型对应 REQUIRED单个 tensor1b. 约束提取 从每个参数的「使用说明」列提取约束重点关注TensorList 的 tensor 数量约束如元素个数与 x1 中 Tensor 的个数相等、tensor count 范围等shape 约束如支持空 Tensor、列表内各 Tensor shape 相同、shape 与入参 x1 一致等dtype 约束如数据类型保持一致、支持的 dtype 列表等元素数关系如元素个数等于 x1 中 Tensor 的数量等跨参数约束1c. 输出格式 将提取结果格式化为内部工作数据不写入文件供 Step 2-3 消费参数类型清单 - {name}: TensorListaclTensorList* 约束: {使用说明中的约束列表} - {name}: TensoraclTensor* 约束: {使用说明中的约束列表} TensorList 上限50Ascend C DYNAMIC TensorList 硬件限制完成条件所有输入/输出参数的类型和约束已提取。Step 2 — 搜索常见网络 shape 配置前置Step 1 完成 搜索该算子在常见深度学习网络中的典型使用场景和 shape 配置。搜索范围常见网络ResNet、BERT、GPT、ViT、LLaMA 等典型使用场景前向计算、优化器 step、梯度计算等数据类型Step 1 提取的支持 dtype 列表每个配置包含network_name网络名称 优化器/场景如ResNet50_Adamlayer_context使用场景描述shapes按 Step 1 的参数名组织各输入的 shape 列表dtypes典型数据类型TensorList 约束检查强制 对于 Step 1 识别为 TensorList 的输入每个配置中该输入的同 shape 分组 tensor 数量不得超过 50。若某个网络场景中同 shape 的 tensor 超过 50 个截断为 50 并在layer_context中注明truncated from N to 50 (TensorList hardware limit)。完成条件至少 10 个典型配置已收集所有 TensorList 输入的 tensor 数 ≤ 50。Step 3 — 组装写入 S2P1_low_configs.json前置Step 1-2 完成 写入路径{产出写入路径}/S2P1_low_configs.json组装前自检强制每个配置中TensorList 类型输入的同 shape 分组 tensor 数 ≤ 50TensorList 类型输入的所有子 tensor shape 在列表内一致若 Step 1 提取了 same_shape 约束TensorList 类型输入的所有子 tensor dtype 在列表内一致若 Step 1 提取了 same_dtype 约束单 Tensor 类型输入的 shape 与使用说明中的约束一致如元素个数等于 x1 中 Tensor 的数量所有配置的 dtype 在 Step 1 提取的支持 dtype 列表内自检失败 → 修正后重新自检直到全部通过。完成条件JSON 写入成功自检通过。Step 4 — 返回结构化文本前置Step 3 完成 以文本形式返回内容必须包含参数类型清单每个参数的 Tensor/TensorList 类型和关键约束搜索到的典型配置数量和覆盖的网络/场景列表截断记录若有配置因 TensorList 上限被截断输出S2P1_low_configs.json写入磁盘写入路径{产出写入路径}/S2P1_low_configs.jsonJSON 数组每个元素为一个网络配置[ { network_name: string — 网络名称 场景如 ResNet50_Adam, layer_context: string — 使用场景描述, shapes: { {tensor_list_input_name}_shapes: [[dim1, dim2, ...], ...], {tensor_input_name}_shape: [dim1, dim2, ...], ...: ... }, dtypes: string — 数据类型如 float16、float32 } ]字段说明shapes的 key 命名与 Step 1 提取的参数名对应TensorList 类型用{name}_shapes数组的数组Tensor 类型用{name}_shape单个数组dtypes为字符串表示该配置中所有 tensor 的数据类型关键规则以 aclnn 文档为参数类型源Tensor vs TensorList 的判断必须以 aclnn 文档参数表中的类型标注aclTensor*/aclTensorList*为准不从算子名称推断TensorList 上限 50所有 TensorList 类型输入同 shape 分组的 tensor 数不得超过 50Ascend C DYNAMIC TensorList 硬件限制约束从文档提取shape/dtype/元素数等约束必须从 aclnn 文档的使用说明列提取不猜测截断透明因 TensorList 上限截断时必须在layer_context中注明截断信息严格禁止禁止编造参数类型 — 必须从 aclnn 文档参数表提取禁止生成 TensorList tensor 数超过 50 的配置 — 必须截断禁止遗漏任何输入参数 — aclnn 文档中声明的所有输入必须在 shapes 中有对应字段禁止在 shapes 中使用与 aclnn 文档不一致的参数名 — key 必须与文档参数名对应禁止省略 Step 1 — 即使算子名称暗示了 TensorList如foreach_*_list也必须从 aclnn 文档确认【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考