人工智能顶级会议最佳论文里的“DaDianNao”是什么鬼?
最近对人工智能领域的 AI 加速芯片感兴趣,在翻阅 Google 的第一代 TPU 论文时,在相关工作中看到了 DaDianNao,PuDianNao,ShiDianNao。看的我一脸懵逼,这是什么?汉语拼音吗?后来经过搜索,发现这是中科院计算所的一系列研究成果,后来直接催生了国内芯片独角兽 -- 寒武纪的诞生。
故事得从20年前说起,当时江西南昌有俩亲兄弟,哥哥叫陈云霁,弟弟陈天石。他们分别于97、01 年先后考入中国科学大学少年班学习,后来攻读研究生时,哥哥在计算所跟胡伟武(龙芯之父)做芯片方面研究,弟弟在中科大跟着陈国良、姚新做人工智能算法方面研究。08年的时候,他俩想合起来做一些人工智能芯片方面的事情。
2012年到2014年,俩兄弟和 当时任职于法国巴黎综合理工学院(Inria Saclay)的 Olivier Temam 教授一起合作,做人工智能加速器的研究。最开始叫做 electric brain,是一个电子的大脑,但是外籍教授 Olivier 说起个中国的名字,这样别人会觉得外国的东西,很有意思,很先进。于是就有了 DianNao 这个汉语拼音的名字了。中科院有专门页面介绍“DianNao”项目,项目的核心是提出了一系列定制的AI加速器的设计方案。
当时他们研究领域想要解决的三大矛盾是:
- 有限规模的硬件 vs 任意规模的算法:硬件出厂后就固定了,但是算法是研究员自己定义的,会是任意的
- 结构固定的硬件 vs 千变万化的算法:算法有图像、语音、自然语言处理等领域,而硬件构造在生产之后就固定了
- 能耗受限的硬件 vs 精度优先的算法:硬件功耗受制于场景是受限的,但是算法研究员希望精度越高越好
陈氏兄弟的解决之道:
- 虚拟化:没有让硬件运算单元和算法神经元一一对应起来,而是采用了对小尺度神经网络分时复用的方法来支持任意规模的神经网络
- 智能指令集:自动化抽取各种深度学习算法共性基本算子,设计首个深度学习指令集来高效处理算法。
- 利用神经网络对于计算误差的容忍能力,进行稀疏化神经网络处理,这样降低了功耗,提高了精度。
他们设计出了第一个加速器 DianNao--电脑。第二个加速器叫DaDiannao -- 大电脑。这个是 DianNao 的多核版本,通过多片设计,可以将较大的模型放在加速器(芯片)的内存上运行,提高效率。第三个加速器ShiDianNao -- 视电脑:将 AI 加速器与传感器直连,从而减少内存通讯的开销,是属于端/边侧摄像头上的 AI 加速器。电脑和大电脑只能做深度学习处理,还有很多其他的人工智能算法, 怎么去支持?于是就有了 PuDianNao -- 普电脑。它比较普世,能支持很多机器学习算法。PuDianNao 也是 DianNao 项目的最后一个工作。我大胆猜测是因为再接着做下去,围绕电脑起名很困难。后来16年时他们提出了国际首个神经网络通用指令集 DianNaoYu -- 电脑语。这些指令集相当于深度学习算法界的乐高积木,是算法研究员与加速器打交道的唯一接口。
他们当时的 DianNao 论文获得了这个领域最重要的国际会议 -- ASPLOS 的最佳论文奖。这也是亚洲地区,第一次在计算机体系结构的这种顶尖的国际会议上拿奖。他们研究最大的创新点在于前人做的不是一个完备的处理器,只能说是一个神经网络功能部件,只适用于特定大小的神经网络。而他们的工作是一个真正意义上完备的处理器,能够支持任意规模的神经网络。打个比方,只能处理两个数相加,而不能处理10000甚至任意个数相加的硬件,只能叫加法器,而不能叫处理器。
后来弟弟陈天石从中科院出来创办了寒武纪,哥哥也一起合伙。但半年之后,哥哥因为觉得还是喜欢搞科研,所以又回到了中科院。
对上述内容感兴趣的朋友可以去看看 B 站上 陈云霁的智能之芯视频。大佬演讲风趣幽默,着装朴实,让人印象深刻。有两篇陈天石的采访放到了文末,从文章来看很清楚自己的能力边界,他强调了多次,做好本职工作,好好搬砖,感觉就是对有志青年的淳淳教导。
彩蛋
2015 年,陈天石有一次“问我任何事”的活动,我翻看了里面的问题,有好几个问题非常有意思。比如有人会问中科大的神通、天才和普通人的区别,还有家长因为孩子无法成为神通而苦恼。对这些问题,他没有一贯我们看到的好为人师的印象,回答很有借鉴意义,能给现在焦虑的家长们一些启发,点击阅读原文可以查看。
参考资料
欢迎关注我的微信公众账号,会在第一时间更新,博客园上只有部分文章会发布
人工智能顶级会议最佳论文里的“DaDianNao”是什么鬼?的更多相关文章
- 阿里云安全研究成果入选人工智能顶级会议 IJCAI 2019, 业界首次用AI解决又一难题!
8月10日至8月16日,国际人工智能组织联合会议IJCAI 2019(International Joint Conference on Artificial Intelligence 2019)在中 ...
- 在计算机视觉与人工智能领域,顶级会议比SCI更重要(内容转)
很多领域,SCI是王道,尤其在中国,在教师科研职称评审和学生毕业条件中都对SCI极为重视,而会议则充当了补充者的身份.但是在计算机领域,尤其是人工智能与机器学习领域里,往往研究者们更加青睐于会议 我无 ...
- 计算机顶级会议Rankings && 英文投稿的一点经验
英文投稿的一点经验[转载] From: http://chl033.woku.com/article/2893317.html 1. 首先一定要注意杂志的发表范围, 超出范围的千万别投,要不就是浪费时 ...
- InfoQ一波文章:AdaSearch/JAX/TF_Serving/leon.bottou.org/Neural_ODE/NeurIPS_2018最佳论文
和 Nested Partition 有相通之处? 伯克利提出 AdaSearch:一种用于自适应搜索的逐步消除方法 在机器学习领域的诸多任务当中,我们通常希望能够立足预先给定的固定数据集找出问题的答 ...
- ICRA 2019最佳论文公布 李飞飞组的研究《Making Sense of Vision and Touch: Self-Supervised Learning of Multimodal Representations for Contact-Rich Tasks》获得了最佳论文
机器人领域顶级会议 ICRA 2019 正在加拿大蒙特利尔举行(当地时间 5 月 20 日-24 日),刚刚大会公布了最佳论文奖项,来自斯坦福大学李飞飞组的研究<Making Sense of ...
- AAAI 2021 最佳论文公布
作者:Synced 翻译:仿佛若有光 第三十五届 AAAI 人工智能会议 (AAAI-21) 以虚拟会议的形式拉开帷幕.组委会在开幕式上公布了最佳论文奖和亚军.三篇论文获得了最佳论文奖,三篇被评为 ...
- FPGA 17最佳论文导读 ESE: Efficient Speech Recognition Engine with Compressed LSTM on FPGA
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.机器学习技术感兴趣的同学加入. 后面陆续写一些关于神经网络加 ...
- ACM TOMM 2017最佳论文:让AI接手繁杂专业的图文排版设计工作
编者按:你是否曾经为如何创作和编辑一篇图文并茂.排版精美的文章而烦恼?或是为缺乏艺术灵感和设计思路而痛苦?AI技术能否在艺术设计中帮助到我们?今天我们为大家介绍的这篇论文,“Automatic Gen ...
- zz2019年主动学习有哪些进展?答案在这三篇论文里
2019年主动学习有哪些进展?答案在这三篇论文里 目前推广应用的机器学习方法或模型主要解决分类问题,即给定一组数据(文本.图像.视频等),判断数据类别或将同类数据归类等,训练过程依赖于已标注类别的训练 ...
随机推荐
- java+opencv人脸识别程序2.0
由于第一次写的太粗糙了,所以又修改了一下,详细的更改如下: @ 目录 更改 窗口问题 识别问题 相似度对比 仍然存在的问题 人脸信息显示 图片质量 更改 优化了一下界面风格 窗口问题 原来是在主界面外 ...
- JavaScript学习系列博客_26_JavaScript 数组的一些方法
数组的一些方法 - push() - 用来向数组的末尾添加一个或多个元素,并返回数组新的长度 - 语法:数组.push(元素1,元素2,元素N) - pop() - 用来删除数组的最后一个元素,并返回 ...
- centos yum 安装golang
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum install golan ...
- Springboot中登录后关于cookie和session拦截案例
目录 一.前言 二.利用Cookie进行登录验证 一.前言 1.简单的登录验证可以通过Session或者Cookie实现. 2.每次登录的时候都要进数据库校验下账户名和密码,只是加了cookie 或s ...
- Spring Security使用数据库数据完成认证--练气后期2
写在前面 没错,这篇文章还是练气后期!但作者我相信筑基指日可待! 在前一篇文章当中,我们简单地分析了一下Spring Security的认证流程,知道了如果想要实现对自己用户数据(账户.角色.权限)的 ...
- #企业项目实战 .Net Core + Vue/Angular 分库分表日志系统六 | 最终篇-通过AOP自动连接数据库-完成日志业务
教程预览 01 | 前言 02 | 简单的分库分表设计 03 | 控制反转搭配简单业务 04 | 强化设计方案 05 | 完善业务自动创建数据库 06 | 最终篇-通过AOP自动连接数据库-完成日志业 ...
- Entity Framework 6 实体某些字段根据模型状态进行自动更新内容
1.定义基础实体对象 public class BaseEntity { public int Id { get; set; } public DateTime? CreateTime { get; ...
- JDK源码分析-ArrayList
ArrayList 储存结构 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; transient Objec ...
- 2. Bean Validation声明式校验方法的参数、返回值
你必须非常努力,才能干起来毫不费力.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众 ...
- 阿里Java中级开发测试相关试题及答案
------------恢复内容开始------------ 1.JSP文件上传的HTML标签代码定义是? A. <input type="text" name=" ...