文章目录

  • 《Compiling ONNX Neural Network Models Using MLIR》
  • 要解决的问题
  • 名字由来
  • 解决方法

《Compiling ONNX Neural Network Models Using MLIR》

本文主要是对 ONNX-MLIR 这个编译框架的论文内容概括整理,速记论文中一些个人认为值得记录和分享的点,所以篇幅不长。

要解决的问题

当前模型加速技术有一些深度学习框架是通过使用一些高性能依赖库来实现加速的,在前向推理时让算子实现直接调用高性能库中已经实现的函数,这样的加速方式很直接,但同样会有一些问题:

  • 能够加速的模型种类受限于高性能库能够支持的算子种类
  • 让使用者需要额外的各种安装来确保高性能库的正确运行
  • 库缺乏灵活性,同一个算子在不同情况下可能最优实现不同

名字由来

ONNX-MLIR 则是一款新的图编译器,能够将训练后的模型直接编译成目标硬件上的原生代码,并且可以在编译过程中使用各种成熟的优化技术。因为使用了 ONNX 做了输入模型的目标格式,并且使用了 Multi-level Intermediate Representation(MLIR)编译框架,所以项目直接取名,ONNX-MLIR 。

此处省略了论文中对 ONNX 框架的简单介绍及 MLIR 的简介。 MLIR 也有官方的论文,之后会发出相关的论文笔记,链接到这里。不过这里可以先给一张图,来表示 MLIR 的一些核心概念:

Operation 就可以理解为一个算子,layer,然后算子内部表示则是有属性(attributes),输入(SSA Operands),输出,Regions 等。

一个或多个 Operation 组成了一个 Block,多个Block 组成了 Regions,而 Operation 里面有可以包含 Regions ,由此就可以实现嵌套,用于实现控制流等内容。

解决方法

这张图可以很好地归纳总结整个 ONNX-MLIR 的框架流程。为了实现图编译的功能,并且可以跟 ONNX 算子粒度想匹配,ONNX-MLIR 基于 MLIR 的 Dialect 的概念提出了 ONNX Dialect 和 Krnl Dialect 两个新的Dialect (这里的 Dialect 不了解的同学可以暂且理解为一层中间表示),其他部分则是直接使用 MLIR 实现好的 Dialect 来进行编译映射。

  • 在模型原生算子到 ONNX Dialect 定义的算子的转化中主要可以进行类型推导(Type inference),算子的组合,分解,消除等优化操作。
  • Krnl Dialect 则是主要用于对计算图中标量及循环操作的优化,从这层开始就主要集中在性能及内存方面的优化操作了。

主要是通过上图对 ONNX-MLIR 框架有了更多的了解,之前的了解仅局限在到 ONNX Dialect 这一层面,并不知道里面很多涉及到 Krnl Dialect 和 Affine Dialect 的内容都是干什么的,现在看论文一张图便很清晰了。

