【深度学习编译器系列】1. 为什么需要深度学习编译器?
本系列是自学深度学习编译器过程中的一些笔记和总结,参考文献在文末。
1. 概述
深度学习(DL)编译器的产生有两方面的因素:深度学习模型的广泛应用,以及深度学习芯片的层出不穷。
一方面,我们现在有非常多深度学习的应用,比如自动驾驶技术常常需要用到计算机视觉方面的模型,如行人检测,车道线识别等,智能家居设备常常需要用到自然语言处理(NLP)和语音识别方面的模型,甚至在生物学领域深度学习可以解决难倒了几代科学家的蛋白质折叠问题。
另一方面,这些应用要投入使用,面对的是非常多样的部署环境。比如自动驾驶相关的计算机视觉模型需要部署到车辆上,智能家居相关的自然语言处理模型需要部署到智能音箱上,另外一些应用还可能部署到手机上、数据中心的计算集群上等。而随着各种深度学习专用芯片的出现,如Google的TPU,Nvidia的Turing,Intel NNP,Amazon的Inferentia,阿里平头哥的含光,华为海思的NPU等等,部署环境变得更加的多样化。

那么如何使不同的深度学习应用在不同的部署环境(如不同的硬件、不同的操作系统、不同的容器执行环境、不同的运行时计算库、不同的加速器类型等)上获得最优的性能呢?这正是深度学习编译器研究的问题。
2. 什么是深度学习编译器
深度学习编译器的任务,是把输入的深度学习模型,转化成不同硬件上优化的代码进行输出。
这个过程和传统编译器所做的事情非常类似,因此取名“深度学习编译器”。

