| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor: 迁移 StanfordBench 到 bench_lab/stanford_bench,移除 thirdparty 目录 Co-authored-by: Developer user<suyueming@huawei.com> # message auto-generated for no-merge-commit merge: !124 merge master into master refactor: 迁移 StanfordBench 到 bench_lab/stanford_bench,移除 thirdparty 目录 Created-by: su-yueming Commit-by: Developer user Merged-by: cann-robot Description: ## 变更描述 / Description 1. baseline 数据迁移 - 将 tasks/ 和 bench_lab/ 下所有 cases.yaml 中的 baseline_perf_us/t_hw_us 字段剥离,数据集中存储到各评测集 metadata/910b2.json - 删除 data/stanford_baseline.json,StanfordBench baseline 改由 bench_lab/stanford_bench/metadata/910b2.json 加载 - 新增 scripts/migrate_baseline_to_data.py 迁移工具脚本 2. src 代码变更 - __init__.py: 版本号改为动态读取(_version.py → VERSION 文件) - perf_strategy.py: KernelDetailsStrategy 以 kernel_details.csv 为唯一权威源, 不再 fallback 到 trace_view;TraceViewStrategy 标注待收编 - cann_loader.py: 集成 BaselineStore,baseline 优先从 JSON 查询 - stanford_loader.py: baseline 改由 BaselineStore 加载,移除 _load_baseline - report 模块: 微调 HTML/MD 报告和 setup_info 输出 3. 新增文件 - tasks/metadata/910b2.json + VERSION - bench_lab/*/metadata/910b2.json (cv_agent_bench, kernel_bench, pypto_cann_bench, stanford_bench) - pyproject.toml, VERSION (根目录), _version.py, test_version_consistency.py - docs/design/micro_benchmark_selection.md, module_panorama.md - docs/guide/version_policy.md 4. tests 更新 - test_benchmark_pipeline: 适配 baseline 迁移 - test_cases_yaml_csv_consistency: 新增 metadata JSON 与 cases.yaml 一致性校验 - test_version_consistency: 版本号一致性测试 1. 新增 PLATFORM_ALIAS 和 resolve_hardware() - 在 baseline_resolver.py 中添加产品型号→逻辑名映射表 - 支持精确匹配(Ascend910_9362 → 910b2)和前缀匹配(Ascend310P* → 310p) - 最长前缀优先,避免短 key 误匹配 - BaselineStore/BaselineResolver/__init__ 统一调用 resolve_hardware - has_baseline_for/resolve_baseline_us 内部自动解析硬件名 - 导出 resolve_hardware 和 PLATFORM_ALIAS 至 utils/__init__.py 2. 将 examples/eval_task → examples/tasks - 按 tasks/ 结构重构:add → level2/add, sqrt → level1/sqrt - 新增 metadata/910b2.json(fixture baseline,值均为 0.0 placeholder) - 新增 metadata/VERSION - 新增 cases.csv(与生产 tasks 格式一致) - 重写 README.md(目录结构、路径引用) - 更新 docs/guide/quick_start.md 和根 README.md 的路径引用 - 删除旧 examples/eval_task/ 目录 - 移动 scripts/download_benchmarks.sh → bench_lab/stanford_bench/download.sh, 下载目标从 thirdparty/KernelBench 改为 bench_lab/stanford_bench/KernelBench 将 direct_launch_example 从仅支持 910B 扩展为支持多种 SOC, 与 aclnn_launch_example 的多 SOC 能力对齐。 <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> [#31](https://gitcode.com/cann/cann-bench/issues/31) ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [x] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues <!-- Closes #000 可自动关闭 / Closes #000 to auto-close --> - Closes # - References # ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [ ] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/cann-bench!124 | 1 个月前 | |
refactor: 迁移 StanfordBench 到 bench_lab/stanford_bench,移除 thirdparty 目录 Co-authored-by: Developer user<suyueming@huawei.com> # message auto-generated for no-merge-commit merge: !124 merge master into master refactor: 迁移 StanfordBench 到 bench_lab/stanford_bench,移除 thirdparty 目录 Created-by: su-yueming Commit-by: Developer user Merged-by: cann-robot Description: ## 变更描述 / Description 1. baseline 数据迁移 - 将 tasks/ 和 bench_lab/ 下所有 cases.yaml 中的 baseline_perf_us/t_hw_us 字段剥离,数据集中存储到各评测集 metadata/910b2.json - 删除 data/stanford_baseline.json,StanfordBench baseline 改由 bench_lab/stanford_bench/metadata/910b2.json 加载 - 新增 scripts/migrate_baseline_to_data.py 迁移工具脚本 2. src 代码变更 - __init__.py: 版本号改为动态读取(_version.py → VERSION 文件) - perf_strategy.py: KernelDetailsStrategy 以 kernel_details.csv 为唯一权威源, 不再 fallback 到 trace_view;TraceViewStrategy 标注待收编 - cann_loader.py: 集成 BaselineStore,baseline 优先从 JSON 查询 - stanford_loader.py: baseline 改由 BaselineStore 加载,移除 _load_baseline - report 模块: 微调 HTML/MD 报告和 setup_info 输出 3. 新增文件 - tasks/metadata/910b2.json + VERSION - bench_lab/*/metadata/910b2.json (cv_agent_bench, kernel_bench, pypto_cann_bench, stanford_bench) - pyproject.toml, VERSION (根目录), _version.py, test_version_consistency.py - docs/design/micro_benchmark_selection.md, module_panorama.md - docs/guide/version_policy.md 4. tests 更新 - test_benchmark_pipeline: 适配 baseline 迁移 - test_cases_yaml_csv_consistency: 新增 metadata JSON 与 cases.yaml 一致性校验 - test_version_consistency: 版本号一致性测试 1. 新增 PLATFORM_ALIAS 和 resolve_hardware() - 在 baseline_resolver.py 中添加产品型号→逻辑名映射表 - 支持精确匹配(Ascend910_9362 → 910b2)和前缀匹配(Ascend310P* → 310p) - 最长前缀优先,避免短 key 误匹配 - BaselineStore/BaselineResolver/__init__ 统一调用 resolve_hardware - has_baseline_for/resolve_baseline_us 内部自动解析硬件名 - 导出 resolve_hardware 和 PLATFORM_ALIAS 至 utils/__init__.py 2. 将 examples/eval_task → examples/tasks - 按 tasks/ 结构重构:add → level2/add, sqrt → level1/sqrt - 新增 metadata/910b2.json(fixture baseline,值均为 0.0 placeholder) - 新增 metadata/VERSION - 新增 cases.csv(与生产 tasks 格式一致) - 重写 README.md(目录结构、路径引用) - 更新 docs/guide/quick_start.md 和根 README.md 的路径引用 - 删除旧 examples/eval_task/ 目录 - 移动 scripts/download_benchmarks.sh → bench_lab/stanford_bench/download.sh, 下载目标从 thirdparty/KernelBench 改为 bench_lab/stanford_bench/KernelBench 将 direct_launch_example 从仅支持 910B 扩展为支持多种 SOC, 与 aclnn_launch_example 的多 SOC 能力对齐。 <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> [#31](https://gitcode.com/cann/cann-bench/issues/31) ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [x] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues <!-- Closes #000 可自动关闭 / Closes #000 to auto-close --> - Closes # - References # ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [ ] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/cann-bench!124 | 1 个月前 | |
fix(tasks): align operator prototypes across desc.md, proto.yaml, and golden.py Co-authored-by: Developer user<suyueming@huawei.com> # message auto-generated for no-merge-commit merge: !101 merge master into master fix(tasks): align operator prototypes across desc.md, proto.yaml, and golden.py Created-by: su-yueming Commit-by: Developer user Merged-by: cann-robot Description: ## 变更描述 / Description <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> Fix 24 inconsistencies across 19 operators: - Missing default values in prototypes (exp, masked_scale, rms_norm, softmax, gru, lstm) - Parameter name mismatches (roi_align, cross_entropy_loss) - Incorrect parameter ordering (gru, lstm) - Inconsistent function names (mla_prolog) - Missing critical code (depthwise_conv_2d weight unsqueeze) - Type inconsistencies (grouped_matmul return type, grouped_matmul_swiglu_quant group_list) - Unused parameters (quant_matmul group_sizes) - Code body divergences (mish, apply_rotary_pos_emb, engram_gate_fusion) ## 改动类型 / Change Type [#14](https://gitcode.com/cann/cann-bench/issues/14) [#15](https://gitcode.com/cann/cann-bench/issues/15) - [x] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues <!-- Closes #000 可自动关闭 / Closes #000 to auto-close --> - Closes # - References # ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [ ] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/cann-bench!101 | 1 个月前 | |
fix(level3/roi_align): 按 ROI 分块 auto-sampling 双线性插值,避免运行时 OOM Co-authored-by: Xinxian Chen<chenxinxian1@huawei.com> # message auto-generated for no-merge-commit merge: !145 merge fix/task-roi-align into master fix(level3/roi_align): 按 ROI 分块 auto-sampling 双线性插值,避免运行时 OOM Created-by: vINyLogY Commit-by: Xinxian Chen Merged-by: cann-robot Description: ## 变更描述 / Description ROIAlign golden 两处正交修复 + 一次注释清理(3 commit): 1. ** get_input 重生成合法 boxes** ROIAlign 的 boxes (N,5) 有结构化契约: col0 是 [0,B) 整数 batch 索引, col1-4 是非退化(x1>x0/y1>y0)、经 spatial_scale 映射后落在特征图内的像素坐标。但全部 20 个 case 的 boxes value_range 都是 [-1,1] 且无 get_input → 通用生成器把整张 (N,5) uniform [-1,1] 填充: col0 100% 非整数、48% 为负 (.long() 后基本全塌到 batch 0), ~50% 退化框, 坐标 × scale 全挤在左上角亚像素点。golden 靠 .long()+clamp 兜住, 但真实 torch_npu.npu_roi_align 不鲁棒 → 精度爆 (baseline 实测 1/20、MARE ~1e29、8 个 NaN)。单区间 value_range 无法表达这种逐列+跨列契约, 故按框架既有机制加 get_input 用确定性种子重建合法 boxes (特征图 x 原样, inf/nan/边界 stress 仍在 x 上), 并同时替换 golden 与候选输入, 比较公平。 2. **auto-sampling 按 ROI 分块** _roi_align_fallback 的 auto-sampling (sampling_ratio<=0) 路径物化 [N,C,oh,H,ow,W]——按整张特征图 arange(H)×arange(W) 铺满再 mask,而真正网格 gh≈ceil(roi_h/oh)≈9, 白算 ~49×。case 16(x[2,255,63,63], N=100,oh=ow=7,sr=0) 达 18.47 GiB, golden 当候选在 NPU 上 Memory_Allocation_Failure + aicpu 超时拖死设备。改为按 ROI 维分块循环再 cat: 每个框的 sum((-1,-2)) 维度/值不变 → bit-exact, 峰值 val 张量限到 ~1 GiB。 ## 改动类型 / Change Type - [x] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [x] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues - n/a ## 测试信息 / Testing bit-exact(CPU):auto sr=0 / auto aligned / exact sr=2 / exact sr=4 fp16 / exact sr=1 全部 torch.equal=True、max|diff|=0.00e+00(分别跨 20/20/4/16/1 块)。 golden-candidate ST (q7 910B2,bash tests/st/run_st.sh -k ROIAlign): 分块改前 rc=1 (case 16 OOM 拖死设备,15/20 出 verdict) → 改后 rc=0(20/20 出 verdict, case 16 70s 跑通且精度过)。get_input 修复经 cann-bench-tests baseline 回归验证 (真 npu 算子: 1/20、MARE 1e29 → 数值正确、平均误差 1e-4 级)。 > 残余 case 12/17/20 精度 ❌ 是近零相消点 NPU-fp32 vs fp64 MARE 放大,绝对差极小; > 它们跑出了 verdict,按 ST 设计只 warn 不 gate(精度不达标属 NPU 实现问题)。 - [ ] 单元测试通过 / UT passed - [x] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/cann-bench!145 | 1 个月前 | |
refactor(tasks): baseline fills + accuracy fixes + cases refresh across 16 operators Co-authored-by: gxj1123<gao.xuejian1@huawei.com> # message auto-generated for no-merge-commit merge: !64 merge refactor/tasks-content-fixes into master refactor(tasks): baseline fills + accuracy fixes + cases refresh across 16 operators Created-by: gxj1123 Commit-by: gxj1123 Merged-by: cann-robot Description: **43 files, +717 / -709.** Touches cases.yaml / cases.csv / golden.py / proto.yaml across 16 operators in tasks/level2-4. ### Baseline fills (baseline_perf_us populated, cases benched) - level2/unsorted_segment_sum — refreshed CANN baselines (20/20) - level3/moe_finalize_routing — fill baselines + fix shape/range data - level3/moe_re_routing — fill baselines + fix dtype/input data - level3/moe_gating_top_k_softmax — 20/20 MoeGatingTopKSoftmax×1 baselines - level3/roi_align — fill baselines reflecting the full torch_npu V1 dispatch chain (no fast path for the rare dtype combos) ### Accuracy fixes - level3/quant_matmul — 精度修复,20/20 PASS now - level3/dequant_swiglu_quant — golden + cases reverted to correct dtype matrix (wrong fp32/fp64 entry removed; doc drift repaired) - level3/engram_gate_fusion — golden + cases tightened after the rename from engram (op now reflects fused-gate semantics) - level3/conv_2d — golden tweak for the bias=None path - level3/roi_align — golden alignment with the V1 dispatch behavior ### Spec / cases refinements - level3/unique — tighten desc/cases, wire bit-exact precision - level3/adaptive_avg_pool_3d, depthwise_conv_2d, top_k — case cleanup / shape range trims - level2/dynamic_quant, maximum — yaml content polish - level4/gqa, mha, mla, sparse_flash_attention — clip baseline_perf_us when measured > 5× t_hw_us (treated as unreliable, set to null so the score path falls back cleanly); cases trimmed for stability - proto.yaml polish on unsorted_segment_sum / conv_2d / quant_matmul / roi_align / unique See merge request: cann/cann-bench!64 | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 |