在/home/ma-user/work/Sinh/AddCustomSample/KernelLaunch/AddKernelInvocation下测试Add算子,编译整行且测试通过, 参考AddKernelInvocation编写SinhKernelInvocation, 主要修改如下: 1. 函数名称由add改为sinh 2. gen_data只需要输入x,删除y 3. sinh_custom.cpp中只保留输入x,删除y 4. compute函数修改计算逻辑如下:...
参考tensorflow的Sinh算子,实现Ascend C算子Sinh,算子命名为SinhCustom,并完成aclnn算子调用相关算法: sinh(x) = (exp(x) - exp(-x)) / 2.0 要求: 1、完成host侧和kernel侧代码实现。 2、实现sinh功能,支持float16类型输入,使用内核调试符方式调用算子测试通过。 3、使用单算子API调用方式调用SinhCustom算子测试...
Muls(zLocal, yLocal, scalar, this->tileLength); 这样就实现了对xLocal的sinh计算。 留下一个思考题,大家可以思考如何将多余的yLocal去掉,这样就只有一个输入和一个输出了。
该类定义了一个自定义的sinh算子,明确了输入和输出的张量格式和数据类型(DT_FLOAT16),并且指定该算子的推理形状函数是InferShape,Tiling函数是TilingFunc。 最后,通过OP_ADD(SinhCustom)将该算子注册到Ascend编译器中。 **/namespace ops{classSinhCustom:publicOpDef{public:explicitSinhCustom(constchar*name):OpDef...
Sinh算子host侧和kernel侧代码实现分享 一、活动认证考核题目介绍 参考tensorflow的Sinh算子,实现Ascend C的Sinh算子,算子命名为SinhCustom,并完成aclnn算子调用。相关算法:sinh(x) = (exp(x) - exp(-x)) / 2.0。 本文章主要分享Ascend C下Sinh算子host侧和kernel侧代码实现分享,期望可以帮助各位初学者找到解题思...
【摘要】 1.微认证题目:参考tensorflow的Sinh算子,实现Ascend C算子Sinh,算子命名为SinhCustom,并完成aclnn算子调用相关算法: sinh(x) = (exp(x) - exp(-x)) / 2.0要求:1、完成host侧和kernel侧代码实现。2、实现sinh功能,支持float16类型输入,使用内核调试符方式调用算子测试通过。3、使用单算子API调用方式调...
参考tensorflow的Sinh算子,实现Ascend C算子Sinh,算子命名为SinhCustom,并完成aclnn算子调用相关算法: sinh(x) = (exp(x) - exp(-x)) / 2.0 要求: 1、完成host侧和kernel侧代码实现。 2、实现sinh功能,支持float16类型输入,使用内核调试符方式调用算子测试通过。 3、使用单算子API调用方式调用SinhCustom算子测试...
修改其中compute()函数,把“Add(xxxxxxxxxxxxxxxxx)”那一行注释掉,改成sinh的计算逻辑,用xLocal当输入,zLocal当输出,改完后保存。 这样就完成了sinh的计算逻辑 使用下面的语句再次进行测试: bash run.sh-r cpu -v Ascend310P1 输出“test pass”即为修改成功,此时,已经成功完成了sinh的计算逻辑。
执行bash run.sh报错plog日志如下。想用-r cpu调试,运行时报-r不识别: cat plog-320187_20240814201350782.log | grep ERROR [ERROR] RUNTIME(320187,execute_sinh_op):2024-08-14-20:13:51.917.188 [engine.cc:1646]320187 Re...
验证硬件平台选择“Atlas 训练系列产品”,AiCore中的向量计算单元为32个;自定义算子为sinh;数据类型为float16;为了方便计算,ub能容纳的输入向量数定义为:128字节,即4个最小分配单元,每个最小分配单元16个float16,每次可容纳64个float16。由于double buffer开启是在kernel侧,无法从打屏,下述情况均在double buffer开启...