首页 > 其他分享 >深度学习编译综述

深度学习编译综述

时间:2024-04-01 14:11:18浏览次数:28  
标签:架构 综述 IR 低级 学习 编译 深度 优化

The Deep Learning Compiler: A Comprehensive Survey
https://arxiv.org/pdf/2002.03794.pdf

研究背景

深度学习编译是深度学习模型与硬件之间的桥梁
img

深度学习编译器通用设计框架

img

  • 高级IR:表示计算和控制流,体系架构无关
  • 低级IR:描述指令细节特性,体系架构相关
  • 前端:将深度学习模型转化为计算图,体系架构无关优化
  • 后端:将高级IR转化为低级IR,体系架构相关优化

深度学习编译器的关键组件

高级IR

高级IR表示

  • 基于DAG的IR表示
  • 基于Let绑定的IR表示
  • 张量计算的表示
    • 基于函数的表示
    • Lambda表达式
    • 爱因斯坦操作符

高级IR表示的实施

  • 数据表示
    • placeholder
    • 位置形状表示
    • 数据布局
    • 边界
  • 操作支持
    • 广播
    • 控制流
    • 导数
    • 定制操作

低级IR

  • 低级IR表示的实现
    • Halide-based IR
    • Polyhedral-based(多面体) IR
    • MLIR
    • Other unique IR
  • 基于低级IR的代码生成
    • 低级IR的代码生成方法
      • 将低级IR转换为LLVM IR
    • 低级IR的优化方法
      • 在LLVM的上级IR中执行目标特定的循环转换
      • 为优化传递提供硬件目标的附加信息

前端优化

img

  • 节点优化:Nop消除,零维度张量消除优化等
  • 块级优化:代数简化,算子融合,算子下沉
  • 数据流级优化:死代码消除,静态内存规划,布局转换

后端优化

img
硬件相关优化

  • 硬件内建映射
  • 内存分配和加载
  • 内存延迟隐藏
  • 循环相关优化

自动调优

  • 参数化
  • 代价模型
  • 搜索技术

内核库优化

未来的研究方向

  • 动态shape和预/后处理
  • 改进自动调优
  • 多面体模型
  • 子图分区
  • 量化
  • 统一优化
  • 差分编程
  • 隐私保护
  • 训练支持

标签:架构,综述,IR,低级,学习,编译,深度,优化
From: https://www.cnblogs.com/moguw/p/18108296

相关文章

  • 初识编译和链接(C语言)
    文章目录编译和链接翻译环境预处理编译汇编链接运行环境编译和链接编译和链接这两个大的过程构成了翻译环境。其实,在ANSIC的任何一种实现中,存在两个不同的环境。一个环境是翻译环境,另一个是执行环境。翻译环境中,源代码被转换为可执行的机器指令。执行环境中,代......
  • Verilog常用编译指令
    一、编译指令特性:1、编译指令是以反引号`为前缀,ASCII为0x60,而不是单引号’,单引号的ASCII为0x27;2、编译指令从处理到它开始就一直保持有效,除非后面被自己或者其他编译指令覆盖或者取消掉。二、常用指令1、宏定义指令`define,`undef  在编译阶段,`define用于文本替换,类......
  • 故障诊断模型 | 基于多信号融合和改进的深度卷积生成对抗网络的不平衡数据故障诊断方
    文章目录文章概述模型描述参考资料文章概述本文提出了一种解决数据不平衡问题并提高诊断准确性的诊断方法。首先,通过小波变换处理来自多个传感器的信号,以增强数据特征,然后通过池化和拼接操作对其进行压缩和融合。随后,构建改进的对抗网络来生成新的样本进......
  • 深度学习理论基础(二)神经网络基础篇
    目录一、基础知识点Ⅰ参数部分Ⅱ模型部分二、普通神经网络模型搭建1.准备数据集2.划分数据集3.搭建模型4.训练网络5.测试网络6.保存与导入模型  神经网络通过学习大量样本的输入与输出特征之间的关系,以拟合出输入与输出之间的方程,学习完成后,只给它输入特......
  • Linux应用开发笔记(一)交叉编译及执行
    Linux应用开发笔记(一)交叉编译及执行文章目录一、GCC编译器1.什么是GCC2.安装GCC3.交叉编译二、ssh的使用1.连入局域网2.连接SSH一、GCC编译器1.什么是GCCGCC(GNUCompilerCollection)是一个开源的编译器集合,包含C、C++、Objective-C、Fortran、Java、Ada和G......
  • 【部分内容摘录】深度学习(人工智能):大模型的微调方法
    原文地址:http://www.cn-witmed.com/list/34/9555.html模型微调的基本思想是使用少量带标签的数据对预训练模型进行再次训练,以适应特定任务。在这个过程中,模型的参数会根据新的数据分布进行调整。这种方法的好外在于,它利用了预训练模型的强大能力,同时还能够适应新的数据分布。......
  • 编译和链接
    今天我们将对编译和链接进行大概的了解!(里面出现的一些操作指令看不懂没关系,以后再给大家讲解呢!目录1.翻译环境和运行环境2.翻译环境2.1预处理(预编译)2.2编译2.2.1词法分析:2.2.2语法分析2.2.3语义分析2.3汇编2.4链接3.运行环境1.翻译环境和运行环境在ANS......
  • 毕业设计:基于深度学习的厨房穿戴识别系统 卷积神经网络
    目录前言一、课题背景与意义二、设计思路2.1.图像分类2.2.目标检测三、模型训练3.1实验环境3.2结果分析最后前言 ......
  • 毕业设计:基于深度学习的宠物狗种类识别 人工智能 YOLO
    目录前言项目背景数据集设计思路更多帮助前言  ......
  • 毕业设计:基于图像增强的交通标志识别系统 深度学习 机器视觉
    目录前言课题背景和意义实现技术思路一、算法理论基础1.1 直方图均衡化1.2SKNet 分类模型二、 数据集三、实验及结果分析3.1 实验环境搭建3.2 模型训练最后前言  ......