首页 > 其他分享 >【AI编译器原理】系列来啦!我们要从入门到放弃!

【AI编译器原理】系列来啦!我们要从入门到放弃!

时间:2023-01-16 17:57:27浏览次数:63  
标签:入门 框架 AI 编译器 video 计算 优化

随着深度学习的应用场景的不断泛化,深度学习计算任务也需要部署在不同的计算设备和硬件架构上;同时,实际部署或训练场景对性能往往也有着更为激进的要求,例如针对硬件特点定制计算代码。

这些需求在通用的AI框架中已经难已得到满足。由于深度学习计算任务在现有的AI框架中往往以DSL(Domain Specific Language)的方式进行编程和表达,这本身使得深度学习计算任务的优化和执行天然符合传统计算机语言的编译和优化过程。因此,【AI编译器】深度学习的编译与优化就是将当前的深度学习计算任务通过一层或多层中间表达进行翻译和优化,最终转化成目标硬件上的可执行代码的过程。本系列将围绕现有【AI编译器】中的编译和优化工作的内容展开介绍。

系列内容

AI是最新的电力,大约在一百年前,我们社会的电气化改变了每个主要行业,从交通运输行业到制造业、医疗保健、通讯等方面,我认为如今我们见到了AI明显的令人惊讶的能量,带来了同样巨大的转变。显然,AI的各个分支中,发展的最为迅速的就是深度学习。因此现在,深度学习是在科技世界中广受欢迎的一种技巧。

通过《AI框架核心技术》这个系列内容,以及这门课程后面的几门课程,你将获取并且掌握的技能:

  • 在《AI框架基础》第一门课程中,您将了解到AI框架的具体作用,可以提供给开发者一个编写神经网络模型的库和提供丰富的API。以及近几年AI框架快速发展的历史和变迁。在这门课程的结尾,您将了解到不同的编程范式对AI框架的影响和对用户习惯的影响。

  • 《传统编译器》会粗略地回顾传统编译器中的前端、后端、IR中间表达等主要的概念,并对目前主流的两大编译器GCC和LLVM进行简单的展开,去了解GCC的编译流程和编译方式,并回顾LLVM的整体架构。

  • 《AI 编译器》是本节的概览重点,去了解本章的主要内容 AI 编译器的整体架构,包括他的发展阶段,目前主要的组成模块,整体的技术演进方向等概念性的内容,因为近年来AI编译器发展迅猛,可以横向去了解AI编译器整体技术。

  • 《前端优化》前端优化作为 AI编译器 的整体架构主要模块,主要优化的对象是计算图,而计算图是通过AI框架产生的,值得注意的是并不是所有的AI框架都会生成计算图,有了计算图就可以结合深度学习的原理知识进行图的优化。

  • 《后端优化》后端优化作为AI编译器跟硬件之间的相连接的模块,更多的是算子或者Kernel进行优化,而优化之前需要把计算图转换称为调度树等IR格式,然后针对每一个算子/Kernel进行循环优化、指令优化和内存优化等技术。

  • 《多面体技术》多面体不属于新的技术,反而是传统编译器的一种优化手段,得益于深度学习中的主要特征(循环、张量),因此多面体技术可以发挥更大的作用,对循环展开、内存映射等优化工作。

  • 《PyTorch图模式》会以实际的AI框架 PyTorch 2.0为主线,去把其主打特性 Dynamo 和 AOTAutograd 进行展开,并回顾 PyTorch 对图模式的尝试,了解现今最热门的AI框架如何进行编译器优化的。

希望这个系列能够给大家、朋友们带来一些些帮助,也希望自己能够继续坚持完成所有内容哈!

然这里不是打广告,而是希望跟所有关注开源项目的好朋友一起探讨研究,共同促进学习讨论,也欢迎各位专家和朋友多拍拍砖,多提点意见。相关的材料都开源在这里:

https://github.com/chenzomi12/DeepLearningSystem/tree/main/Compiler

 

具体大纲

1 编译器基础

  1. 课程概述 video

