算子评测工程设计【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench文档版本V0.2.0V0.2.0 更新说明2026-04-30安全层集成APIGuard 在 evaluate_from_source() 中调用Config 依赖注入Evaluator 等组件通过构造函数接收 Config进程隔离简化取消用例级隔离保留算子级隔离YAML 校验CaseLoader 增加_validate_case()输出 WARNING算子加载统一化优先从torch.ops.cann_bench加载再尝试cann_bench模块Profiling 升级使用 Level1默认/ Level2删除 Level0目录1. Context2. 方案设计3. 源码目录评测流程4. 核心能力设计5. 实施步骤6. 验证方案7. 附录1. Context1.1 背景根据docs/spec/benchmark_spec.md设计文档构建一套AI生成Ascend C算子代码评测体系用于量化评估AI生成的算子代码质量涵盖编译正确性、功能正确性、性能优化性三个核心维度。1.2 两工程架构设计本评测体系分为两个独立工程通过whl包进行传递┌─────────────────────────────────────────────────────────────────────────────┐ │ AI自动生成工程 │ │ 参考 examples/fast_kernel_launch_example 结构 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ project_root/ │ │ ├── setup.py # 构建配置PyTorch Extension │ │ ├── CMakeLists.txt # CMake构建文件 │ │ ├── build.sh # 编译脚本可选 │ │ ├── cann_bench/ # Python包约定命名 │ │ │ └── __init__.py # 导入_C扩展模块 │ │ ├── csrc/ # 算子源码目录 │ │ │ ├── exp/ # Exp算子 │ │ │ │ └ ascend910b/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── exp.cpp # AI生成的Ascend C代码 │ │ │ └── ... │ │ └ dist/ # 构建产物 │ │ │ ├── cann_bench_xxx.whl # Python包 │ │ │ └── cann_bench_xxx.run # NPU内核包可选 │ │ │ │ 算子接口约定torch.ops.cann_bench.exp(x, ...) 或 cann_bench.exp() │ │ │ └─────────────────────────────────────────────────────────────────────────────┘ │ │ cann_bench_xxx.whl cann_bench_xxx.run ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ 评测工程src/kernel_eval │ │ 本方案设计目标 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ src/kernel_eval/ │ │ ├── cli.py # 命令行入口 │ │ ├── config.py # 配置管理 │ │ ├── data/ # 数据层加载kernel_bench用例 │ │ ├── eval/ # 评测层精度性能安全验证 │ │ ├── report/ # 报告层JSONMarkdownSummary │ │ ├── security/ # 安全层防篡改检查 │ │ └── utils/ # 工具层 │ │ │ │ 评测流程 │ │ 1. 安全初始化Timing API快照 │ │ 2. 扫描源码目录检查build.sh、dist目录 │ │ 3. 检查dist是否有whl包/run包无则执行build.sh编译 │ │ 4. 安装run包NPU内核包 whl包Python包 │ │ 5. 安全验证Timing API完整性检查 │ │ 6. 扫描cann_bench接口打印接口信息 │ │ 7. 加载 kernel_bench 用例数据 │ │ 8. 执行精度验证CPU fp64 Golden 二次验证 │ │ 9. 执行性能评测Profiler kernel-only 升频清cache │ │ 10. 生成评测报告 │ │ │ └─────────────────────────────────────────────────────────────────────────────┘关键约定AI生成工程包名统一为cann_bench算子接口与proto.yaml的schema一致评测工程通过--source-dir参数指定源码目录自动扫描编译安装whl包和run包安全机制防止作弊攻击高精度Golden计算CPU fp64命名说明kernel_eval评测工程代码目录src/kernel_evalkernel_bench测试用例数据目录kernel_bench/level*/op_name/./scripts/run_evaluation.shCLI命令脚本推荐使用2. 方案设计2.1 工程架构src/kernel_eval/ ├── __init__.py # 包入口导出公共API ├── cli.py # 命令行入口 ├── config.py # 配置管理含 profiler_level 等新参数 │ ├── data/ # 数据层 │ ├── __init__.py │ ├── operator_loader.py # 算子定义加载proto.yaml解析 │ ├── case_loader.py # 测试用例加载含 YAML 校验 │ ├── golden_loader.py # Golden函数加载 │ ├── golden_packager.py # Golden 打包器生成 golden.whl │ ├── data_generator.py # 数据生成简化版假设输入已规范化 │ └── package_manager.py # 包管理源码扫描、编译、安装、接口扫描 │ ├── eval/ # 评测层 │ ├── __init__.py │ ├── accuracy_eval.py # 功能精度评测CPU fp64 Golden 二次验证 │ ├── perf_eval.py # 性能评测Level1/Level2 kernel_details.csv │ ├── op_runner.py # 算子执行器返回值检查 │ ├── evaluator.py # 综合评测调度器Config 依赖注入 │ └── input_pool.py # 输入池管理防缓存攻击 │ ├── security/ # 安全层 │ ├── __init__.py │ ├── api_guard.py # Timing API防护快照验证恢复 │ └── type_checker.py # 返回值类型检查 │ ├── report/ # 报告层 │ ├── __init__.py │ ├── report_generator.py # 评测报告生成器含 device 信息 │ ├── summary_generator.py # Summary生成几何平均加速比 │ └── scoring.py # 评分计算 │ ├── utils/ # 工具层 │ ├── __init__.py │ ├── device_manager.py # 设备管理CPU/NPU │ ├── dtype_mapper.py # 数据类型映射 │ ├── param_builder.py # 参数构建合并后的统一方法 │ ├── precision.py # 精度验证工具MERE/MARE │ └── baseline_resolver.py # Baseline解析多硬件支持2.2 核心模块职责2.2.1 数据层data/模块职责operator_loader.py解析proto.yaml提供算子schema、attrs、inputs、outputs信息case_loader.py扫描cases.yaml校验格式并输出WARNING返回CaseInfo数据结构golden_loader.py动态导入golden函数支持PascalCase→snake_case转换golden_packager.py收集golden函数生成whl包注册到torch.ops.cann_benchdata_generator.py根据shape/dtype/value_range生成输入张量假设输入已规范化package_manager.py扫描源码目录、检查/编译whl/run包、安装包、扫描接口支持torch.ops.cann_bench2.2.2 评测层eval/模块职责accuracy_eval.pyCPU fp64 Golden计算、MERE/MARE精度验证、二次验证perf_eval.pyLevel1/Level2 Profiler、kernel_details.csv解析、精确形状匹配过滤warmupop_runner.py算子执行、返回值类型检查、设备迁移input_pool.py预分配clone输入池防止data_ptr缓存攻击evaluator.py综合调度Config依赖注入算子级进程隔离安全层集成2.2.3 安全层security/模块职责api_guard.pyTiming API快照验证恢复防止monkey-patch攻击type_checker.py严格类型检查type() is torch.Tensor拒绝FakeTensor2.2.4 报告层report/模块职责report_generator.pyJSON Markdown双格式报告生成获取实际 device 信息summary_generator.pySummary生成几何平均加速比计算scoring.py功能得分性能得分计算3. 源码目录评测流程3.1 整体流程┌─────────────────────────────────────────────────────────────────────────────┐ │ 源码目录评测流程 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ 输入: --source-dir /path/to/ai_generated_ops │ │ │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │ │ 扫描源码 │────▶│ 检查dist │────▶│ 编译whl │────▶│ 安装包 │ │ │ │ 目录结构 │ │ whlrun包 │ │ (build.sh) │ │ (whlrun) │ │ │ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │ │ │ │ │ │ │ │ │ 有包则跳过编译 无dist则编译 │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │ │ 扫描模块 │────▶│ 打印接口 │────▶│ 匹配用例 │────▶│ 执行评测 │ │ │ │ 接口列表 │ │ 信息 │ │ (level/op) │ │ │ │ │ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │ │ │ │ 输出: 评测报告 (JSON Markdown Summary) │ │ │ └─────────────────────────────────────────────────────────────────────────────┘3.2 详细步骤Step 1: 扫描源码目录结构检查源码目录是否存在以下结构source_dir/ ├── build.sh # 编译脚本可选 ├── dist/ # 编译产物目录可选 │ ├── cann_bench_xxx.whl # Python包 │ └── cann_bench_xxx.run # NPU内核包可选 ├── cann_bench/ # Python包目录 │ └── __init__.py ├── csrc/ # C源码 │ └── ops/ │ └── exp/ │ └── ascend910b/ │ └── exp.cpp ├── setup.py # 构建配置 └── CMakeLists.txtStep 2: 检查dist目录扫描dist/目录查找cann_bench_xxx.whl- Python包必须cann_bench_xxx.run- NPU内核包可选如果存在这些包跳过编译步骤否则检查是否有build.sh并执行编译。Step 3: 编译whl/run包如果需要执行build.sh脚本cd source_dir bash build.sh迭代隔离编译默认开启如果编译失败系统会自动识别并隔离编译不过的算子到_quarantine/目录然后对剩余的算子重新执行编译和评测。这可以确保部分算子编译失败不会导致整个评测任务失败。编译后检查dist/目录是否生成whl包和run包。Step 4: 安装包安装顺序先安装run包再安装whl包。安装run包NPU内核包chmod x dist/cann_bench_xxx.run ./dist/cann_bench_xxx.run --install安装whl包Python包# 先卸载旧版本再安装新版本不使用force-reinstall避免重装依赖 pip uninstall cann_bench -y pip install dist/cann_bench_xxx.whlStep 5: 扫描模块接口导入cann_bench模块扫描提供的算子接口import cann_bench interfaces [] for name in dir(cann_bench): if not name.startswith(_): attr getattr(cann_bench, name) if callable(attr): interfaces.append(name) # 同时扫描 torch.ops.cann_bench import torch if hasattr(torch.ops, cann_bench): for name in dir(torch.ops.cann_bench): if not name.startswith(_): interfaces.append(name)Step 6: 打印接口信息显示扫描到的接口 扫描到的 cann_bench 接口: 1. exp(x, base-1.0, scale1.0, shift0.0) - Tensor 共 1 个算子接口 Step 7: 匹配用例根据接口名称匹配kernel_bench中的算子用例查找 proto.yaml 中对应的算子定义加载对应的 cases.yaml 用例Step 8: 执行评测子进程隔离默认开启每个算子在独立的子进程中执行评测避免一个算子的挂死或崩溃影响其他算子的评测。每个子进程都有独立的超时控制默认240秒超时后会先发送SIGTERM信号10秒宽限期后发送SIGKILL信号强制终止。对每个匹配到的算子执行评测安全验证Timing API完整性加载用例数据执行Golden函数CPU fp64执行AI算子返回值类型检查精度验证MERE/MARE二次验证新鲜输入重跑性能评测Profiler kernel-only计算评分3.3 命令行参数通用参数参数说明默认值-a, --action action操作类型: eval(评测), list(列表), info(详情), config(配置)eval-v, --verbose详细输出False评测(eval)相关参数参数说明默认值--source-dir dirAI生成的算子源码目录自动扫描编译安装无--device type设备类型 (cpu/npu)npu--device-id idNPU 设备 ID0--warmup n预热次数3--repeat n采集次数5-l, --level level算子难度级别 (1/2/3/4)无-o, --operator name算子名称 (如 Exp, Softmax)无-c, --case-id id用例编号无--reports-dir dir报告输出目录reports--no-subprocess-isolation关闭子进程隔离默认开启False--op-timeout-sec子进程隔离下 per-op 超时240秒--no-iterative-compile关闭迭代隔离编译False--no-perf关闭性能采集False--profiler-level levelProfiler级别 (Level1/Level2)Level1当不指定--source-dir时默认跳过编译安装直接使用已安装的cann_bench模块。列表(list)相关参数参数说明默认值-l, --level level按级别筛选 (1/2/3/4)无-o, --operator name按算子筛选无详情(info)相关参数参数说明默认值-o, --operator name算子名称必填无-l, --level level难度级别无配置(config)相关参数参数说明默认值无显示当前配置-3.4 使用示例# 从源码目录评测自动编译安装 ./scripts/run_evaluation.sh --action eval --source-dir /path/to/ai_ops # 使用子进程隔离评测默认开启 ./scripts/run_evaluation.sh --action eval --source-dir /path/to/ai_ops # 关闭子进程隔离以提高速度 ./scripts/run_evaluation.sh --action eval --source-dir /path/to/ai_ops --no-subprocess-isolation # 设置算子超时时间 ./scripts/run_evaluation.sh --action eval --source-dir /path/to/ai_ops --op-timeout-sec 300 # 关闭迭代隔离编译严格模式 ./scripts/run_evaluation.sh --action eval --source-dir /path/to/ai_ops --no-iterative-compile # 仅执行指定算子的评测 ./scripts/run_evaluation.sh --action eval --operator Exp --level 1 # 评测单个用例 ./scripts/run_evaluation.sh --action eval --operator Exp --level 1 --case-id 1 # 使用 Level2 Profiler ./scripts/run_evaluation.sh --action eval --operator Exp --profiler-level Level2 # CPU 模式评测 ./scripts/run_evaluation.sh --action eval --operator Exp --device cpu # 设置 warmup/repeat 参数 ./scripts/run_evaluation.sh --action eval --operator Exp --warmup 5 --repeat 10 # 列出所有level 1的算子 ./scripts/run_evaluation.sh --action list --level 1 # 列出指定算子的所有用例 ./scripts/run_evaluation.sh --action list --operator Exp # 查看算子详情 ./scripts/run_evaluation.sh --action info --operator Exp # 显示当前配置 ./scripts/run_evaluation.sh --action config3.5 异常处理场景处理方式源码目录不存在报错退出无build.sh且无dist报错退出无法编译build.sh执行失败报错退出run包安装失败报错退出NPU模式必须whl包安装失败报错退出cann_bench导入失败报错退出未匹配到算子警告并退出Timing API被篡改恢复原始API后报错退出4. 核心能力设计4.1 安全防护设计4.1.1 Timing API防护原理在submission代码运行前快照关键Timing API的身份安装wheel后验证是否被篡改。集成位置APIGuard.snapshot()在PackageManager.prepare_from_source()内部调用安装前APIGuard.verify()在Evaluator.evaluate_from_source()调用 prepare_from_source 后验证安装后关键API列表torch.npu.Event.elapsed_timetorch.npu.Event.recordtorch.npu.synchronizetorch_npu.profiler.profiletorch_npu.profiler.schedule防护流程# package_manager.py - prepare_from_source() 内部 from ..security.api_guard import APIGuard guard APIGuard() guard.snapshot() # 1. 安装wheel前快照 install_wheel(path) # 2. 安装submission # evaluator.py - evaluate_from_source() 外部 matched_operators, package_info self.package_manager.prepare_from_source(...) guard APIGuard() try: guard.verify() # 3. 验证完整性 except RuntimeError as e: # 为所有算子合成 FAIL 记录 results self._synthesize_security_failure(...) # ... 执行评测 ...4.1.2 返回值类型检查原理使用type(output) is torch.Tensor严格检查拒绝FakeTensor等子类伪装。def check_output_type(output): if type(output) is not torch.Tensor: raise RuntimeError(算子必须返回torch.Tensor拒绝FakeTensor/懒求值包装器)4.1.3 二次验证机制原理用新鲜输入重跑一次防止缓存作弊。如果算子缓存第一次结果第二次用不同输入会产生错误结果。# 第一轮验证 result1 evaluate(golden_fn, custom_fn, inputs) # 第二轮验证新鲜输入微扰 fresh_inputs generate_inputs(case) perturb_inputs(fresh_inputs) # 添加0.01微扰 result2 evaluate(golden_fn, custom_fn, fresh_inputs)4.1.4 输入池防缓存原理预分配一组clone输入轮换使用每次调用data_ptr不同防止按地址缓存输出。pool InputPool(inputs, pool_sizewarmuprepeat) for _ in range(warmup repeat): inputs pool.get_next() # 每次data_ptr不同 output fn(*inputs)4.2 精度验证设计4.2.1 CPU fp64 Golden计算原理Golden函数在CPU fp64精度下计算比NPU原生dtype精度更高避免溢出/下溢污染参考值。精度对比时双方都cast回fp32计算MERE/MARE。def compute_golden_fp64(golden_fn, inputs, param_builder, case): fp64_inputs [t.cpu().double() for t in inputs] params param_builder.build(golden_fn, case, fp64_inputs) with torch.no_grad(): return golden_fn(**params)4.2.2 精度标准实现精度标准MERE/MARE误差指标、精度阈值表、小值域通过标准已在 benchmark_spec.md 中定义。本工程实现精度验证流程def verify_accuracy(actual, golden, dtype): # 计算MERE/MARE mere compute_mere(actual, golden) mare compute_mare(actual, golden) # 获取精度阈值 threshold get_precision_threshold(dtype) # 判断是否通过 if mere threshold and mare 10 * threshold: return True # 小值域检查当golden接近0时 return check_small_value_region(actual, golden, dtype)4.3 性能评测设计4.3.1 Profiler Level1/Level2 测量原理使用torch_npu.profiler采集NPU端性能数据默认使用 Level1可选 Level2。import torch_npu profiler_level torch_npu.profiler.ProfilerLevel.Level1 # 默认 if config.profiler_level Level2: profiler_level torch_npu.profiler.ProfilerLevel.Level2 experimental_config torch_npu.profiler._ExperimentalConfig( export_type[torch_npu.profiler.ExportType.Text], profiler_levelprofiler_level, aic_metricstorch_npu.profiler.AiCMetrics.AicPipeUtilization, ) with torch_npu.profiler.profile( activities[ torch_npu.profiler.ProfilerActivity.CPU, torch_npu.profiler.ProfilerActivity.NPU, ], scheduletorch_npu.profiler.schedule( wait0, warmupwarmup, activerepeat, repeat1 ), on_trace_readytorch_npu.profiler.tensorboard_trace_handler(prof_dir), experimental_configexperimental_config, ) as prof: for _ in range(warmup repeat): boost_freq_and_clear_cache() # 升频清cache fn() prof.step()CSV解析使用 kernel_details.csv47列提取 NPU kernel 执行时间def _parse_kernel_details_csv(csv_file): import pandas as pd df pd.read_csv(csv_file) # 精确形状匹配过滤 warmup WARMUP_MATMUL_SHAPE 10240,10240;10240,10240 WARMUP_REDUCE_SHAPE 96,1024,1024;3 durations [] for row in df.itertuples(): op_type getattr(row, OP Type, ) input_shapes getattr(row, Input Shapes, ) if _is_warmup_kernel(op_type, input_shapes): continue durations.append(getattr(row, Task Duration (us), 0)) # 中位数统计 return median(durations)4.3.2 NPU升频与L2清空原理每次profiler step前执行MatMulReduceMax保证NPU频率稳定并清空L2 cache确保测量一致性。Warmup tensors预分配并固定到目标设备避免设备不匹配。def prepare_warmup_tensors(device): 预分配升频清cache的tensors mm1 torch.rand((10240, 10240), dtypetorch.float16).to(device) mm2 torch.rand((10240, 10240), dtypetorch.float16).to(device) reduce_input torch.rand((96, 1024, 1024), dtypetorch.float16).to(device) return (mm1, mm2, reduce_input) def boost_freq_and_clear_cache(warmup_tensors): NPU升频 清L2 cache mm1, mm2, reduce_input warmup_tensors torch.matmul(mm1, mm2) torch.npu.synchronize(mm1.device) # 同步目标设备 torch.max(reduce_input) torch.npu.synchronize(mm1.device)4.3.3 InputPool防缓存攻击原理预分配一组clone输入轮换使用每次调用data_ptr不同防止按地址缓存输出。class InputPool: 预分配clone输入池防止data_ptr缓存攻击 def __init__(self, inputs, pool_size, max_memory_mb512): self.pool [] # 根据内存限制计算实际池大小 actual_size min(pool_size, max_pool_size, max_sets_by_memory) # 预分配clone池 for _ in range(actual_size): cloned [item.clone() if isinstance(item, torch.Tensor) else item for item in inputs] self.pool.append(cloned) def get_next(self): 获取下一个输入集每次data_ptr不同 inputs self.pool[self.idx % len(self.pool)] self.idx 1 return inputs4.3.4 多硬件Baseline支持cases.yaml格式cases: - case_id: 1 baseline_perf_us: 40.2 # 单硬件baseline默认910b2 - case_id: 2 baseline_perf_us: # 多硬件baseline字典 910b2: 40.2 910b1: 45.1 910a: 50.04.4 报告生成设计4.4.1 几何平均加速比使用几何平均计算多个case的加速比def geometric_mean_speedup(speedups): if not speedups: return 0.0 return math.exp(sum(math.log(max(s, 1e-9)) for s in speedups) / len(speedups))4.4.2 报告输出格式JSON格式{ hardware: 910b2, total_operators: 1, total_cases: 20, total_passed: 18, overall_geometric_mean_speedup: 1.25, operators: [...] }Markdown格式包含表格摘要和详细用例结果。Summary格式# 算子评测报告 **评测代号**: eval_20260422_xxx **硬件**: 910b2 ## 总体结果 - **通过率**: 90.00% - **几何平均加速比**: 1.25x5. 实施步骤Phase 1目录重命名与结构调整将src/kernel_bench/重命名为src/kernel_eval/创建security/目录创建eval/input_pool.py创建utils/baseline_resolver.py创建report/summary_generator.py更新所有导入路径Phase 2安全层实现实现security/api_guard.pyTiming API防护实现security/type_checker.py返回值类型检查在evaluator.py中集成安全检查流程测试安全防护有效性Phase 3精度验证增强修改accuracy_eval.py支持CPU fp64 Golden计算实现二次验证机制实现input_pool.py输入池管理验证精度测试结果正确性Phase 4性能评测增强实现Profiler kernel-only测量逻辑实现NPU升频清L2 cache逻辑实现Trace解析逻辑实现baseline_resolver.py多硬件支持验证性能测量准确性Phase 5报告层完善实现几何平均加速比计算实现summary生成器完善JSON和Markdown输出格式验证报告输出完整性Phase 6CLI与集成更新CLI命令适配新模块路径实现完整评测流程串联编写使用文档集成测试6. 验证方案6.1 安全验证测试项验证方法API篡改检测模拟monkey-patch验证检测并恢复返回值检查返回FakeTensor验证拒绝二次验证缓存作弊实现验证二次失败输入池轮换验证每次调用data_ptr不同6.2 精度验证测试项验证方法CPU fp64 Golden对比fp32和fp64结果差异MERE/MARE计算手动计算验证NaN/Inf处理特殊值用例验证整数精确匹配整型用例验证6.3 性能验证测试项验证方法Profiler kernel-only对比wall-clock和profiler时间升频清cache效果对比有无预热的时间稳定性Trace解析检查解析结果与trace内容一致多硬件baseline验证不同硬件baseline解析6.4 集成验证运行完整评测流程验证JSON/Markdown/Summary报告验证几何平均加速比计算验证安全机制在整个流程中有效7. 附录7.1 参考文档docs/spec/benchmark_spec.md算子代码生成评测基准规范docs/design/evaluator_design.md评测工程设计文档本文档docs/guide/quick_start.md快速入门指南docs/changelog.md版本变更记录../opbase/docs/zh/ops_precision_standard/experimental_standard.md精度标准7.2 包命名约定包类型命名格式说明whl包cann_bench_xxx.whlPython包包含算子接口run包cann_bench_xxx.runNPU内核二进制包7.3 评分公式编译通过得分 compile_pass × Wc (Wc2compile_pass ∈ {0, 1}整份提交编译是否通过与用例数无关) 功能得分 case_pass × Wf (Wf3case_pass ∈ {0, 1}单个用例是否通过精度校验) 性能得分 SpeedUp × Wp (Wp5仅对功能通过的用例计入SpeedUp 按该用例实测) 单算子综合评分 编译通过得分 Σ_{功能通过的用例 i} (Wf SpeedUp_i × Wp) Level-N 得分 Σ 该 level 内算子综合评分 benchmark 总分 Σ 所有算子综合评分 ( Level1 Level2 Level3 Level4)7.4 版本演进详细版本变更记录请参阅 docs/changelog.md。【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考