CAD& CG 2020 胡事民教授—开源框架Jittor的创新与探索
题目:深度学习框架“计图”的创新与探索
报告人:胡事民
报告人简介:胡事民,清华大学计算机系教授,主要研究方向为计算机图形学、虚拟现实、智能信息处理和系统软件等。
报告简介:深度学习框架是现代人工智能算法开发和应用的基本支撑框架,自主可控的深度学习框架是推动中国人工智能更好发展的必然要求。国外主流深度学习框架基于开源开放的生态环境,已经构建起了完整的产业链和庞大用户群体。计图是国内首个由高校主导的开源深度学习框架。计图基于所提出的“统一计算图”,创新地使用了元算子融合和动态编译技术,目前在多种任务性能上超越国外主流平台。除此之外,计图框架还在易用性、灵活性以及模型算法覆盖度上做了大量改进,旨在降低用户学习成本,吸引更多用户,构建自己的开源深度学习生态。本报告拟介绍计图(Jittor)平台的整体架构和多项创新技术,分享计图框架的开源历程和发展思路,并探讨中国开源深度学习框架的未来发展。
机器学习框架(平台)是人工智能的核心技术
- 负责机器学习模型的训练和推理
- 管理着人工智能应用所需要的大规模数据和模型
- 负责底层计算设备调度以及资源申请


机器学习平台的难度在哪里?
- 对机器学习算法的深刻理解
- 对图形图像应用的精准把握
- 对底层系统软件的巧妙应用