[论文阅读] 《Compiling ONNX Neural Network Models Using MLIR》相关推荐

  1. 《基于卷积神经网络的深度迁移学习,用于燃气轮机燃烧室的故障检测》论文阅读

    目录 突出 抽象 引言 1.1动机 1.2文献综述获得的结论 1.3贡献 1.4组织 2方法 2.1燃汽轮机组故障知识共享 2.2迁移学习 2.3 基于卷积神经网络的深度迁移学习 2.4用于燃气轮机燃 ...

  2. 基于卷积神经网络和投票机制的三维模型分类与检索 2019 论文笔记

    作者:白静 计算机辅助设计与图形学学报 1.解决的问题 由于三维模型投影得到的视图是由不同视点得到,具有相对独立性,这种像素级的融合运算并没有直接的物理或者几何意义,更有可能造成图像有益信息淹没和混淆 ...

  3. TextCNN——基于卷积神经网络的文本分类学习

    1.CNN基础内容 CNN的全称是Convolutional Neural Network,是一种前馈神经网络.由一个或多个卷积层.池化层以及顶部的全连接层组成,在图像处理领域表现出色. 本文主要学习 ...

  4. 读懂深度迁移学习,看这文就够了 | 赠书

    百度前首席科学家.斯坦福大学副教授吴恩达(Andrew Ng)曾经说过:迁移学习将是继监督学习之后的下一个促使机器学习成功商业化的驱动力. 本文选自<深度学习500问:AI工程师面试宝典> ...

  5. 一种基于卷积神经网络的图像去雾研究-含matlab代码

    目录 一.绪论 二.去雾卷积网络 2.1 特征提取 2.2 多尺度映射 2.3 局部均值 2.4 非线性回归 三.实验与分析 四.Matlab代码获取 一.绪论 雾是一种常见的大气现象,空气中悬浮的水 ...

  6. 机械臂论文笔记(一)【基于卷积神经网络的二指机械手 抓取姿态生成研究 】

    基于卷积神经网络的二指机械手 抓取姿态生成研究 论文下载 摘要 第1章 绪论 1.1 抓取生成国内外研究现状 1.1.1已知物体抓取生成 1.1.2相似物体抓取生成 1.1.3 未知物体抓取生成 1. ...

  7. 毕业设计 - 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

    文章目录 1 前言 2 前言 3 数据集 3.1 良性样本 3.2 病变样本 4 开发环境 5 代码实现 5.1 实现流程 5.2 部分代码实现 5.2.1 导入库 5.2.2 图像加载 5.2.3 ...

  8. 基于卷积神经网络与迁移学习的油茶病害图像识别

    基于卷积神经网络与迁移学习的油茶病害图像识别 1.研究思路 利用深度卷积神经网络强大的特征学习和特征表达能力来自动学习油茶病害特征,并借助迁移学习方法将AlexNet模型在ImageNet图像数据集上 ...

  9. Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类)

    Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类) 1.卷积神经网络 1.1卷积神经网络简介 1.2卷积运算 1.3 深度学习与小数据问题的相关性 2.下载数据 2.1下载原始数据 ...

  10. 基于卷积神经网络实现图片风格的迁移 1

    卷积神经网络详解 一.实验介绍 1.1 实验内容 Prisma 是最近很火的一款APP,它能够将一张普通的图像转换成各种艺术风格的图像.本课程基于卷积神经网络,使用Caffe框架,探讨图片风格迁移背后 ...

最新文章

  1. php计算格子xy,经纬度BL和直角坐标XY的正算反算 PHP代码
  2. 波士顿动力机器狗在工厂打工的实录火了
  3. 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
  4. 几个关于噪声测量的实验
  5. VC非ASCII语言复制到剪切板乱码问题
  6. 给NavigationCtrl 增强动画.
  7. linux 网络设备 安装,Linux_Linux系统配置网络详解,一.安装和配置网络设备- phpStudy...
  8. Windows Server 2008 R2 Server Core文件操作命令
  9. yv12转nv12,nv12转I420
  10. Cadence导入AD的pcb文件中元件的封装
  11. TCPDF支持php7,php – 我不能要求tcpdf库
  12. Android 静默安装
  13. EXCEL TIPS From Webs
  14. 自我总结:找工作面试时注意事项
  15. Pytorch系列(六):猫狗大战3-MobileNet_V1V2
  16. 有个漂亮女朋友是种怎样的体验?爬取知乎2.2亿的阅读量的话题
  17. Python--Opencv:errorFindContours supports only CV_8UC1 images when mode = CV_RETR_FLOODFILL otherw
  18. [转]银监会紧急澄清:二套房贷首付六成报道不实
  19. Java中的反射和枚举
  20. 我是主考官7:他为什么没有被录取

热门文章

  1. ffmpeg在不去除原声的情况下加上背景音乐
  2. c语言lookup函数怎么用,只能使用实例来介绍LOOKUP函数在Excel中的应用
  3. 自制机器人15分钟破解保险箱密码
  4. NKOJ 2182 (HEOI 2012) 采花(树状数组/线段树)
  5. 多点触控液晶三维电子沙盘 实景三维电子沙盘
  6. Command line is too long.Shorten the command line XXX
  7. 转、分享:PMP学习资料、考试资料推荐:第四版-2008版-吴永达
  8. Visio给图片加框,然后拉成矩形状
  9. 小米路由器mini开启SSH
  10. [LeetCode每日1题][中等] 322. 零钱兑换