文件最后提交记录最后更新时间
提交算子挑战赛目录 Co-authored-by: fullt<full.fu@huawei.com> # message auto-generated for no-merge-commit merge: !193 merge championship-final into master 提交算子挑战赛目录 Created-by: fullt Commit-by: fullt Merged-by: cann-robot Description: ## 变更描述 / Description 添加算子挑战赛目录,用于存放算子挑战赛各队伍的赛果 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other See merge request: cann/cann-competitions!19326 天前
[Erfinv] Ruicech 的队伍提交 Co-authored-by: Ruicech<1398748724@qq.com> # message auto-generated for no-merge-commit merge: !295 merge master into master [Erfinv] Ruicech 的队伍提交 Created-by: Ruicech Commit-by: Ruicech Merged-by: cann-robot Description: ## 团队信息 - 团队名称:Ruicech 的队伍 - 所属单位:南京理工大学 - 团队成员: - Ruicech,算子实现、提交整理与 PR 维护 - 小志热爱学习,精度测试与代码验证 - JUNSI2003,性能测试与文档整理 ## 算子实现介绍 1. 算子整体实现思路 本次提交实现 Erfinv 算子,采用 Ascend C 自定义算子方式实现。Host 侧负责输入输出 shape 推导、数据类型推导、Tiling 参数计算和多核调度配置;Kernel 侧根据 TilingData 将输入张量按 AI Core 和 UB tile 进行分片处理,完成逐元素计算并写回输出张量。 2. 精度优化策略 当前实现面向 FP32 输入输出。Host 侧通过 TilingData 记录输入长度、单核处理长度和 UB 分块长度,Kernel 侧根据这些参数处理尾块数据,避免越界访问,保证输出 shape 与输入一致。 3. 性能优化策略 Host 侧根据 AIV 核数和 UB 空间动态计算 blockNum、blockLength 和 ubLength。Kernel 侧采用多核并行和 UB 分块处理,通过本地缓冲区进行数据搬运和计算,减少全局内存访问开销,提高大规模输入下的执行效率。 See merge request: cann/cann-ops-competitions!2957 天前
提交算子挑战赛目录 Co-authored-by: fullt<full.fu@huawei.com> # message auto-generated for no-merge-commit merge: !193 merge championship-final into master 提交算子挑战赛目录 Created-by: fullt Commit-by: fullt Merged-by: cann-robot Description: ## 变更描述 / Description 添加算子挑战赛目录,用于存放算子挑战赛各队伍的赛果 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other See merge request: cann/cann-competitions!19326 天前
README.md

CANN算子挑战赛

🏆 赛事介绍

CANN算子挑战赛是昇腾面向全国开发者的高性能算子开发竞赛。参赛选手基于昇腾 AI 平台,使用 Ascend C 编程语言开发高性能自定义算子,在指定赛题功能精度满足要求的情况下上比拼算子性能。

🎯 赛题列表

序号 算子名称 赛题说明 难度
1 Erfinv 逆误差函数(Inverse Error Function),给定输入张量逐元素计算 y=erfinv(x)y = \text{erfinv}(x) ⭐⭐⭐
2 GeluV2 高斯误差线性单元变体(GELU Activation V2),支持 FP32/FP16/BF16 多精度计算 ⭐⭐
3 IsNan 逐元素判断输入是否为 NaN,返回布尔张量
4 TensorEqual 判断两个张量是否逐元素相等,支持多种数据类型比较 ⭐⭐

📁 提交规范

目录结构

submissions/ 目录下按赛题和团队名称建立目录结构,每个赛题可包含多个团队的提交:

submissions/
└── {OperatorName}/
    ├── {TeamName}/
    │   ├── build.sh                       # 编译脚本
    │   ├── CMakeLists.txt                 # 顶层CMake
    │   ├── CMakePresets.json              # CMake预设配置
    │   ├── op_host/                       # Host侧代码
    │   │   ├── CMakeLists.txt
    │   │   └── {op_name}.cpp              # Tiling & 算子注册
    │   ├── op_kernel/                     # Kernel侧代码
    │   │   ├── CMakeLists.txt
    │   │   ├── {op_name}.cpp              # Kernel入口
    │   │   └── {op_name}_tiling.h         # TilingData结构
    │   └── framework/                     # 框架适配代码(可选)
    │       └── tf_plugin/                 # TensorFlow插件(可选)
    │           ├── CMakeLists.txt
    │           └── tensorflow_{op_name}_plugin.cc
    └── {AnotherTeam}/
        └── ...

命名规则

  • {OperatorName}:赛题算子名称,与赛题列表保持一致
  • {TeamName}:团队名称,建议使用英文短横线分隔格式(如 team-alphafold

提交要求

  1. 确保代码可编译、可运行,包含完整的 CMakeLists.txt
  2. Host 端代码需正确处理 Tiling 分片、InferShape、多核调度
  3. Kernel 端代码需通过 Ascend C 编译器检查
  4. 提供必要的注释说明核心算法和优化策略
  5. 鼓励提交性能优化对比数据