创新点一:统一计算图
- 结合静态图高效和动态图易用的特点
- 静态图(TensorFlow):一次性把全图发送到计算设备上运行
- 动态图(Pytorch):将算子动态地发送到计算设备上运行
- 动态切分 => 静态子图,静态子图做优化
- 统一计算图是完成了多种统一的计算图
- 统一动态图和静态图,易用、同时高效
- 统一管理前向反向图,支持高阶导数
- 统一管理CPU-GPU内存,突破GPU显存限制
- 统一同步异步运行接口,使得数据读取,内存拷贝,模型计算可以同时进行,提升性能
- 统一管理多次迭代的计算图,使得框架可以实现跨迭代的融合优化
- 结合静态图高效和动态图易用的特点
创新点二:18个元算子、元算子融合
- Tensorflow算子数量: 2000+,PyTorch算子数量: 700+;庞大的算子库维护,
优化困难 - 将三类元算子(重索引、重索引化简、元素级)进行融合形成深度学习所需要的算子
- 重索引算子(一对多)——广播、填补、切分
- 重索引化简算子(多对一)——累乘、累加、取均值
- 元素级算子(一对一)
- 元算子是反向传播闭包(元算子的反向传播也是元算子)
- 在反向传播过程中,算子可自动对应生成,重索引算子—重索引化简算子、元素级算子—元素级算子
- 元算子可以覆盖绝大多数深度学习算子,对于元算子无法覆盖的算子,计图提供Code算子(Python中内联C++代码),完成100%算子覆盖
- Tensorflow算子数量: 2000+,PyTorch算子数量: 700+;庞大的算子库维护,
6 大特色
- 动态编译
- 内置的元算子编译器,可将Python代码动态编译高性能C++代码
- 内置LLVM兼容的优化编译遍(Pass),根据硬件设备,自动优化动态编译的代码
- 统一内存
- 将显存和CPU内存统一,当深度学习模型将显存耗尽时,将使用CPU内存来弥补。
- 骨干网络
- 已经支持的骨干网络:AlexNet;VGG;ResNet;SqueezeNet;Incept ion;Goog leNet;Shuff leNet;Mobi leNet;MnasNet;Res2Net
- 模型库
- 2020年将发布27中主流GAN、语义分割、检测库、3D点云库、3D网格库等
- 模型转换
- 提供工具可以将Pytorch代码一键转码为Jittor
- 分布式
- 无需修改训练代码,只需修改启动命令;自动数据并行,实现多卡训练。
- 动态编译
最新进展
- Res2Net、PointNet++,DeepFaceDrawing
图形学新的机遇
- 可微编程(可微光栅化渲染、可微蒙特卡洛光线追踪、可微物理模拟)
CAD& CG 2020 胡事民教授—开源框架Jittor的创新与探索的更多相关文章
- 计算机图形学 opengl版本 第三版------胡事民 第四章 图形学中的向量工具
计算机图形学 opengl版本 第三版------胡事民 第四章 图形学中的向量工具 一 基础 1:向量分析和变换 两个工具 可以设计出各种几何对象 点和向量基于坐标系定义 拇指指向z轴正 ...
- 计算机图形学 opengl版本 第三版------胡事民 第三章更多的绘图工具
opengl 计算机图形学 第三版 第二部分 第三章更多的绘图工具 3.1 概述 第2章中 我们绘图使用的是屏幕窗口的基础坐标系 以像素为单位 屏幕坐标从左下角x从0延伸到scr ...
- “开源、共享、创新” 2020 中国.NET开发者大会小结
大会的新闻稿在2020年12月31日正式发布:开源·共享·创新|2020年中国.NET开发者大会圆满收官! , 本文是这篇新闻的补充性文章,仅代表个人对大会的各方面分享内容的一个小结. 在2019年上 ...
- CVPR 2020目标跟踪多篇开源论文(上)
CVPR 2020目标跟踪多篇开源论文(上) 1. SiamBAN:面向目标跟踪的Siamese Box自适应网络 作者团队:华侨大学&中科院&哈工大&鹏城实验室&厦门 ...
- CVPR 2020目标跟踪多篇开源论文(下)
CVPR 2020目标跟踪多篇开源论文(下) 6. Cooling-Shrinking Attack: Blinding the Tracker with Imperceptible Noises 作 ...
- Pyhton开源框架(加强版)
info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...
- Python开源框架
info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...
- 【安卓网络请求开源框架Volley源码解析系列】定制自己的Request请求及Volley框架源码剖析
通过前面的学习我们已经掌握了Volley的基本用法,没看过的建议大家先去阅读我的博文[安卓网络请求开源框架Volley源码解析系列]初识Volley及其基本用法.如StringRequest用来请求一 ...
- Android开源框架Afinal第一篇——揭开圣女的面纱
Android开源框架Afinal第一篇——揭开圣女的面纱 分类: Android开源框架哪点事2013-09-02 14:25 260人阅读 评论(0) 收藏 举报 Afinal 这是Afinal在 ...
随机推荐
- ASP调用WEBSERVICE并对返回结果进行解析时遇到的问题
项目上用动易平台做新闻发布网站,动易平台是用ASP做的,期间需要根据当前登录的用户,取其他系统比如OA的待办事项进行列表展示,OA组的同事给了我一个WSDL接口,百度了很多ASP调用webservic ...
- vue 多环境打包
https://cli.vuejs.org/zh/guide/mode-and-env.html#%E6%A8%A1%E5%BC%8F 模式 模式是 Vue CLI 项目中一个重要的概念.默认情况下, ...
- 二.spring boot第一个web服务
通过<一.spring boot初始化项目>我们已经会初始化spring boot项目,那本篇文章就说明下初始化项目的具体内容,并编写第一个Hello页面. 项目结构 mvnw.mvnw. ...
- C#中TextBox设置readonly不能读取数据问题
在ASP.NET中前端设置控件TextBox的属性为Readonly="True"时,如果之前有设定初始值,或通过JS方式给其赋值后,在后台访问其Text值却无法获取,这种问题的解 ...
- java面试题0004-在一个类上是否可以用abstract和final同时加以修饰?
我们先用提干两个修饰词中的任意一个创建一个类 package components.javaTest.day4_20200910; /** * Question004: * java面试题0004-在 ...
- transition实现图片轮播
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- oracle之DML和DDL语句的其他用法
DML和DDL语句的其他用法 17.1 DML语句-MERGE 作用:把数据从一个表复制到另一个表,插入新数据或替换掉老数据. Oracle 10g中MERGE有如下一些改进: 1.UPDATE或IN ...
- 串(string)
题目描述 给定一个由小写字母组成的字符串s,每次你可以删去它的一个非回文子串, 求删成空串的最小次数. 输入输出格式 输入格式: 第一行一个整数 t 表示数据组数. 每组数据第一行一个整数 n表示字符 ...
- Mybatis是如何将Mapper接口注册到Spring IoC的
1. 前言 有时候我们需要自行定义一些注解来标记某些特定功能的类并将它们注入Spring IoC容器.比较有代表性的就是Mybatis的Mapper接口.假如有一个新的需求让你也实现类似的功能你该如何 ...
- HTML+CSS实现大盒子在小盒子的展示范围内进行滚动展示
HTML+CSS实现大盒子在小盒子的展示范围内进行滚动展示 1.效果展示: 2.主要代码:样式: overflow:auto; 3.如果想要消除对应的滚动条: .out::-webkit-scroll ...