首页 > 其他分享 >华为昇腾训练营笔记-Ascend C算子开发

华为昇腾训练营笔记-Ascend C算子开发

时间:2024-07-11 12:58:02浏览次数:10  
标签:__ 函数 训练营 Ascend cd samples 算子 np AddCustomSample

 

一、核函数开发

核函数(Kernel Function)是Ascend C算子设备侧实现的入口。在核函数中,需要为在一个核上执行的代码规定要进行的数据访问和计算操作,当核函数被调用时,多个核都执行相同的核函数代码,具有相同的参数,并行执行。

 

核函数的定义为:

extern "C" __global__ __aicore__ void add_custom(__gm__ uint8_t* x, __gm__ uint8_t* y, __gm__ uint8_t* z);

 

 Kernel直调工程体验

cd ~/samples/operator/AddCustomSample/KernelLaunch/

cp -r AddKernelInvocationNeo/ test

cd test/

bash run.sh -r cpu -v Ascend310P1

观察结果

 

用MobaXTerm左侧的文件栏打开~/samples/operator/AddCustomSample/KernelLaunch/test/scripts/gen_data.py

修改其中代码:

input_x = np.random.uniform(1,10,[8,2048]).astype(np.float16)

golden = np.sinh(input_x).astype(np.float16)

保存

 

再打开add_custom.cpp

修改其中compute()函数,把“Add(xxxxxxxxxxxxxxxxx)”那一行注释掉,改成sinh的计算逻辑,用xLocal当输入,zLocal当输出,改完后保存。

 

测试方式:

bash run.sh -r cpu -v Ascend310P1

 

输出“test pass”即为修改成功。

 

cd ~ /samples/operator/AddCustomSample/FrameworkLaunch/AddCustom

bash build.sh

 

cd build_out

./custom_opp_ubuntu_aarch64.run

 

cd ~/samples/samples/operator/AddCustomSample/FrameworkLaunch/AclNNInvocation

bash run.sh

 

标签:__,函数,训练营,Ascend,cd,samples,算子,np,AddCustomSample
From: https://www.cnblogs.com/Euyq123/p/18295929

相关文章