MegEngine 框架设计

MegEngine 技术负责人许欣然将带了解一个深度学习框架是如何把网络的定义逐步优化并最终执行的,从框架开发者的视角来看待深度学习。

背景

AI 浪潮一波又一波,仿佛不会算法就落后于时代。

深度学习框架处理了各种设备的计算细节、求导、计算优化序列的工作,而在动态、静态两套截然不同的世界中,这些步骤又各自有他们不同的优化点和瓶颈。

如何在中间获取一个高效的平衡呢?以及如何克服训练完的模型在推理部署中无数的坑(闻者落泪),那个堪称对此进行降维打击的“训练推理一体化”到为何物?

分享内容

MegEngine 天元作为旷视全员自用6年的自研深度学习框架,是一个在淘金热时,坚持选择卖铲子的团队。了解一个深度学习框架是如何把网络的定义逐步优化并最终执行的,从框架开发者的视角来看待深度学习。

视频地址: https://www.bilibili.com/video/BV11C4y1t7xH

课件地址:金枪鱼之夜:MegEngine
框架设计.pdf

分享大纲

  • 背景介绍
  • 深度学习框架是干啥的?
  • 道理我都懂,为什么又搞一个深度学习框架?
  • 你们为啥不用 PyTorch / TensorFlow?
  • 训推一体是个啥玩意?
  • 如何写出一个深度学习框架?(超简化版)
  • 动态图训练
  • 调用 = 执行
  • 依赖关系图 forward & backward
  • megdnn kernel
  • exec
  • Shape Deduce
  • 静态图训练 + 推理(粗糙版)
  • Tensor
  • Graph、SymborVar
  • CompNode
  • Shape Inference
  • Graph Optimization
  • 拓扑排序
  • 内存优化
  • Computing Sequence
  • 一个陈年静态图框架是怎么变成动态图框架的?
  • Dynamic Region
  • Eager Graph
  • Eager Runtime + Proxy Graph
  • 对未来的展望
  • 各种芯片模组的对接,挑战训推一体的理念
  • MLIR 等技术的兴起
  • 如何做到真 JIT

MegEngine 框架设计的更多相关文章

  1. 前端MVVM框架设计及实现

    最近抽出点时间想弄个dom模块化的模板引擎,不过现在这种都是MVVM自带的,索性就想自己造轮子写一个简单的MVVM框架了 借鉴的自然还是从正美的Avalon开始了,我2013年写过一个关于MVC MV ...

  2. 前端MVVM框架设计及实现(二)

    在前端MVVM框架设计及实现(一)中有一个博友提出一个看法: “html中使用mvvm徒增开发成本” 我想这位朋友要表达的意思应该是HTML定义了大量的语法标记,HTML中放入了太多的逻辑,从而增加了 ...

  3. JavaScript 框架设计

    JavaScript 高级框架设计 在现在,jQuery等框架已经非常完美,以致于常常忽略了JavaScript原生开发,但是这是非常重要的. 所以,我打算写一个简单的框架,两个目的 熟练框架的思想 ...

  4. JavaScript 框架设计(二)

    JavaScript 高级框架设计 (二) 上一篇,JavaScript高级框架设计(一)我们 实现了对tag标签的选择 下来我们实现对id的选择,即id选择器. 我们将上一篇的get命名为getTa ...

  5. JavaScript框架设计(三) push兼容性和选择器上下文

    JavaScript框架设计(三) push兼容性和选择器上下文 博主很久没有更博了. 在上一篇 JavaScript框架设计(二) 中实现了最基本的选择器,getId,getTag和getClass ...

  6. JavaScript框架设计(四) 字符串选择器(选择器模块结束)

    JavaScript框架设计(四) 字符串选择器(选择器模块结束) 经过前面JavaScript框架设计(三) push兼容性和选择器上下文的铺垫,实现了在某一元素下寻找,现在终于进入了字符串选择器 ...

  7. Atitit.加密算法ati Aes的框架设计

    Atitit.加密算法ati Aes的框架设计 版本进化 c:\1t\aesC47.java c:\1t\aes.java 增加了public static byte[] encrypt(byte[] ...

  8. .NET架构设计、框架设计系列文章总结

    从事.NET开发到现在已经有七个年头了.慢慢的可能会很少写.NET文章了.不知不觉竟然走了这么多年,热爱.NET热爱c#.突然想对这一路的经历进行一个总结. 是时候开始下一阶段的旅途,希望这些文章可以 ...

  9. 新书出版《.NET框架设计—模式、配置、工具》感恩回馈社区!

    很高兴我的第一本书由图灵出版社出版.本书总结了我这些年来对框架学习.研究的总结,里面纯干货,无半句废话. 书的详情请看互动网的销售页面:http://product.china-pub.com/377 ...

随机推荐

  1. 03- web表单测试

    软件分为 b/s c/s两种架构 表单测试 1.用户注册,登录,信息提交. 2.用户查询商品. 3.用户订购商品. 4.用户查询订单等. 表单测试实例 表单数据添加测试(一) 添加按钮可用,测试点击添 ...

  2. 【Java集合】JDK1.7和1.8 HashMap有什么区别

    JDK1.7和1.8 HashMap区别: 1.数组+链表改成了数组+链表或红黑树: 2.表的插入方式从头插法改成了尾插法,简单说就是插入时,如果数组位置上已经有元素,1.7将新元素放到数组中,原始节 ...

  3. Windows下Nexus 5 改user模式为debug模式

    博客链接:http://blog.csdn.net/qq1084283172/article/details/52337241 在学习Android软件安全的过程中,经常要用到Android的动态调试 ...

  4. 学生免费使用JetBrains全家桶

    今天又有一个同学来问我申请流程,因此也就趁着这个机会把整个流程简单地记录一下,供大家分享.下面所提及到的学校邮箱以及相关的操作都是以自己学校为准,学校不同可能会稍有不同,大家按自己学校的操作就好. 学 ...

  5. 【python】Leetcode每日一题-逆波兰表达式求值

    [python]Leetcode每日一题-逆波兰表达式求值 [题目描述] 根据 逆波兰表示法,求表达式的值. 有效的算符包括 +.-.*./ .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说 ...

  6. webpack 快速入门 系列 —— 初步认识 webpack

    初步认识 webpack webpack 是一种构建工具 webpack 是构建工具中的一种. 所谓构建,就是将资源转成浏览器可以识别的.比如我们用 less.es6 写代码,浏览器不能识别 less ...

  7. x265编码命令

    CQP: #/bin/bash ./x265 --input FourPeople_1280x720_60.yuv --input-res 1280x720 --fps 60 --qp 40 --fr ...

  8. Mac 将 App 程序打包成为 dmg

    用最简单的打包方式,将自己开发的App打包成为DMG,实现共享分发,快速安装 1. 新建DMG 打开磁盘工具,新建DMG File->New Image->Blank Image 创建DM ...

  9. [Java] Spring 使用

    背景 JavaEE 应用框架 基于IOC和AOP的结构J2EE系统的框架 IOC(反转控制):即创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象,是Spring的基础 ...

  10. centos8.2-2004

    ~]# cat /etc/*leaseCentOS Linux release 8.2.2004 (Core)NAME="CentOS Linux"VERSION="8 ...