CANN算子测试竞赛作品

📅 2026/7/13 9:28:01 👁️ 阅读次数 📝 编程学习
CANN算子测试竞赛作品

CANN ops-math 总决赛算子测试用例说明

【免费下载链接】cann-competitions本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。项目地址: https://gitcode.com/cann/cann-competitions

团队信息

  • 团队名称:重拳出击
  • 所属单位:中国地质大学(武汉)
  • 团队成员:
    • 郭宸羽,算子测试代码设计、实现、测试与优化,文档编辑,统筹安排
    • 郭琛,算子测试代码设计、实现、测试与优化,文档编辑
    • 马瑞晗,算子测试代码设计、实现、测试与优化,文档编辑
  • 联系人:郭宸羽
  • 联系邮箱:287180474@qq.com

环境要求

  • 运行环境:组委会提供的远程 Ascend 910_93 NPU 真机服务器
  • CANN 版本:使用远程服务器预置 CANN 工具链版本
  • ops-math 源码路径:/root/ops-math
  • 操作系统:远程服务器预置 Linux aarch64 环境
  • 目标 SoC:ascend910_93
  • 编译器:远程服务器预置g++/cmake/make
  • 测试框架:基于 CANN ACL / ACLNN 端到端 example 测试流程
  • 覆盖率工具:gcov,通过build.sh --cov生成.gcda/.gcno
  • 其他依赖:远程环境已预置 CANN 运行库、ops-math 源码、真实 NPU 运行环境和报告模板

决赛环境不使用 Docker 镜像,不使用--simulator参数。所有编译、安装、运行和覆盖率采集均在远程 Ascend 910_93 NPU 服务器上完成。

文件说明

  • code/:测试代码和算子 CMake 配置
    • code/Add/CMakeLists.txt:Add 算子 CMake 配置,已补齐ascend910_93支持并映射到arch35
    • code/Add/test_aclnn_add.cpp:Add 算子端到端测试代码,覆盖aclnnAddaclnnAddsaclnnInplaceAddaclnnInplaceAddsaclnnAddV3aclnnInplaceAddV3六类 API
    • code/Cumsum/CMakeLists.txt:Cumsum 算子 CMake 配置,已将ascend910_93对应 tiling 目录统一映射到arch35
    • code/Cumsum/test_aclnn_cumsum.cpp:Cumsum 算子端到端测试代码,覆盖aclnnCumsumaclnnCumsumV2,包含exclusivereverse、正负dim、多 dtype、多 shape 与异常输入场景
  • report/:测试报告
    • report/Add.md:Add 算子测试报告,包含用例设计、覆盖率分析和精度分析
    • report/Cumsum.md:Cumsum 算子测试报告,包含用例设计、覆盖率分析和误差累积精度分析

编译与运行

以下命令在远程 Ascend 910_93 NPU 服务器上执行。假设提交目录位于/root/submission/,其中包含本 README、code/report/

Add 算子

cd /root/ops-math cp /root/submission/code/Add/CMakeLists.txt math/add/CMakeLists.txt cp /root/submission/code/Add/test_aclnn_add.cpp math/add/examples/test_aclnn_add.cpp bash build.sh --pkg --soc=ascend910_93 --ops=add --vendor_name=custom --cov find build -name "add_tiling*.gcno" ./build_out/cann-ops-math-custom_linux-aarch64.run bash build.sh --run_example add eager cust --vendor_name=custom --soc=ascend910_93 --cov

Cumsum 算子

cd /root/ops-math cp /root/submission/code/Cumsum/CMakeLists.txt math/cumsum/CMakeLists.txt cp /root/submission/code/Cumsum/test_aclnn_cumsum.cpp math/cumsum/examples/test_aclnn_cumsum.cpp bash build.sh --pkg --soc=ascend910_93 --ops=cumsum --vendor_name=custom --cov find build -name "cumsum_tiling*.gcno" ./build_out/cann-ops-math-custom_linux-aarch64.run bash build.sh --run_example cumsum eager cust --vendor_name=custom --soc=ascend910_93 --cov

覆盖率查看

运行测试后,可在/root/ops-math/build/下查看覆盖率产物:

cd /root/ops-math find build -name "*.gcda" | grep -E "add|cumsum" gcov -b <gcda文件路径>

gcov输出中的Lines executed: XX.XX% of YY为行覆盖率,Branches executed: XX.XX% of YY为分支覆盖率。决赛评分同时关注 op_api 层和 op_host 层指定文件的综合行覆盖率与综合分支覆盖率。

【免费下载链接】cann-competitions本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。项目地址: https://gitcode.com/cann/cann-competitions

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考