2024鲲鹏&昇腾创新大赛集训营——利用Orange Pi 进行Ascend C算子开发学习笔记
收藏回复举报
2024鲲鹏&昇腾创新大赛集训营——利用Orange Pi 进行Ascend C算子开发学习笔记
新人帖
发表于2024-07-02 15:53:55
0 查看

本次实验主要是利用Orange Pi进行Ascend C 算子的开发,Ascend C 算子是CANN针对算子开发场景推出的编程语言。其中针对软硬件协同优化很有意思,可以直接通过底层的算子优化从而提高模型的推理速度。

一、开发板的连接

Notice:

1、电源线的接口位置

2、以太网的配置

二、Kernel直调工程实验

只是用于测试算子功能是否正确

算子的kernel测是实现算子的基本计算逻辑,其中主要分为三个步骤:搬入、计算、搬出(将大象放入冰箱的步骤)。

三、微认证考试

认证考试使用环境为Orange Pi

考试任务为:

实现Ascend C算子Sinh,算子命名为SinhCustom,编写其kernel侧代码、host侧代码,并完成aclnn算子调用测试。
相关算法:sinh(x) = (exp(x) - exp(-x)) / 2.0

要求:

1、完成Sinh算子kernel侧核函数相关代码补齐。

2、完成Sinh算子host侧Tiling结构体成员变量创建,以及Tiling实现函数的补齐。

3、要支持Float16类型输入输出。

主要实验步骤:

1、kernel测代码改写

注意其中算子API的使用,参照API手册

主要用到的算子如下:

    Exp(xLocal, xLocal, TILE_LENGTH); 

    Reciprocal(yLocal, xLocal, TILE_LENGTH); 

    Sub(yLocal, xLocal, yLocal, TILE_LENGTH); 

    half temp = 0.5; 

    Muls(yLocal, yLocal, temp, TILE_LENGTH);

2、host侧代码改写

具体实现参照Add算子,基本上差别不大,只需修改部分参数名
%E6%89%B9%E6%B3%A8%202024-07-02%20155157.png

我要发帖子