Ascend C算子开发能力认证(进阶)
本课程是AscendC算子开发的进阶教程,通过课程讲解及样例实操,帮助你学习如何使用AscendC进行自定义算开发,并在实际应用中调用自定义算子。
题目要求
实现Ascend C算子Sinh,算子命名为SinhCustom,编写其kernel侧代码、host侧代码,并完成aclnn算子调用测试。
相关算法:sinh(x) = (exp(x) - exp(-x)) / 2.0
要求:
- 完成Sinh算子kernel侧核函数相关代码补齐。
- 完成Sinh算子host侧Tiling结构体成员变量创建,以及Tiling实现函数的补齐。
- 要支持Float16类型输入输出。
算子开发
Kernel侧
需要对核函数中的几部分进行修改
文件路径:SinhCustom\op_kernel\sinh_custom.cpp
分别针对CopyIn、Compute、CopyOut三个部分进行代码补充,完成算子核函数的数据流入、计算、数据回传三部分功能。
Host侧
需要对先完成结构体的定义
文件路径:SinhCustom\op_host\sinh_custom_tiling.h
再补充对Tiling块的初始化部分
文件路径:SinhCustom\op_host\sinh_custom.cpp
测试结果
bash build.sh
cd build_out
./custom_opp_ubuntu_aarch64.run
bash run.sh