算法优化福音:算子自动优化工具AutoKernel正式开源啦

文章转载于: tengine开发者社区
作者:小o妹 算子自动优化的发展趋势
随着ai技术的快速发展,深度学习在各个领域得到了广泛应用。深度学习模型能否成功在终端落地应用,满足产品需求,一个关键的指标就是神经网络模型的推理性能。于是,一大波算法工程师为了算法的部署转岗算子优化工程师。然而,优化代码并不是一件简单的事,它要求工程师既要精通计算机体系架构,又要熟悉算法的计算流程,于是,稍微有经验的深度学习推理优化工程师都成了各家公司争抢的“香饽饽”。人才少,需求多,算子优化自动化是未来的大趋势。
autokernel是什么?
最近,一个致力于降低优化门槛,提升优化开发效率的算子自动优化工具autokernel开源了。
autokernel是一个高性能算子自动优化工具,可以自动优化调度策略、生成底层优化代码,大幅减少各硬件芯片算子开发成本,提升算子优化效率,让工程师更快实现深度学习算法在各硬件芯片上的高性能部署。
autokernel的定位
为了方便大家进一步理解autokernel,我们需要先了解一下深度学习推理计算平台的层级。
深度学习的推理计算平台可以分为以下几个层级:
1、最上层对接各个深度学习训练框架训练出来的算法模型(tensorflow, caffe, pytorch, mxnet等);
2、 hign-level ir是计算图(computation graph)层级。神经网络可以理解为计算图(graph),一个计算图由多个算子(opterator)节点组成,这些节点可以是卷积算子(convolution), 池化算子(pooling), 全连接算子(fc)等。这个层级可以进行一些图层级的优化,算子融合,子图切分的操作等;
3、接下来就是算子(operator/kernel)层级。这个层级需要支持每个硬件后端的每个算子实现。目前的高性能算子计算库主要是由资深hpc工程师(高性能计算优化工程师)进行手工开发。autokernel就是算子层级的一个自动优化工具,自动生成适应不同后端的算子优化代码;
4、最后是各硬件后端:gpu, arm cpu, x86 cpu, npu等。
autokernel目前属于算子层级的自动优化工具。
autokernel如何实现部署优化?
部署优化之前,我们先了解一下autokernel的三大特性:
· 低门槛: 无需底层优化汇编的知识门槛
· 简单易用: 提供docker环境,无需安装环境,plugin一键集成到推理框架
· 高效率: 无需手写优化汇编,一键生成优化代码,一键部署
作为算子层级的一个自动优化工具,autokernel支持将自动优化的算子代码集成进部署推理框架,主要流程分为两步:
1. 生成:编写算法描述和调度策略,生成相应后端的优化算子代码;
2. 部署:将生成的优化算子代码通过插件plugin的形式集成进推理框架tengine。
autokernel的算子生成模块(op generator)使用了业界广泛使用的自动代码生成项目halide。halide是一个dsl(domain specific language) 编程语言,它将算法和硬件后端分离。本模块输入halide语言的算法描述和优化调度策略,指定硬件后端,就可以自动生成优化代码。为了减少开发者配置环境的遇到问题,autokernel提供了docker镜像,docker里面已经安装好halide, 并且配置好halide的python的api,方便开发者使用。
autokernel的部署模块autokernel plugin是一个相对独立的插件,只依赖于tengine的算子头文件,不依赖于tengine库。它实现了将autokernel generator生成优化的算子代码,以plugin的形式集成进tengine推理框架中,实现自动优化算子的一键部署。整个过程不需要重新编译tengine库,只需要独立编译plugin的动态库,在运行时加载autokernel plugin的库,就能调用自动生成的算子实现。下面的图展示了使用autokernel前后的变化,只需要在运行时添加一行代码,加载autokernel plugin的动态库:
autokernel还有一个模块叫autosearch,该模块通过强化学习/机器学习/遗传算法搜索出相应后端的最优算子的调度策略参数。该模块目前仍在开发中。
autokernel使用教程
下图是展示了在intel(r) core(tm) i9-9900k cpu @ 3.60ghz的电脑上的优化效果,无需手工撸代码,无需编写繁杂冗长的底层汇编代码,只需十几行简洁的调度代码, 就能性能优化200+倍~
推荐阅读
yolo之外的另一选择,手机端97fps的anchor-free目标检测模型nanodet现已开源~ ai编译优化--业务实践 更多tengine相关内容请关注tengine-边缘ai推理框架专栏。

2009印度轮胎展/印度汽配展
中国通信企业将成为5G时代重要的推动者和践行者
智能塑壳断路器可以有哪些功能?
重庆奋市力打造一流的物联网智慧产业生态基地
李一桐种草小狗擦地吸尘器 618买它准没错
算法优化福音:算子自动优化工具AutoKernel正式开源啦
实用数字示波器的微处理器硬件设计方案
想要走上真正的无人驾驶之路?还有这两大技术问题亟待解决
GoPro发布手持云台,无人机上市时间却成谜
官方海报首曝华为nova 2 Plus魔镜版超高颜值 明日火爆预售
储能设备为无线传感器节点供电
专访阿里视频云叔度:一场技术人的自我修行
先进封装之TSV、TGV技术制作工艺和原理
汽车芯片,还能撑多久?
碳化硅瞄准新型电力电子产业
消费电子产品需求出现放缓迹象
智能试衣镜功能再升级,让试衣购物更加的享受
总投资达2.1亿,苏州超算中心开始试运行
典型接口电路经典EMC方案分享
FPGA数字信号处理-FIR滤波器及AM解调