但深度学习编译器也有和传统编译器不同的地方。最大的不同在于输入不同,传统编译器输入的是高级语言,比如C/C++/ObjC,而深度学习编译器输入的是深度学习模型(一般以计算图的形式存在)。这样的输入使得深度学习的领域知识可以在编译的过程中被引入进来,从而更好地优化部署的代码。这也是为什么不直接用传统编译器来编译深度学习相关应用的原因。
参考文献:
- https://mlc.ai/zh/chapter_introduction/index.html
- https://www.bilibili.com/video/BV1pM41167KP/
相关文章:
【深度学习编译器系列】1. 为什么需要深度学习编译器?
本系列是自学深度学习编译器过程中的一些笔记和总结,参考文献在文末。 1. 概述 深度学习(DL)编译器的产生有两方面的因素:深度学习模型的广泛应用,以及深度学习芯片的层出不穷。 一方面,我们现在有非常多…...
数据结构与算法总结整理(超级全的哦!)
数据结构与算法基础大O表示法时间复杂度大O表示法时间复杂度排序:最坏时间复杂度时间复杂度的几条基本计算规则内存工作原理什么是内存内存主要分为三种存储器随机存储器(RAM)只读存储器(ROM)高速缓存(Cach…...
DPDK — MALLOC 堆内存管理组件
目录 文章目录 目录MALLOC 堆内存管理组件rte_malloc() 接口malloc_heap 结构体malloc_elem 结构体内存初始化流程内存申请流程内存释放流程MALLOC 堆内存管理组件 MALLOC(堆内存管理组件)基于 hugetlbfs 内核文件系统来实现,能够从 HugePage 中分配一块连续的物理大页内存…...
分享113个HTML艺术时尚模板,总有一款适合您
分享113个HTML艺术时尚模板,总有一款适合您 113个HTML艺术时尚模板下载链接:https://pan.baidu.com/s/1ReoPNIRjkYov-SjsPo0vhg?pwdjk4a 提取码:jk4a Python采集代码下载链接:采集代码.zip - 蓝奏云 女性化妆用品网页模板 粉…...
2023年美赛C题Wordle预测问题一建模及Python代码详细讲解
相关链接 (1)2023年美赛C题Wordle预测问题一建模及Python代码详细讲解 (2)2023年美赛C题Wordle预测问题二建模及Python代码详细讲解 (3)2023年美赛C题Wordle预测问题三、四建模及Python代码详细讲解 &…...
小米12s ultra,索尼xperia1 iv,数码相机 拍照对比
首先说明所有的测试结果和拍摄数据我放到百度网盘了(地址在结尾) 为什么做这个测试 我一直想知道现在的手机和相机差距有多大,到底差在哪儿? 先说结论: 1.1英寸的手机cmos(2022年) 6年前(2016)的入门款相机(m43画幅) 2.手机 不能换镜头,只能在特定的拍摄距离才能发挥出全…...
C++笔记 模板的进阶知识
目录 1. 非类型模板参数 2.模板的特化 2.1 函数模板的特化 2.2 类模板的特化 2.2.1 全特化 2.2.2 偏特化 3.模板的分离编译 3.1 什么是分离编译? 3.2 模板的分离编译 4.模板的总结 模板的初阶内容:(594条消息) C模板的原理和使用_全貌的博客-CSD…...
基于 Debain11 构建 asp.net core 6.x 的基础运行时镜像
基于 Debain11 构建 asp.net core 6.x 的基础运行时镜像Linux 环境说明Debian 简介Debian 发行版本关于 Debian 11Linux 常用基础工具Dockerfile 中 RUN 指令RUN 语法格式RUN 语义说明编写 Dockerfile 构建 Runtime 基础镜像ASP.NET Core Runtime 基础镜像Dockerfile 编写Windo…...
【无人机路径规划】基于IRM和RRTstar进行无人机路径规划(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
Spring Boot中使用@Autowire装配接口是怎么回事?
在学习使用Spring Boot框架时候,发现了一个特别的现象UserMapper是一个接口,在另一个类中好像直接使用Autowired装配了一个UserMapper对象???我纳闷了一会儿,接口居然可以直接实例对象吗?根据我…...
23种设计模式介绍(Python示例讲解)
文章目录一、概述二、设计模式七种原则三、设计模式示例讲解1)创建型模式1、工厂模式(Factory Method)【1】简单工厂模式(不属于GOF设计模式之一)【2】工厂方法模式2、抽象工厂模式(AbstractFactory&#x…...
初识Hadoop,走进大数据世界
文章目录数据!数据!遇到的问题Hadoop的出现相较于其他系统的优势关系型数据库网格计算本文章属于Hadoop系列文章,分享Hadoop相关知识。后续文章中会继续分享Hadoop的组件、MapReduce、HDFS、Hbase、Flume、Pig、Spark、Hadoop集群管理系统以及…...
加油站会员管理小程序实战开发教程14 会员充值
我们上篇介绍了会员开卡的业务,开卡是为了创建会员卡的信息。有了会员卡信息后我们就可以给会员进行充值。当然了充值这个业务是由会员自主发起的。 按照我们的产品原型,我们在我的页面以轮播图的形式循环展示当前会员的所有卡信息。这个会员卡信息需要先用变量从数据源读取…...
leetcode 1792. 最大平均通过率
一所学校里有一些班级,每个班级里有一些学生,现在每个班都会进行一场期末考试。给你一个二维数组 classes ,其中 classes[i] [passi, totali] ,表示你提前知道了第 i 个班级总共有 totali 个学生,其中只有 passi 个学…...
15-基础加强-2-xml(约束)枚举注解
文章目录1.xml1.1概述【理解】(不用看)1.2标签的规则【应用】1.3语法规则【应用】1.4xml解析【应用】1.5DTD约束【理解】1.5.1 引入DTD约束的三种方法1.5.2 DTD语法(会阅读,然后根据约束来写)1.6 schema约束【理解】1.6.1 编写schema约束1.6.…...
13:高级篇 - CTK 事件管理机制(signal/slot)
作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在《12:高级篇 - CTK 事件管理机制(sendEvent/postEvent)》一文中,我们介绍了如何进行插件间通信 - sendEvent()/postEvent() + ctkEventHandler。然而,除了这种方式之外,EventAdmin 还提供了另一种方…...
群晖-第1章-IPV6的DDNS
群晖-第1章-IPV6的DDNS 方案:腾讯云群晖DS920 本文参考群晖ipv6 DDNS-go教程-牧野狂歌,感谢原作者的分享。 这篇文章只记录了我需要的部分,其他的可以查看原文,原文还记录了更多的内容,可能帮到你。 一、购买域名 …...
centos7系统-kubeadm安装k8s集群(v1.26版本)亲测有效,解决各种坑可供参考
文章目录硬件要求可省略的步骤配置虚拟机ip设置阿里镜像源各服务器初始化配置配置主节点的主机名称配置从节点的主机名称配置各节点的Host文件关闭各节点的防火墙关闭selinux永久禁用各节点的交换分区同步各节点的时间将桥接的IPv4流量传递到iptables的链(三台都执行…...
帮助指令 man ,help及文档常用管理指令
帮助指令 man,help 1. man 当我们想要了解某个命令如何使用,及选项的含义是什么以及配置文件的帮助信息时,可以使用 man [命令或配置文件],这样便可以获得到帮助提示信息了。 语法格式:man [命令或者配置文件] 比如…...
电子科技大学操作系统期末复习笔记(五):文件管理
目录 前言 文件管理:基础 基本概念 文件 文件系统 文件系统的实现模型 文件的组成 文件名 文件分类 文件结构 逻辑结构 物理结构 练习题 文件管理:目录 文件控制块FCB FCB:File Control Block FCB信息 目录 基本概念 目…...
使用Taotoken CLI工具一键配置团队开发环境与统一模型端点
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken CLI工具一键配置团队开发环境与统一模型端点 当团队需要统一接入多个大模型时,为每位成员手动配置API密钥…...
从标注工具到AI流水线:在Windows上搭建CVAT,并连接Label Studio与Jupyter Notebook
从标注工具到AI流水线:在Windows上构建CVAT与生态工具的协同工作流 当计算机视觉项目从实验室走向生产环境时,数据标注往往成为制约迭代速度的关键瓶颈。传统孤立使用的标注工具如同信息孤岛,而现代MLOps实践需要的是能够无缝衔接数据标注、质…...
如何快速掌握AMD Ryzen硬件调试:SMUDebugTool性能优化完整指南
如何快速掌握AMD Ryzen硬件调试:SMUDebugTool性能优化完整指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: ht…...
Taotoken用量看板如何帮助团队清晰管理API成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken用量看板如何帮助团队清晰管理API成本 作为团队的技术负责人,在引入大模型能力支持多个业务项目时,…...
STM32多任务处理实战:从裸机调度到FreeRTOS应用详解
1. 项目概述与核心需求解析在嵌入式开发领域,尤其是基于STM32这类资源受限但功能强大的微控制器时,我们常常会遇到一个核心矛盾:硬件只有一个CPU核心,但软件功能却要求它“同时”处理多个任务。比如,一个智能温控器需要…...
SketchUp 2021照片匹配实战:手把手教你用一张床头柜照片快速建模(含尺寸校准技巧)
SketchUp 2021照片匹配实战:从单张照片到精准3D模型的完整工作流 在室内设计和家具建模领域,时间就是金钱。当你手头只有一张产品照片——可能是电商平台的商品图,或是客户发来的参考图片——如何快速将其转化为可编辑的3D模型?Sk…...
嵌入式UI开发提速秘籍:用GUI Guider+NXP工具链为LVGL 8.3.2快速设计界面并集成到Keil工程
嵌入式UI开发效率革命:GUI Guider与Keil工程的无缝整合实战 在嵌入式系统开发中,用户界面(UI)的设计与实现往往是最耗时的环节之一。传统的手写代码方式不仅效率低下,而且难以快速迭代和调整。本文将介绍如何利用NXP的GUI Guider工具与Keil开…...
书匠策AI官网www.shujiangce.com|论文写作“裸奔时代“结束了!
哈喽各位还在跟论文死磕的朋友们,我是你们的论文科普搭子。 今天咱们换个玩法——不讲理论,不说大道理,我就拿书匠策AI( 官网直达:www.shujiangce.com) 的期刊论文功能当一台"时光机"࿰…...
51单片机断电记忆功能实现:用AT24C02做个简易电子计数器(含完整代码)
51单片机断电记忆功能实战:基于AT24C02的智能计数器开发指南 在嵌入式系统开发中,数据持久化存储是一个常见但至关重要的需求。想象一下,当你精心设计的计数器设备在断电后丢失所有记录,或者每次重启都需要重新配置参数࿰…...
如何在3分钟内配置你的英雄联盟本地自动化助手:终极指南
如何在3分钟内配置你的英雄联盟本地自动化助手:终极指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾在英雄排位赛中因…...
