CANN白盒测试验证器 Task D 产出验证D1 D2 D3【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills校验S2P2_param_def.jsonS2P2_gen_cases.pyS2P2_traceability.md的真实性与一致性。D1推导链真实性ReadS2P2_traceability.md每个 group 的两张表逐行验证源码引用。D1.1 触发条件表逐行 Readtiling 源码位置列±2 行验证该位置确实包含表中的条件描述的分支逻辑 →fail行号无关D1.2 内部变量推导表逐行 Read计算链列首个源码引用±2 行验证该行包含计算链中提到的变量名和命名常量。行号偏移 ≤5 行 → pass记录实际行号5 行或变量名不存在 →failD2param_def 结构合规验证S2P2_param_def.json的结构。必填顶层字段platform(string) ·platform_cores(int) ·tiling_keys(int[]) ·dtype_tensors(array[object]每个含tensorparam) ·groups(array)Group 字段必填id(string) ·mode(string) ·per_dtype(dict) ·constraint_note(string)可选group_dims(dict[str, array])每个数组必须为 10 值→ 长度不符 →fail。无 group 级维度时省略该字段constraint_note 一致性Read 该 group 的S2P2_traceability.md表验证 constraint_note 中每个引用数值都能在该 group 的触发条件表或等价推导表「写入位置 constraint_note」的行中找到对应 →warn不一致不阻塞因 constraint_note 为自由文本per_dtype entry 字段per_dtype[{dtype}][*]必填path(string) ·key(int)条件必填路由参数决定代码分支为 array同 path 不同 dtype 下取值相同条件必填dtype-dependent 维度为 array仅取值因 dtype 不同时出现维度取值格式按类区分路由参数{route_param}flat value 数组元素数 ≥1如[NCHW]、[NCHW, NHWC]或[0, 1]退化维度1 元素 flat value 数组如[1]compound 维度{compound_dim}list[dict]multi-key dict如[{dimA: v1, dimB: v2}]单 key 维度{dim_name}flat value 数组如[64, 128, 256, 512, 1024]5 个标量元素每个 per_dtype[{dtype}] 的数组长度必须 该 group 内 reachabilityreachable 且属于该 dtype 的 path 数量04-step4-output.md 4.2 校验项 6 已覆盖此规则跨 dtype 多样性同 group 同{param}名下各 dtype 条目的 mid 值集合两两不重叠 → 存在重叠且该维度在 (lo, hi) 内候选值充足候选数 ≥ 3 × dtype 数→warn禁止字段任意层级t、coverage、thresholds、anchor_dim、per_value、alignment、constraints(JSON 格式)、low_configs、desc_rulesD3gen_cases.py 静态语义匹配Read 源码理解意图验证脚本正确从S2P2_param_def.json读取数据。不运行脚本生成 cases。D3.1 语法 JSON 加载python3 -m py_compile返回 0Section 1 顶部存在import randomrandom.seed(42)脚本从S2P2_param_def.json加载数据json.load调用存在DTYPE_PARAM从_param_def[dtype_tensors][0][param]读取_a由脚本运行时从 JSON 累加计算遍历所有 group × 所有 dtype 的 per_dtype entry 总数_default_cap max(min(10, 100 // _a), 1)计算逻辑正确任一不符 →failD3.2 提取函数正确性Read Section 2 的extract_entry_dims()和extract_group_dims()函数函数关键语义点extract_entry_dims(entry)跳过path/keydict list → 直接使用flat array →[{field: v} for v in values]extract_group_dims(group)读取group[group_dims]list 字段 →[{field: v} for v in values]函数实现偏离描述 →failD3.3 工具函数正确性Read Section 2 的 3 个工具函数函数关键语义点compress_per_dtype(dim_dicts, cap)循环生成 cap 个组合每维度独立随机选值固定 seedseen 去重可选值不足 cap 时以实际为准compress_group_pool(dim_dicts)多维度独立 shuffle 同位配对 → min_len 个 combo单维度直接返回shuffled_pool(base, seed)用独立 Random(seed) 打乱副本返回 (shuffled, 0)函数实现偏离描述 →failD3.4 生成循环完整性Section 3 的通用循环验证遍历_param_def[groups]覆盖所有 group对每个 groupextract_group_dims(group)→compress_group_pool()→shuffled_pool()遍历group[per_dtype]每个 dtype 的每个 entry对每个 entryextract_entry_dims(entry)→compress_per_dtype()→ 对每个组合从 pool 抽取 1 项池耗尽时用相同 seed 重新打乱seed 唯一性不同 group 的 seed 值必须两两不同seed (group_idx 1) * 100满足此要求 → 共享 seed →fail缺失任一环节 →failD3.5 case dict 结构Section 3 每个 case 组装满足必含字段_group(group ID) ·{DTYPE_PARAM}(dtype 名称) ·path(str) ·key(int)per_dtype 维度通过**p解包p 来自 compress_per_dtype 输出group 级维度通过**gp解包gp 来自 pool任一不符 →failD3.6 路径覆盖逻辑可达性对 path_list 每个reachability reachable路径验证脚本的通用循环逻辑上会遍历该路径脚本遍历group[per_dtype][dtype]中的每个 entryentry 的path字段即为路径 ID。只要 param_def 中该 group 的 per_dtype 包含该 path 的 entry脚本即可达 → 不可达 →failD 整体判定任一子项 fail →fail全 pass →pass。输出格式| ID | 状态 | verified/total | 备注 | |----|------|---------------|------| | D1.1 | pass/fail | v/t | | | D1.2 | pass/fail | v/t | | | D2 | pass/fail | —/— | | | D3.1 | pass/fail | —/— | JSON 加载 _a 计算 | | D3.2 | pass/fail | —/— | extract 函数 | | D3.3 | pass/fail | —/— | 工具函数 | | D3.4 | pass/fail/warn | v/t | 生成循环 seed 唯一性 | | D3.5 | pass/fail | —/— | case dict 结构 | | D3.6 | pass/fail | v/t | 路径覆盖 |【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考