可以关注我的B站号工具人呵呵的个人空间,后期会考虑出视频教程,务必催更,以防我变身鸽王。
第1期 昇腾Altas 200 DK上手
第2期 下载昇腾案例并运行
第3期 官方模型适配工具使用
第4期 炼丹炉的搭建(基于Ubuntu23.04 Desktop)
第5期 炼丹炉的搭建(基于wsl2_Ubuntu22.04)
第6期 Ubuntu远程桌面配置
第7期 下载yolo源码及样例运行验证
第8期 在线Gpu环境训练(基于启智ai协作平台)
第9期 转化为昇腾支持的om离线模型
第10期 jupyter lab的使用
第11期 yolov5在昇腾上推理
第12期 yolov5在昇腾上应用
第13期_orangepi aipro开箱测评
第14期 orangepi_aipro小修补含yolov7多线程案例
第15期 orangepi_aipro欢迎界面、ATC bug修复、镜像导出备份
第16期 ffmpeg_ascend编译安装及性能测试
第17期 Ascend C算子开发
未完待续…
我在24年3月和我的小伙伴一起参加了第一届昇腾AI原生创新精英挑战赛,在这里做一下总结。这里以orangepi Ai Pro为例。
注:我们的代码仓最早将于24.05.10开放,大家可以直接看op_kernel内的compute,kernelLaunch内可能有错,实在来不及改了
代码仓地址:https://gitee.com/toolsmanhehe/acl_ops
我们基于正常能够使用的镜像作为基础镜像。这里我推荐使用minimal镜像。这样就不用先卸载cann了,甚至你可以直接删除目录,反正咱后面直接远程连接敲代码了,也用不上。
主要是vscode等ide连接时都需要输入密码,比较麻烦。
这里可以参考我之前的文章来实现免密登录,在
因为我们三个人在三个城市,因此为了方便讨论和开发,我们建立了代码仓库,但是每次推送和拉取都需要账号密码(在完赛前是不可能公开的),这不符合本懒人的性格啊。
这里我们需要在开发环境上执行
在不修改算子名称,输入输出的时候,我们只需要关注图中框出来的文件即可。
打开目录
1、KernelLaunch
2、framework
3、AclNN
打开目录
大部分与add算子相似,因此我们这里只看op_host和op_kernel部分。
在头文件中你会发现多了许多东西,所有的东西我们都需要传入kernel侧。具体实现过程就去阅读代码吧,就是这个案例也是赶出来的,可能里面的切分策略不是最好的,但是确实是能用的。
以下为op_kernel内的部分代码
我们可以使用参考add算子搭建以下目录结构。以下文件夹内的文件没有特别说明就直接从add算子工程内复制。
1、myCustom.cpp
我们直接cv add算子的,对输入做下修改,然后修改compute就行了。
2、main.cpp
3、scripts/gen_data.py
这里根据你要实现的代码编写生成数据和真值的程序就行了,在比赛时,我们可以直接从官方给出的AclNN中取。
在kernelLaunch测试通过后我们直接修改myCustom.json。如果是多个数据类型,如下所示。
然后生成工程(具体目录请自行修改)
接着就是参考add和addcdiv算子在op_host中实现tiling策略,将kernelLaunch中测试通过的代码加上tiling相关的代码后搬运到op_kernel。编译安装算子。
这里因为我做的是比赛里给出的题目,因此直接使用官方给的案例进行测试。对于自定义算子,除修改gen_data外,我们还需要修改op_runner以及main.cpp。
参考仓库说明:https://gitee.com/ascend/op-plugin
一句话,多看文档,有问题就先去社区搜一下。这种就直接查代码吧,没有具体原因。
其他能稳定复现的bug等我后面遇到了再补充解决办法吧。