2. 传统编译器

  1. 开源编译器的发展 video

  2. GCC编译过程和原理  video

  3. LLVM设计架构 video

  4. (上) LLVM IR详解 video

  5. (中) LLVM前端和优化层 video

  6. (下) LLVM后端代码生成 video

3. AI 编译器

  1. 为什么需要AI编译器 video

  2. AI编译器的发展阶段 video

  3. AI编译器的通用架构 video

  4. AI编译器的挑战与思考 video

4. 前端优化

  1. 内容介绍 video

  2. 计算图层IR video

  3. 算子融合策略 video

  4. (上) 布局转换原理  video

  5. (下) 布局转换算法 video

  6. 内存分配算法 video

  7. 常量折叠原理 video

  8. 公共表达式消除 video

  9. 死代码消除 video

  10. 代数简化原理 video

5. 后端优化

  1. AI编译器后端优化介绍 video

  2. 算子分为计算与调度 video

  3. 算子优化手工方式 video

  4.  算子循环优化 video

  5. 指令和内存优化 video

  6. Auto-Tuning原理 video

6. PyTorch2.0

  1. PyTorch2.0 特性串讲 video

  2. TorchScript 静态图尝试 video

  3. Torch FX 与 LazyTensor 特性 video

  4. TorchDynamo 来啦 video

  5. AOTAutograd 原理 video

  6. Dispatch 机制 video

完结,撒花!

标签:入门,框架,AI,编译器,video,计算,优化
From: https://www.cnblogs.com/ZOMI/p/17056017.html

相关文章

  • Python入门 Python自学路线 Python如何学习
    本文介绍Python入门Python自学路线Python如何学习。先说点题外话吧:首先呢,我刚开始接触编程的时候,学的是C,那时候Python还没有这么火,后来学了C++,PHP,Java,前端。接触js......
  • Nginx 快速入门
    一、Nginx快速入门1、Nginx概述1.1介绍​Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/PoP3)代理服务器。其特点是占有内存少,并发能力强......
  • Spring Cache 快速入门
    一、SpringCache快速入门1、SpringCache简介什么是SpringCache?SpringCache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spr......
  • JavaScript async/await 的用法以及它与 Promise 的区别
    async/await是JavaScript中的语法糖,用于简化异步代码的编写。它允许你在异步代码中使用同步风格的语法,使代码更易于阅读和维护。用法:使用关键字async声明一个异步......
  • 【服务器数据恢复】infortrend存储raid6故障离线,强制上线成功后分区数据无法访问的数
    服务器数据恢复环境:某影音制作公司一台infortrend某型号存储设备;12块硬盘组建raid6磁盘阵列,共一个lun映射到WINDOWS系统;在WINDOWS系统上,划分了一个GPT分区。服务器故障&......
  • 又一重要进展发布!OpenMMLab算法仓支持昇腾AI训练加速
    摘要:上海人工智能实验室的浦视开源算法体系(OpenMMLab)团队基于昇腾AI发布了MMDeploy0.10.0版本,该版本已支持OpenMMLab算法仓库在昇腾异构计算架构CANN上的推理部署。本文......
  • Embracing Domain Differences in Fake News- Cross-domain Fake News Detection usin
    一、摘要随着社交媒体的快速发展,假新闻已经成为一个重大的社会问题,它无法通过人工调查及时解决。这激发了大量关于自动假新闻检测的研究。大多数研究探索了基于新闻记录......
  • FreeMaker入门介绍
    一、FreeMaker介绍FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT、电子邮件、配置文件、源代码等)的工具,它不是面向最终用户的,而是一款程序员使用......
  • Thymeleaf入门(一)
    目录Thymeleaf简介模板布局属性优先级注释内联Thymeleaf简介Thymeleaf是一个java的模板引擎,能够处理Html、Xml、Javascript、Css甚至纯文本,类似于Jsp和Freemarker......
  • Thymeleaf入门(二):基本对象
    目录表达式基本对象 基本对象#ctx:上下文对象。是org.thymeleaf.context.IContext或者org.thymeleaf.context.IWebContext的实现#locale:直接访问与java.util.Local......