CANN FastGelu算子实现

CANN FastGelu算子实现

FastGelu 算子实现任务提交文档

【免费下载链接】cann-launch-camp用户可借助此项目规范管理 CANN 开源社区启航营高校活动的课程作业、课设、毕设等实践作品,其核心功能是统一标准化目录层级与提交规范,保障作品提交规整、可追溯、可评审。项目地址: https://gitcode.com/cann/cann-launch-camp

1. 基础信息

  • 姓名:王春蕾
  • GitCode账号:chunlei-2026
  • 任务名称:FastGelu 昇腾算子开发
  • 完成日期:2026-07-08

2. 工程目录结构

├── README.md # 本说明文档 └── code # 全部源码目录 ├── CMakeLists.txt # 顶层编译配置 ├── op_host # 主机侧代码 │ ├── CMakeLists.txt │ └── fast_gelu.cpp └── op_kernel # 设备侧内核代码

3. 功能说明

本项目实现昇腾AI芯片 FastGelu 激活算子,分为两部分:

  1. op_host:CPU侧算子注册、参数校验、输入输出维度处理逻辑
  2. op_kernel:NPU设备侧核心计算内核,实现FastGelu数学运算加速

4. 编译环境依赖

  • 操作系统:Windows

5. 编译步骤

  1. 进入code目录
cd code mkdir build && cd build cmake .. make -j 2.编译完成后生成算子动态库文件。 ##6. 运行验证方法 加载编译生成的算子库; 构造不同 shape 的浮点输入张量; 分别运行本算子与标准 Gelu 实现,对比输出误差; 误差阈值控制在 1e-5 以内,验证通过。 ## 7. 单元测试结果 本次共设置5组不同输入张量尺寸的测试用例,全部通过验证,测试汇总如下: 1. 精度指标:全部测试点输出错误占比 0.00%,算子计算结果与标准实现完全一致,无数值偏差; 2. 性能指标:算子单次执行耗时区间 2.16μs ~ 8.04μs,不同输入shape下运行稳定,无性能抖动; 3. 测试概况:通过 5/5 测试用例,算子功能、精度、性能均满足任务要求。 各测试点详细数据: | 测试点 | 单次执行用时 | 最优用时 | 输出错误占比 | 结果 | |--------|--------------|----------|--------------|------| | 1 | 2.76μs | 2.74μs | 0.00% | Pass | | 2 | 2.28μs | 2.16μs | 0.00% | Pass | | 3 | 6.48μs | 5.90μs | 0.00% | Pass | | 4 | 5.86μs | 5.86μs | 0.00% | Pass | | 5 | 8.04μs | 6.88μs | 0.00% | Pass |

【免费下载链接】cann-launch-camp用户可借助此项目规范管理 CANN 开源社区启航营高校活动的课程作业、课设、毕设等实践作品,其核心功能是统一标准化目录层级与提交规范,保障作品提交规整、可追溯、可评审。项目地址: https://gitcode.com/cann/cann-launch-camp

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