cannbot-skills Kernel CSV字段规格
Kernel 模式 CSV 字段规格【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills适用于python3 -m ttk kernel命令使用UniversalTestcaseStructure。静态 shape 通过input_shapes/output_shapes直接指定动态 shape 由框架自动推导将正数维度替换为-1。Kernel 专有字段17 个序号列名类型必填默认值说明10op_nameSTRING是(无)算子名称用户输入的规范名 camel_to_snake(OP_ADD(op_type))可能与目录名不一致。如add、mat_mul_v3、lamb_next_mv。11input_shapesSHAPE_NESTED是()输入张量 shape。支持 TensorList 嵌套。用None表示可选输入。12input_dtypesDTYPE_NESTED是()输入数据类型。支持 TensorList 嵌套。13output_shapesSHAPE_INFER_NESTED是None输出张量 shape。支持 TensorList 嵌套和自动推断关键字。14output_dtypesDTYPE_NESTED是(无)输出数据类型。支持 TensorList 嵌套。15input_formatsDTYPE_NESTED否(ND,)输入张量格式。16input_ori_shapesSHAPE_NESTED否→input_shapes原始输入 shape格式转换前。17input_ori_formatsDTYPE_NESTED否(ND,)原始输入格式。18output_formatsDTYPE_NESTED否(ND,)输出张量格式。19output_ori_shapesSHAPE_INFER_NESTED否None原始输出 shape。20output_ori_formatsDTYPE_NESTED否(ND,)原始输出格式。21attributesDICT否{}算子属性编译期和运行期合并。22output_inplace_indexesINT_TUPLE否()inplace 输入的索引。从 aclnn 文档参数表「输入/输出」列检测标记为「输入/输出」的参数记录其在输入列表中的 0-based 索引。无 inplace 时默认()。详见03-kernel-extraction.md「output_inplace_indexes 检测」节。23output_shape_unknown_indexesINT_TUPLE否()编译期 shape 未知的输出索引。24dump_file_prefixSTRING否None数据 dump 文件的自定义文件名前缀。25manual_input_binariesEVAL否()手动输入二进制文件路径。26manual_golden_binariesEVAL否()手动 Golden 输出二进制文件路径。CSV 列顺序严格固定testcase_name, network_name, op_name, input_shapes, input_dtypes, input_formats, output_shapes, output_dtypes, output_formats, input_ori_shapes, input_ori_formats, output_ori_shapes, output_ori_formats, attributes, input_data_ranges, precision_tolerances, absolute_precision, output_inplace_indexes, output_shape_unknown_indexes, is_enabled, remark, soc_series, priority, dump_file_prefix, manual_input_binaries, manual_golden_binariesTensorList 嵌套结构当输入/输出为 TensorListS5_mapping_spec.md 中 param_typeDYNAMIC时以下字段使用嵌套格式外层 tuple 各输入/输出内层 tuple 该 TensorList 的各子 tensor。各字段因值类型不同DYNAMIC 格式有差异字段REQUIRED 格式DYNAMIC 格式说明input_shapes((1,2), (3,4))(((1,2), (3,4), (5,6)),)展开每个子 tensor 对应一个 shapeinput_dtypes(float16, float32)((float16,),)压缩1 dtype 广播到所有子 tensoroutput_shapes((1,2),)(((1,2), (3,4), (5,6)),)展开每个子 tensor 对应一个 shapeoutput_dtypes(float16,)((float16,),)压缩1 dtype 广播到所有子 tensorinput_data_ranges((-10,10), (-1,1))(((-10,10),(-10,10),(-10,10)),)展开每个子 tensor 对应一个 rangeprecision_tolerances((0.001,0.001),)(((0.001,0.001),(0.001,0.001),(0.001,0.001)),)展开每个子 tensor 对应一个 tolerance格式选择原因经 TTK 源码验证input_shapes/output_shapes必须展开每个子 tensor 有独立 shape无法广播input_dtypes/output_dtypes压缩即可。TTK_is_range_field_already_nested判定 dtype tuple(float16,)为已嵌套_flatten_by_distribution的len(val)1分支自动广播到所有子 tensorinput_data_ranges/precision_tolerances必须展开。range pair(min, max)本身是 2 元素 tupleTTK_normalize_range_field_by_dist的len(field)1广播分支会将field[0]整体广播压缩嵌套(((-10,10),),)会导致每个子 tensor 收到((-10,10),)而非(-10,10)解析错误。扁平格式((-10,10),)在纯 TensorList1 个输入时可用但在混合场景TensorList 普通 tensor下_flatten_by_distribution会拆散 range pair解析错误。展开嵌套是唯一通用格式input_formats/output_formats/ori系列字段保持扁平格式不变TTK 通过get()回退机制处理无需嵌套。混合示例2 个输入第 1 个 TensorList 含 3 子 tensor第 2 个普通 tensorinput_shapes (((1,2), (3,4), (5,6)), (7,8)) input_dtypes ((float16,), float32) input_data_ranges (((-10,10),(-10,10),(-10,10)), (-1,1))【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考