| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 个月前 | |
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 个月前 | |
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(anti_cheat): 补全内置算子禁用清单,修复 TopK 等可绕过评测的漏洞 Co-authored-by: Deng Pan<pan.deng@huawei.com> # message auto-generated for no-merge-commit merge: !146 merge fix/anti-cheat-missing-kernels into master fix(anti_cheat): 补全内置算子禁用清单,修复 TopK 等可绕过评测的漏洞 Created-by: Deng_Pan Commit-by: Deng Pan Merged-by: cann-robot Description: ## 背景 反作弊 kernel-disable 清单( scripts/anti_cheat/)由 tasks/**/cases.csv 的 baseline_kernels 标注推导。TopK 等算子从未标注,导致其内置 AiCore kernel 二进制始终留在 OPP 中——提交可**完全不实现 AscendC kernel**,仅在 host 侧把计算 委托给内置算子(如 C++ at::topk → aclnnTopk)即可通过全部评测刷分(已实证)。 ## 审计结论 对照真实 OPP 树(ascend910_93 / 910C)、aclnn 头文件与 torch_npu wrapper 逐一审计 原报告列出的 8 个缺标注 task,区分「缺标注」与「可被绕过」: | Task | 可达内置路径 | 有可移除 AiCore kernel? | 处理 | |------|--------------|--------------------------|------| | TopK | at::topk/aclnnTopk(已实证) | ✅ | 补全 | | WeightQuantBatchMatmul | torch_npu.npu_weight_quant_batchmatmul | ✅ | 补全 | | NMS | torch_npu.npu_nms_* | ✅ | 补全 | | Dilation2D | 仅 raw GE | ✅ | 补全(防御性) | | StridedSlice | 原生 x[b:e:s] + DMA | ✅(部分) | 补全 + 记录残留 | | Unique | at::unique | ❌ AICPU | 记录残留 | | GRU | torch_npu.npu_gru | ❌ 分解为 matmul | 记录残留 | | EngramGateFusion | 无 | ❌ 全新融合算子 | 缺标注属正确,不在残留清单 | ## 改动 - **补全 5 个有可移除 AiCore kernel 的算子**:cases.csv 追加 | baseline_kernels: ... 标注;kernel_map.json 新增 5 个算子 → 10 个 kernel 目录映射;benchmarked_kernels.txt 新增 10 个目录(均已确认存在于 910C kernel 树并实跑 disable_builtin_kernels.sh 验证移除)。 - **README 记录残留风险**:Unique(AICPU)、GRU(分解为受保护的 matmul)、StridedSlice (原生切片走 view+DMA,不经算子 kernel)这三类 kernel-disable **结构性无法覆盖**, 需 host 侧 TorchOpGuard 或 C++/dispatch 层防护。 ## 已知局限 已实证的 TopK 作弊走 **C++ at::topk**,而 TorchOpGuard 是 Python TorchFunctionMode, 无法拦截 C++ PrivateUse1 plugin 内部的 aten 调用——故本 PR 用 kernel-disable 兜底。 Unique/GRU 的根治需在 dispatch 层补防护,留作后续。 ## 测试 - disable_builtin_kernels.sh --dry-run 与实跑均确认 10 个目录正确移出 OPP(含 top_k_d/top_k_v2),restore 可一键还原。 - cases.csv 列完整性校验通过(7 列,无错行);kernel_map.json 为合法 JSON。 🤖 Generated with [Claude Code](https://claude.com/claude-code) See merge request: cann/cann-bench!146 | 28 天前 | |
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 个月前 | |
feat(grouped_matmul): add dtype-agnostic oracle Co-authored-by: Xinxian Chen<chenxinxian1@huawei.com> # message auto-generated for no-merge-commit merge: !193 merge feat/grouped-matmul-split into master feat(grouped_matmul): add dtype-agnostic oracle Created-by: vINyLogY Commit-by: Xinxian Chen Merged-by: cann-robot Description: ## 变更描述 / Description 延续 PR [#192](https://gitcode.com/cann/cann-bench/merge_requests/192) (weight_quant oracle/bench 拆分)的 reviewer 意见,排查其他 matmul。GroupedMatmul 的 golden 也硬 .float(),同样有 |b−oracle|=0 退化。 **本 PR 补一个 grouped_matmul_oracle (dtype-agnostic, 去 .float())** —— 因为: GroupedMatmul 权重是 fp16/bf16 (**非量化**), plain golden 的 .float() (= fp16/bf16 操作数 无损升 fp32 + fp32 累加 + 舍回 T) **本就是标准 A16W16 tensor-core 的同精度参考 b**; 唯一病理是 .float() (=float32) 在 fp64 输入下把 oracle 也下采成 fp32 → |b−oracle|=0 → 相消/小值域 严格分支 (cpu==0→npu必须==0) 误杀。修正 oracle 为真 fp64 后, plain-golden bench 的 fp32 累加在相消 cell 相对 fp64 即有非零误差, 严格分支放松。 **与 weight_quant 不同**: 那里权重是 int8、需 bf16-dequant 的 _bench; 这里无量化, plain golden 直接就是忠实 bench, 故**不需要 _bench**(约定:plain golden 默认兼任 bench,_bench 仅在其精度与 plain 不同时才写)。基础设施 (loader 钩子 + evaluator 接线) 已由 [#192](https://gitcode.com/cann/cann-bench/merge_requests/192) 合入 master, **本 PR 仅动 golden.py** (task golden 的单测按约定不入 tests/ut/,由 ST 覆盖)。 ### 范围说明 - **GroupedMatmulSwigluQuant 不在本 PR**: 910B2 实测 20/20 (int8 输出,量化台阶吸收 matmul 精度差, 无退化)。判据: 硬 .float() matmul + 浮点输出 → 拆; int8 量化输出 → 不拆。 - 残留 case 10/11/13 是 normal-region MARE / 单 cell 脆性, **非退化**, 属后续 b-aware normal checker (不在本 PR, 也不该用假 bench 硬凑)。 ### CI (golden-npu-mock ST) 说明 本 PR 的 CI 跑 golden-npu-mock ST(候选 = golden 本身在 NPU 上跑,vs 新的 fp64 _oracle), gate 为绿(junit 0 failures;精度失败 warn-only 不 gate)。per-case 显示 GroupedMatmul **18/20**, warn-fail 的 **case 11 (float32, MARE=0.004 > 1.22e-3) / 13 (float16, MARE=0.216 > 9.77e-3)** 均为 **normal-region MARE**(MERE 均值 ~1e-6 极小,无兜底;是单个"桶外近相消 cell"被 fp64 oracle 放大的相对误差),**属上面说的 normal-region 残留、非本 PR 引入**:拆 oracle 修的是**桶内**相消 (case 3/4/8),桶外近相消 cell 走 a-vs-oracle 固定阈值 MARE、与 b 无关,需后续 b-aware normal 判据(mare_a ≤ k·mare_b)才能放过。注:此 18/20 是 golden 自测(golden vs fp64),**不是**真 kernel 的 14→17/20(那条 CI 不跑真 op)。 ## 改动类型 / Change Type - [x] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues Related to [#59](https://gitcode.com/cann/cann-bench/issues/59) ## 测试信息 / Testing 910B2 端到端 (同 base、只差本 PR,候选 = 真 npu_grouped_matmul): GroupedMatmul **14/20 → 17/20** (修好 case 3/4/8 的相消退化, 如 case3 相消 CPU 计数 0→57)。残留 10/11/13 为 normal-region(见上)。 - [ ] 单元测试通过 / UT passed(task golden 无 ut,按约定由 ST 覆盖) - [x] 集成测试通过 / ST passed(golden-npu-mock gate 绿) - [x] 人工验证通过 / Manual verified(910B2 14→17/20) ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed(ST + 910B2 人工) - [ ] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/cann-bench!193 | 8 天前 | |
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(level3/moe_finalize_routing): drop_pad -1(丢弃)token 整项贡献 0,修 golden 与 desc 标准代码 Co-authored-by: Xinxian Chen<chenxinxian1@huawei.com> # message auto-generated for no-merge-commit merge: !169 merge fix/task-moe-finalize-droppad-bias into master fix(level3/moe_finalize_routing): drop_pad -1(丢弃)token 整项贡献 0,修 golden 与 desc 标准代码 Created-by: vINyLogY Commit-by: Xinxian Chen Merged-by: cann-robot Description: ## 变更描述 / Description 修复 moe_finalize_routing 在 **drop_pad 模式(drop_pad_mode 1/3)** 下对被丢弃 token 错误累加 bias 的问题——golden.py 与 desc.md 第 5 节「标准 Golden 代码」与 desc 自身的文字定义自相矛盾。 **desc 自身已规定正确行为**:desc.md 第 2 节「处理流程」明确写: > 若索引为 -1(drop pad 模式),**则该位置贡献为 0**;否则计算 scales*(perm + bias)。 但**同一份 desc 的第 5 节「标准 Golden 代码」却实现错了**:value==-1 时只把 dst_row 置 0,却仍执行 out += scale*(dst_row + bias[expert_id]) —— 等于给被丢弃的 token 累加了一份 scale*bias,与第 2 节文字定义冲突。task 的 golden.py 正是照抄了这段错误的示例代码。 **为何"整项为 0"才对(MoE 第一性原理)**:drop_pad 的 -1 表示 token 超出 expert capacity 被**丢弃**,该 (token, expert) 对根本没进入该专家的 FFN;而 bias[expert] 是该专家 FFN 输出的偏置项(FFN(x)=W2·act(W1·x)+bias),没跑 FFN 就不存在 bias。保留 bias 会让被丢弃的 token 凭空获得 scale·bias 贡献,数学上无意义。故该位置整项必须为 0。 **修复(两处,均回归到 desc 第 2 节的文字定义)**: 1. golden.py:向量化核心循环累加前对 dropped 行整项清零(term[~valid] = 0,torch/numpy 两支统一)。 2. desc.md 第 5 节标准 golden 代码:-1 分支改为 continue(整项跳过),消除 desc 内部矛盾。 ## 改动类型 / Change Type - [x] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues - Closes # - References #163 <!-- bc05bbd 向量化超时修复未含此 fix,本 PR 补齐并连带修正 desc --> ## 测试信息 / Testing q7(Ascend 910B2)直调 npu_moe_finalize_routing 与修复后 golden 逐位比对(drop_pad mode 3,perm 3D [16,40,256]),kernel 作为**独立第三方实现**印证修复符合 desc 文字定义与 MoE 语义: | 输入 | 修复前 | 修复后 | |---|---|---| | 合法唯一 + -1 padding | max_diff 1.956 | **max_diff 0** | | random [-1, E*C)(同 cases.csv) | 偶发挂 | **max_diff 0** | | ~1/3 dropped(压力) | — | **max_diff 0** | | 无 -1 / drop_less mode0(回归) | 0 | **max_diff 0**(无回归) | 预期 cases.csv c10/c11/c20 由失败转通过(其中 c11 为 fp32、原 MARE≈75,排除精度漂移),其余 case 不受影响。 - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified(q7 910B2,逐位一致) ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed <!-- 复用现有 cases.csv c10/c11/c20 覆盖,未新增用例 --> - [x] 文档已更新 / Docs updated if needed <!-- desc.md 第 5 节标准 golden 代码同步修正 --> - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/cann-bench!169 | 27 天前 | |
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(level3/moe_finalize_routing): 向量化核心循环,消 NPU 逐元素同步超时 Co-authored-by: Xinxian Chen<chenxinxian1@huawei.com> # message auto-generated for no-merge-commit merge: !163 merge fix/task-moe-routing-timeout into master fix(level3/moe_finalize_routing): 向量化核心循环,消 NPU 逐元素同步超时 Created-by: vINyLogY Commit-by: Xinxian Chen Merged-by: cann-robot Description: ## 变更描述 / Description 两个 MoE 路由 golden 在 **golden-candidate ST** 上超时(候选=golden 跑在 NPU)。根因相同:**嵌套 Python 循环 + 逐元素 .item()**,每个 .item() 是一次 device→host 同步,成千上万次串行化 → 30min 跑不完被杀(0 verdict)。两者本质都是**索引记账 + token gather**,无重并行算术,因此把逐元素循环改成向量化,gather/加法留在输入 device(NPU)。 1. **moe_re_routing**(6868218) 原用 N*E + A 的嵌套循环 + .item() 建 src/dst offset 与 src→dst 映射、再逐位填 permute_token_idx。 改为向量化:对 tiny (N,E) counts 做 cumsum 算 src offset(序=(rank,expert))与 dst offset(序=(expert,rank)),repeat_interleave 建每个 src 位的 block id,逆排列得 permute_token_idx;tokens[permute_token_idx] gather 留 NPU。**整数索引 → bit-exact**。 2. **moe_finalize_routing**(2cfbd56) 原用 num_rows*K 双循环逐元素 .item() 累加 out[i] += scale*(row+bias)。 改为**按行向量化、只保留 K(~topk)小循环**:逐 k 对所有行 gather + scaled-add。**保留 k 累加顺序 → fp32 逐位一致**;保留 F510 expert 越界(哨兵 == E → 跳过 bias)判定;value==-1(drop pad)贡献零行。 ## 改动类型 / Change Type - [x] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [x] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [x] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues - N/A ## 测试信息 / Testing **bit-exact(CPU,编辑后文件 vs 原版)**: - MoeReRouting:torch + numpy 多配置(A/H/N/E 不同),4 个输出全 torch.equal/array_equal=True。 - MoeFinalizeRouting:**52 组**(drop_pad_mode 0–3 × float32/float16/bfloat16 × skip2/bias 组合 + numpy)全 torch.equal=True。 **golden-candidate ST(q7 910B2,bash tests/st/run_st.sh -k "MoeReRouting or MoeFinalizeRouting")**: - 改前:各 op **1801s 超时被杀,0 verdict**(bak1 全跑记录)。 - 改后:**rc=0,40/40 verdict、100% ✅、5:24**(每 op 20 case);主 gather/加法在 NPU,perf 可测。 - [ ] 单元测试通过 / UT passed - [x] 集成测试通过 / ST passed(40/40,rc=0) - [x] 人工验证通过 / Manual verified(CPU bit-exact + q7 实跑) ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed(向量化段补 why 注释) - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention(2 commit:re_routing / finalize_routing) See merge request: cann/cann-bench!163 | 29 天前 | |
fix(anti_cheat): 补全内置算子禁用清单,修复 TopK 等可绕过评测的漏洞 Co-authored-by: Deng Pan<pan.deng@huawei.com> # message auto-generated for no-merge-commit merge: !146 merge fix/anti-cheat-missing-kernels into master fix(anti_cheat): 补全内置算子禁用清单,修复 TopK 等可绕过评测的漏洞 Created-by: Deng_Pan Commit-by: Deng Pan Merged-by: cann-robot Description: ## 背景 反作弊 kernel-disable 清单( scripts/anti_cheat/)由 tasks/**/cases.csv 的 baseline_kernels 标注推导。TopK 等算子从未标注,导致其内置 AiCore kernel 二进制始终留在 OPP 中——提交可**完全不实现 AscendC kernel**,仅在 host 侧把计算 委托给内置算子(如 C++ at::topk → aclnnTopk)即可通过全部评测刷分(已实证)。 ## 审计结论 对照真实 OPP 树(ascend910_93 / 910C)、aclnn 头文件与 torch_npu wrapper 逐一审计 原报告列出的 8 个缺标注 task,区分「缺标注」与「可被绕过」: | Task | 可达内置路径 | 有可移除 AiCore kernel? | 处理 | |------|--------------|--------------------------|------| | TopK | at::topk/aclnnTopk(已实证) | ✅ | 补全 | | WeightQuantBatchMatmul | torch_npu.npu_weight_quant_batchmatmul | ✅ | 补全 | | NMS | torch_npu.npu_nms_* | ✅ | 补全 | | Dilation2D | 仅 raw GE | ✅ | 补全(防御性) | | StridedSlice | 原生 x[b:e:s] + DMA | ✅(部分) | 补全 + 记录残留 | | Unique | at::unique | ❌ AICPU | 记录残留 | | GRU | torch_npu.npu_gru | ❌ 分解为 matmul | 记录残留 | | EngramGateFusion | 无 | ❌ 全新融合算子 | 缺标注属正确,不在残留清单 | ## 改动 - **补全 5 个有可移除 AiCore kernel 的算子**:cases.csv 追加 | baseline_kernels: ... 标注;kernel_map.json 新增 5 个算子 → 10 个 kernel 目录映射;benchmarked_kernels.txt 新增 10 个目录(均已确认存在于 910C kernel 树并实跑 disable_builtin_kernels.sh 验证移除)。 - **README 记录残留风险**:Unique(AICPU)、GRU(分解为受保护的 matmul)、StridedSlice (原生切片走 view+DMA,不经算子 kernel)这三类 kernel-disable **结构性无法覆盖**, 需 host 侧 TorchOpGuard 或 C++/dispatch 层防护。 ## 已知局限 已实证的 TopK 作弊走 **C++ at::topk**,而 TorchOpGuard 是 Python TorchFunctionMode, 无法拦截 C++ PrivateUse1 plugin 内部的 aten 调用——故本 PR 用 kernel-disable 兜底。 Unique/GRU 的根治需在 dispatch 层补防护,留作后续。 ## 测试 - disable_builtin_kernels.sh --dry-run 与实跑均确认 10 个目录正确移出 OPP(含 top_k_d/top_k_v2),restore 可一键还原。 - cases.csv 列完整性校验通过(7 列,无错行);kernel_map.json 为合法 JSON。 🤖 Generated with [Claude Code](https://claude.com/claude-code) See merge request: cann/cann-bench!146 | 28 天前 | |
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(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 个月前 | |
fix(anti_cheat): 补全内置算子禁用清单,修复 TopK 等可绕过评测的漏洞 Co-authored-by: Deng Pan<pan.deng@huawei.com> # message auto-generated for no-merge-commit merge: !146 merge fix/anti-cheat-missing-kernels into master fix(anti_cheat): 补全内置算子禁用清单,修复 TopK 等可绕过评测的漏洞 Created-by: Deng_Pan Commit-by: Deng Pan Merged-by: cann-robot Description: ## 背景 反作弊 kernel-disable 清单( scripts/anti_cheat/)由 tasks/**/cases.csv 的 baseline_kernels 标注推导。TopK 等算子从未标注,导致其内置 AiCore kernel 二进制始终留在 OPP 中——提交可**完全不实现 AscendC kernel**,仅在 host 侧把计算 委托给内置算子(如 C++ at::topk → aclnnTopk)即可通过全部评测刷分(已实证)。 ## 审计结论 对照真实 OPP 树(ascend910_93 / 910C)、aclnn 头文件与 torch_npu wrapper 逐一审计 原报告列出的 8 个缺标注 task,区分「缺标注」与「可被绕过」: | Task | 可达内置路径 | 有可移除 AiCore kernel? | 处理 | |------|--------------|--------------------------|------| | TopK | at::topk/aclnnTopk(已实证) | ✅ | 补全 | | WeightQuantBatchMatmul | torch_npu.npu_weight_quant_batchmatmul | ✅ | 补全 | | NMS | torch_npu.npu_nms_* | ✅ | 补全 | | Dilation2D | 仅 raw GE | ✅ | 补全(防御性) | | StridedSlice | 原生 x[b:e:s] + DMA | ✅(部分) | 补全 + 记录残留 | | Unique | at::unique | ❌ AICPU | 记录残留 | | GRU | torch_npu.npu_gru | ❌ 分解为 matmul | 记录残留 | | EngramGateFusion | 无 | ❌ 全新融合算子 | 缺标注属正确,不在残留清单 | ## 改动 - **补全 5 个有可移除 AiCore kernel 的算子**:cases.csv 追加 | baseline_kernels: ... 标注;kernel_map.json 新增 5 个算子 → 10 个 kernel 目录映射;benchmarked_kernels.txt 新增 10 个目录(均已确认存在于 910C kernel 树并实跑 disable_builtin_kernels.sh 验证移除)。 - **README 记录残留风险**:Unique(AICPU)、GRU(分解为受保护的 matmul)、StridedSlice (原生切片走 view+DMA,不经算子 kernel)这三类 kernel-disable **结构性无法覆盖**, 需 host 侧 TorchOpGuard 或 C++/dispatch 层防护。 ## 已知局限 已实证的 TopK 作弊走 **C++ at::topk**,而 TorchOpGuard 是 Python TorchFunctionMode, 无法拦截 C++ PrivateUse1 plugin 内部的 aten 调用——故本 PR 用 kernel-disable 兜底。 Unique/GRU 的根治需在 dispatch 层补防护,留作后续。 ## 测试 - disable_builtin_kernels.sh --dry-run 与实跑均确认 10 个目录正确移出 OPP(含 top_k_d/top_k_v2),restore 可一键还原。 - cases.csv 列完整性校验通过(7 列,无错行);kernel_map.json 为合法 JSON。 🤖 Generated with [Claude Code](https://claude.com/claude-code) See merge request: cann/cann-bench!146 | 28 天前 | |
fix(level3/top_k): 索引输出改用 tie 顺序无关校验,修复 golden 索引非确定无法验证 (#40) Co-authored-by: gxj1123<gao.xuejian1@huawei.com> # message auto-generated for no-merge-commit merge: !172 merge fix/topk-index-validation into master fix(level3/top_k): 索引输出改用 tie 顺序无关校验,修复 golden 索引非确定无法验证 (#40) Created-by: gxj1123 Commit-by: gxj1123 Merged-by: cann-robot Description: ## 关联 issue Closes #40 ## 问题 TopK 的 golden 用 torch.topk,相等元素的索引顺序非确定;NPU 候选对并列元素可能选不同下标,导致索引输出逐元素比对必然不过。此前把 idx 标 compare: false 直接跳过,等于放弃验证索引,留下“返回正确值却乱填索引也能过”的防作弊缺口。 ## 方案 索引改用 **tie 顺序无关的“指向值”校验**:候选返回的索引必须指向其值输出对应的元素,即 x.gather(dim, idx) == values。配合框架已有的“值输出 vs golden”比对: - 值算错 → 值比对(关系 golden)判失败; - 索引乱填/越界 → gather 自洽校验判失败(堵住防作弊缺口); - 仅并列顺序不同 → 两者都通过(正确接受,正是本 issue 的症结)。 > 不采用 get_input 去并列的思路:TopK 用例(如 int8[-127,127] 含 2048+ 元素、fp16 含 1M 元素)受鸽笼原理必然存在并列,无法消除。 ## 改动(声明式,可复用于 ArgSort/ArgMax 等同类算子) - 新增 src/kernel_eval/eval/index_check.py:validate_index_output / validate_index_gather_outputs; - OutputSpec 增加可选字段 index_gather,cann_loader 从 proto 透传; - evaluator 在精度比对后调用校验,**仅当某输出声明了 index_gather 时才生效,对其他算子零影响**; - tasks/level3/top_k/proto.yaml 的 idx 输出声明 index_gather: {input: x, dim_attr: dim, value_output: y}(保留 compare: false,不再逐元素比对索引)。 ## 测试 新增 tests/ut/test_index_check.py(9 条):异序正确索引 / 并列等价 → 通过;乱填 / 越界 / 形状不符 → 失败;声明路径与无声明零影响;dim=0 方向。本地相关 UT 全绿(既有的 grouped_mat_mul_allto_allv yaml/csv 不一致与本 PR 无关)。 See merge request: cann/cann-bench!172 | 24 天前 | |
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+docs(golden): weight_quant 收敛为 plain(=bench) + oracle/bench 拆分约定文档 Co-authored-by: Xinxian Chen<chenxinxian1@huawei.com> # message auto-generated for no-merge-commit merge: !204 merge fix/weight-quant-plain-is-bench into master fix+docs(golden): weight_quant 收敛为 plain(=bench) + oracle/bench 拆分约定文档 Created-by: vINyLogY Commit-by: Xinxian Chen Merged-by: cann-robot Description: ## 变更描述 / Description 本 PR 现同时包含 weight_quant 代码收敛 + oracle/bench 约定文档。原计划分 code / doc 两个 PR (本 PR 与 #203), 但评审 (gxj1123 与 gitcode-bot) 指出文档 §2.4 描述的正是本 PR 代码产生的 master 状态 —— weight_quant 无 _bench、grouped_matmul 有 _oracle (#193 已合); 若文档先合会与仍带 _bench 的 master 矛盾。故合并进本 PR 并关闭 #203, 文档与 master 永不脱节, 顺带把先前报的 UT ImportError 一并修了。 **代码 (commit 1):** - weight_quant_batch_matmul (plain) 反量化从 fp32 收敛为 bf16/fp16 (输出精度 T=x.dtype) + fp32 累加, 即标准 A16W8 同精度 bench; 删掉冗余的 _bench (原 bf16-dequant, 现与 plain 重复); 修 tests/ut/test_weight_quant_oracle_bench.py 的 import (_bench -> plain)。收敛后 weight_quant 与 grouped_matmul (#193) 统一为 plain(=bench) + _oracle, 约定无例外。 **文档 (commit 2):** - contributing.md §2.4 (新增): oracle/bench 拆分完整约定 (三角色 + 核心规则 + 判据 + 示例)。 - benchmark_spec.md §4.4: golden_truncated (oracle) 与 CPU 同精度参考 (bench) 由哪个函数提供, 及硬 .float() 为何造成 |bench - oracle| = 0 退化 (补 #69 cpu_error==0 特例之争缺的上下文)。 不含 changelog (由维护者在发版时统一维护)。 ## 安全性 / 验证 - new plain == 原 _bench, fp16/bf16 均 bit-identical (CPU 实测) -> evaluator 的 bench 路径删 _bench 后 fallback 到 plain, 输出不变 -> 真 kernel baseline 评测 0 变化 (bench+oracle 都没动)。 - tests/ut/test_weight_quant_oracle_bench.py 本地 CPU **3/3 通过**。 - golden-npu-mock ST 由 CI 覆盖 (bf16-dequant 候选 = 同精度 bench, gate warn-only; 任何 warn-fail 属 normal-region MARE, 非 gate-red)。 ## 改动类型 / Change Type - [x] Bug 修复 / Bug Fix - [x] 代码重构 / Refactoring - [x] 文档更新 / Documentation ## 关联 Issue / Related Issues Related to PR [#192](https://gitcode.com/cann/cann-bench/merge_requests/192) , Issue [#59](https://gitcode.com/cann/cann-bench/issues/59) , [#61](https://gitcode.com/cann/cann-bench/issues/61) , [#69](https://gitcode.com/cann/cann-bench/issues/69) , [#75](https://gitcode.com/cann/cann-bench/issues/75) , [#80](https://gitcode.com/cann/cann-bench/issues/80) . 吸收并关闭 PR [#203](https://gitcode.com/cann/cann-bench/merge_requests/203) (doc-only)。 ## 检查清单 / Checklist - [x] UT 通过 (本地 CPU 3/3) - [x] 基础设施 (#192 loader 钩子 + evaluator 接线) 已在 master - [x] 无硬编码敏感信息 See merge request: cann/cann-bench!204 | 7 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 8 天前 | ||
| 1 个月前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 29 天前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 24 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 7 天前 |