| Files | Last commit | Last update |
|---|---|---|
TTK init repo | 5 months ago | |
feat: 支持4通路xpu golden读入功能 Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !399 merge master into master feat: 支持4通路xpu golden读入功能 Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [ ] 否 [x] 是 __1. AI Agent 平台: opencode __2. AI 模型: CANNBot (GLM) __3. Prompt上下文 : 交互式编程会话(xpu golden 回放功能开发、调试与评审修复) ### PR功能描述 / 为什么需要这个合入**: **主需求(#306)**:manual_xpu 四通路统一装载——绿区 XPU 与黄区 NPU 无法直连,通过固定输入/输出( --dump xpu 落盘 → 回放)测试新精度: - **manual_xpu 装载(kernel/aclnn/e2e/geir 四通路)**:CSV manual_xpu_binaries 显式路径 + manual-data case 目录 xpu_{provider}_{idx}_{dtype} 槽位双来源,共享装载器 load_manual_third_parties;e2e 输出为执行派生(无声明槽),经 references(设备输出)取槽位元数据,口径同 golden 装载 - **XPU/NPU 执行重叠**(XpuDispatch dispatch/collect 两段式):cross_check / --xpu-perf / --dump xpu 场景下三方采集与 NPU 执行并行,总耗时 max(NPU, XPU);含输入快照(防 in-place 竞争)、deadline 补偿、租户心跳子进程 - **golden-XPU 回放**:--golden-mode XPU + --manual-data-dirs 时 xpu 槽文件装载并升格 golden(四通路口径统一,无 xpu 槽回退远端) **顺带修复**: - **e2e CPU 回落**:无 torch_npu 探测回落 CPU 后不再被 DSMI 设备健康检查拦截("No available device") - **e2e 三方采集与 golden 状态解耦**:golden 占位串(fp8 UNSUPPORTED / disable SUPPRESSED / 生成失败)不再连坐 cross_check 判据解析与 --xpu-perf / --dump xpu 采集 - **manual-data 目录支持读回调试 dump 产物**:output_* / tiling_data_* 忽略(读回时重新执行产出)、input_{dyn,const,dynamic}_* 去段映射(同槽字节一致性校验)、input_{eager,graph_*}_* 拒绝(执行后 dump-on-fail 产物) - **装载可观测性**:input/golden/xpu 逐文件 Reading manual ... file 日志 + 槽位计数汇总行 - **HTTP 协议批**:#58(xpu_server 容器超时语义/tenant_id 路径穿越/CPU 探测/mkdtemp 信号量)、#279(恢复探活 TLS 化)、#280(data_perf 模式位补全)、#281(复用连接 timeout 对齐) - 开发规范守护器更名 check_refactor → check_conventions(git mv 保历史) ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes #306, fixes #58, fixes #279, fixes #280, fixes #281 ### 希望检视人员了解: - #279/#280 与社区 PR !364、#281 与 !366 存在重叠(本仓修复先落,重叠部分请原作者核对) - aclnn xpu_attrs 的 ScalarList 摊派问题(#333)为存量缺陷,本 PR 未涉及 - --xpu-perf 与 manual 回放组合时性能指标随远端整体短路(回放零远端契约),单独 --xpu-perf 不装载 manual 文件(性能只能在线采) ## 测试 - 单测 2322+ passed(四通路 manual_xpu/golden-XPU/cross_check 参数化用例、调试 dump 读回、HTTP 协议回归) - 端到端验证:e2e fp32 + --compare cross_check + --manual-data-dirs(xpu 槽文件)回放 PASS;kernel 调试 dump 目录直接读回 PASS - pre-commit 全过(ruff / ttk conventions guard / OAT) ## 文档更新 - docs/Offline_Data_Prepare_and_Import.md:新增 §3.4 从调试 dump 目录读回(放行规则表 + 已知边界) - --dump xpu 回放契约(xpu 槽位文件名协议)随代码注释 ## 类型标签 - 新特性 - Bug修复 See merge request: cann/ops-test-kit!399 | 25 days ago | |
feat: 支持4通路xpu golden读入功能 Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !399 merge master into master feat: 支持4通路xpu golden读入功能 Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [ ] 否 [x] 是 __1. AI Agent 平台: opencode __2. AI 模型: CANNBot (GLM) __3. Prompt上下文 : 交互式编程会话(xpu golden 回放功能开发、调试与评审修复) ### PR功能描述 / 为什么需要这个合入**: **主需求(#306)**:manual_xpu 四通路统一装载——绿区 XPU 与黄区 NPU 无法直连,通过固定输入/输出( --dump xpu 落盘 → 回放)测试新精度: - **manual_xpu 装载(kernel/aclnn/e2e/geir 四通路)**:CSV manual_xpu_binaries 显式路径 + manual-data case 目录 xpu_{provider}_{idx}_{dtype} 槽位双来源,共享装载器 load_manual_third_parties;e2e 输出为执行派生(无声明槽),经 references(设备输出)取槽位元数据,口径同 golden 装载 - **XPU/NPU 执行重叠**(XpuDispatch dispatch/collect 两段式):cross_check / --xpu-perf / --dump xpu 场景下三方采集与 NPU 执行并行,总耗时 max(NPU, XPU);含输入快照(防 in-place 竞争)、deadline 补偿、租户心跳子进程 - **golden-XPU 回放**:--golden-mode XPU + --manual-data-dirs 时 xpu 槽文件装载并升格 golden(四通路口径统一,无 xpu 槽回退远端) **顺带修复**: - **e2e CPU 回落**:无 torch_npu 探测回落 CPU 后不再被 DSMI 设备健康检查拦截("No available device") - **e2e 三方采集与 golden 状态解耦**:golden 占位串(fp8 UNSUPPORTED / disable SUPPRESSED / 生成失败)不再连坐 cross_check 判据解析与 --xpu-perf / --dump xpu 采集 - **manual-data 目录支持读回调试 dump 产物**:output_* / tiling_data_* 忽略(读回时重新执行产出)、input_{dyn,const,dynamic}_* 去段映射(同槽字节一致性校验)、input_{eager,graph_*}_* 拒绝(执行后 dump-on-fail 产物) - **装载可观测性**:input/golden/xpu 逐文件 Reading manual ... file 日志 + 槽位计数汇总行 - **HTTP 协议批**:#58(xpu_server 容器超时语义/tenant_id 路径穿越/CPU 探测/mkdtemp 信号量)、#279(恢复探活 TLS 化)、#280(data_perf 模式位补全)、#281(复用连接 timeout 对齐) - 开发规范守护器更名 check_refactor → check_conventions(git mv 保历史) ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes #306, fixes #58, fixes #279, fixes #280, fixes #281 ### 希望检视人员了解: - #279/#280 与社区 PR !364、#281 与 !366 存在重叠(本仓修复先落,重叠部分请原作者核对) - aclnn xpu_attrs 的 ScalarList 摊派问题(#333)为存量缺陷,本 PR 未涉及 - --xpu-perf 与 manual 回放组合时性能指标随远端整体短路(回放零远端契约),单独 --xpu-perf 不装载 manual 文件(性能只能在线采) ## 测试 - 单测 2322+ passed(四通路 manual_xpu/golden-XPU/cross_check 参数化用例、调试 dump 读回、HTTP 协议回归) - 端到端验证:e2e fp32 + --compare cross_check + --manual-data-dirs(xpu 槽文件)回放 PASS;kernel 调试 dump 目录直接读回 PASS - pre-commit 全过(ruff / ttk conventions guard / OAT) ## 文档更新 - docs/Offline_Data_Prepare_and_Import.md:新增 §3.4 从调试 dump 目录读回(放行规则表 + 已知边界) - --dump xpu 回放契约(xpu 槽位文件名协议)随代码注释 ## 类型标签 - 新特性 - Bug修复 See merge request: cann/ops-test-kit!399 | 25 days ago | |
fix: 完善 batch 一致性校验、 ACLGraph 性能统计等 Co-authored-by: j60100428<jingsong5@h-partners.com> # message auto-generated for no-merge-commit merge: !235 merge master into master fix: 完善 batch 一致性校验、 ACLGraph 性能统计等 Created-by: SH_jingsong Commit-by: j60100428 Merged-by: cann-robot Description: ### PR功能描述 / 为什么需要这个合入**: - 完善 LI/QLI batch 比较:支持非递减 CU,校验有效 Q,避免物理 K padding 不同导致假 FAIL;补充单行异常隔离、参数校验及 MLA batch 属性识别。 - 基于主线 SuperKernel 实现,补齐 ACLGraph 原生 scope、静态 kernel 编译及 GE scope 预解析,保留主线满核调试选项。 - 修正 ACLGraph 性能统计,仅累计图内 kernel;原地输入保持固定地址,避免重复捕获;profiler 无本轮新数据时告警,不复用历史结果。 - 确定性等级设置失败时明确报错并停止执行;补充特殊 dtype 回退告警,修正 batch 比较脚本交接提示及相关文档。 ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-test-kit!235 | 1 month ago | |
feat(onnx): 实现onnx通路 Co-authored-by: FishPotatoChen<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !526 merge onnx_dev into master feat(onnx): 实现onnx通路 Created-by: FishPotatoChen Commit-by: FishPotatoChen Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: E2E 模式新增 **onnx 域(ONNX 通路)**:CSV 用例以 api_name = onnx.<OpType> 声明单算子,TTK 自动组装单算子 ONNX 模型,经 atc 离线编译为 .om 后在 NPU 上经 aclmdl 执行,补齐「ONNX 模型解析 → atc ONNX 插件转换 → 离线模型装载执行」引擎层链路的测试覆盖。至此 TTK 四种测试模式对应的昇腾技术栈层级中,引擎层在 GEIR / ACLNN 之外补上 ONNX(atc→om)一列。 核心设计与能力: - **执行链路**:CSV (onnx.<OpType>) → 框架检测路由 OnnxAdapter → 参数解析(onnx.defs schema 单源,环境注册表即权威)→ 输入生成(numpy 直通,无框架 tensor)→ model_builder 组装单算子 ModelProto → atc 离线编译 .om → NPU aclmdl 执行 → 复用既有比对 / dump / 结果列体系 - **同构参照 Golden**:Golden 腿与被测腿共用同一份组模产物(同一模型字节),由 CPU 侧 onnx ReferenceEvaluator 参照计算 - **无框架依赖**:onnx worker 进程仅预载 numpy + onnx,无需安装 torch / tensorflow / torch_npu(子树零 torch/tf import,由 test_structure 钉住) - **om 会话缓存**:结构键(算子+输入形态+属性+soc+dev_id)→ OmSession 进程级 LRU;「数组身份 → 内容指纹」双层判定防脏命中;缓存键含 atc ONNX 插件指纹,CANN 升级/重装后自动失效 - **用例面**:复用 E2E 全量 23 列 CSV 字段;支持 Variadic 输入/输出、Optional 输入尾部省略、6 种属性类型(INT/FLOAT/STRING/INTS/FLOATS/STRINGS);不支持项(动态 shape、动态输出元数、布局列、控制流算子等)均在解析/建模期显式报错,不静默降级 - **配套重构/新增**:ttk/utilities/dtypes.py 重构并新增 ONNX_DTYPE_MAP 全量 dtype 映射;新增 ttk/utilities/mx_quant.py(BFP16/FP16/FP32 → MX dtype 量化,纯算法模块) - om 恒为静态图(eager ≡ 静态图),不支持动态 shape 与 aclgraph 模式 主要新增模块:ttk/core_modules/framework_api/onnx/(model_builder / om_compiler / param_extractor / runner / runtime)、ttk/core_modules/common/backend/onnx_backend.py、ttk/utilities/mx_quant.py;示例用例 examples/case_store/e2e/onnx_cases.csv。 ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes [#433](https://gitcode.com/cann/ops-test-kit/issues/433) ### 希望检视人员了解: - onnx 域与 torch/tf 域互斥:同一 CSV 不得混域(框架检测拒绝),按域分文件存放 - 环境约束:onnx ≥ 1.13(Golden 依赖 ReferenceEvaluator)且 onnx.defs.onnx_opset_version() ≤ 18(对齐 CANN atc ONNX 插件注册上限,CANN 9.2.x 配套 onnx 1.13.x);onnx 域额外依赖 CANN 的 atc 与 libascendcl - --backend cpu 不适用于 onnx 域被测腿(om 执行必须经 NPU),CPU 侧仅用于 Golden 与输入生成 - om 编译缓存放于仓库根 onnx_cache/<op_type>/,已加入 .gitignore - NonZero / TopK 等输出 shape 数据依赖的算子属通路边界(ONNX_DYNAMIC_OUTPUT_UNSUPPORTED),建议改用 kernel/aclnn 模式覆盖 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> - **单元测试**(本仓库全量新增/回归,均通过): - tests/core_modules/framework_api/onnx/(model_builder / om_compiler / param_extractor / runner / runtime / routing / golden / e2e 冒烟)+ dtypes + mx_quant + structure:189 passed, 2 skipped(skip 为环境缺 tensorflow / en-dtypes,与本改动无关) - tests/core_modules/framework_api/ 全量回归 + tests/core_modules/common/test_instance_base.py:523 passed, 32 skipped(skip 为非基线 torch 版本钉死项与缺包项,与本改动无关) - **真机执行**:Ascend910_9362 双卡环境,python3 -m ttk e2e -i examples/case_store/e2e/onnx_cases.csv,6/6 用例全部 PASS(100%),覆盖 Add/Concat/Split/Gemm/Transpose/MatMul(bf16) 等 f32/f16/bf16/f64 dtype ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 新增 docs/Operator_Test_Guides/ONNX_Test_Guide.md(ONNX 算子测试指南:环境准备、用例编写、关键约定、属性类型速查、FAQ) - 更新 README.md / README-EN.md(通路架构图、依赖说明、onnx 域快速上手命令、测试通路表) - 更新 AGENTS.md / CLAUDE.md(架构层级与技能索引补充 onnx 域) - 更新 docs/FAQ/faq_guide.md(新增「ONNX 通路问题」章节 5 条 FAQ) - 更新 docs/Operator_Test_Guides/E2E_Case_Writing.md、E2E_Test_Guide.md 及 docs/ 下相关文档(Task_Execution / Test_Case_Generation / Dump_Debug / Performance_Testing / XPU_Cross_Check / NPUSim / Offline_Data_Prepare / Deterministic_Compute) - 更新 .claude/skills/ 四个技能文档(run-test / write-case / write-plugin / diagnose) - 更新 examples/case_store/e2e/README.md 并新增 examples/case_store/e2e/onnx_cases.csv ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-test-kit!526 | 13 days ago | |
fix: 签名解析/随机数据生成/插件扫描/DeviceLock 测试/remote 健康文件与 TLS Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !431 merge br_bugfix into master fix: 签名解析/随机数据生成/插件扫描/DeviceLock 测试/remote 健康文件与 TLS Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [ ] 否 [x] 是 __1. AI Agent 平台: OpenCode CLI __2. AI 模型: deepseek-v4-pro __3. Prompt上下文 : 逐个 issue 分析-最小复现-修复-回归-提交的迭代流程 ### PR功能描述 / 为什么需要这个合入**: 修复 9 个缺陷及一处日志清理: - #258 docstring/TypeError 与 pyi 签名解析不再把无默认值的 keyword-only 参数当可选;OverloadTensorLayout required_input_count/is_out_required 恢复必填语义;torch.ones 多重载胜者基线随之刷新 - #261 插件扫描改为模块作用域遍历,函数/异步函数/类内同名字典不再注册插件,模块级条件分支声明保持扫描 - #263 bool 均匀随机改离散域抽样(randint(0,2) 分块生成),默认范围不再全 True,显式 [0,1] 双值平衡且同 seed 可复现 - #265 非固定整数随机区间向内取整(ceil(min)/floor(max)),RNG 与端点混入不再越出声明闭区间,区间内无可表示整数时明确拒绝 - #267 DeviceLock 集成测试判定强化:新增释放配对与同设备持锁区间不重叠校验,修复消息孤儿化与完成判定重复计数,NoOp 锁注入不再假通过;测试耗时缩短(work_time 2→1、timeout 15→10),SUICIDE_JOIN_TIMEOUT_S 15→10 - #269 等容量小 tensor 必现值混入改走覆写注入,子集抽样仅在装不下全部必现值时启用 - #271 健康状态文件读写显式 UTF-8,UnicodeDecodeError 纳入容错,非对象 JSON 根返回 None - #272 mTLS 未指定 tls_ca 时加载默认信任根(SSL_CERT_FILE 兜底),错误 CA 仍拒绝、显式 CA 路径不变 - #273 证书脚本 SAN 变量加花括号边界,兼容 Bash 3.2 解析(签发成功后不再误报 unbound 退出 1) ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes #258, #261, #263, #265, #267, #269, #271, #272, #273 ### 希望检视人员了解: - 全部修复均带回归;改动集中在签名解析(framework_api)、随机数据生成(utilities/data)、插件扫描(common/plugin)、DeviceLock 测试、remote 健康文件/TLS/证书脚本 - 已通过仓库 pre-commit 全部门禁(ruff check/format、refactor guard、codespell、OAT)与 tests/ 相关套件 ## 测试 - tests/core_modules/framework_api(448 passed, 1 skipped) - tests/utilities/test_data.py(79 passed) - tests/core_modules/common/plugin(34 passed)、tests/core_modules/common/(933 passed, 1 skipped) - tests/core_modules/common/process(61 passed,含 DeviceLock 注入负例) - tests/remote(94 passed) ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-test-kit!431 | 25 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 5 months ago | ||
| 25 days ago | ||
| 25 days ago | ||
| 1 month ago | ||
| 13 days ago | ||
| 25 days ago |