最近对人工智能领域的 AI 加速芯片感兴趣,在翻阅 Google 的第一代 TPU 论文时,在相关工作中看到了 DaDianNao,PuDianNao,ShiDianNao。看的我一脸懵逼,这是什么?汉语拼音吗?后来经过搜索,发现这是中科院计算所的一系列研究成果,后来直接催生了国内芯片独角兽 -- 寒武纪的诞生。

故事得从20年前说起,当时江西南昌有俩亲兄弟,哥哥叫陈云霁,弟弟陈天石。他们分别于97、01 年先后考入中国科学大学少年班学习,后来攻读研究生时,哥哥在计算所跟胡伟武(龙芯之父)做芯片方面研究,弟弟在中科大跟着陈国良、姚新做人工智能算法方面研究。08年的时候,他俩想合起来做一些人工智能芯片方面的事情。

2012年到2014年,俩兄弟和 当时任职于法国巴黎综合理工学院(Inria Saclay)的 Olivier Temam 教授一起合作,做人工智能加速器的研究。最开始叫做 electric brain,是一个电子的大脑,但是外籍教授 Olivier 说起个中国的名字,这样别人会觉得外国的东西,很有意思,很先进。于是就有了 DianNao 这个汉语拼音的名字了。中科院有专门页面介绍“DianNao”项目,项目的核心是提出了一系列定制的AI加速器的设计方案。

当时他们研究领域想要解决的三大矛盾是:

  1. 有限规模的硬件 vs 任意规模的算法:硬件出厂后就固定了,但是算法是研究员自己定义的,会是任意的
  2. 结构固定的硬件 vs 千变万化的算法:算法有图像、语音、自然语言处理等领域,而硬件构造在生产之后就固定了
  3. 能耗受限的硬件 vs 精度优先的算法:硬件功耗受制于场景是受限的,但是算法研究员希望精度越高越好

陈氏兄弟的解决之道:

  1. 虚拟化:没有让硬件运算单元和算法神经元一一对应起来,而是采用了对小尺度神经网络分时复用的方法来支持任意规模的神经网络
  2. 智能指令集:自动化抽取各种深度学习算法共性基本算子,设计首个深度学习指令集来高效处理算法。
  3. 利用神经网络对于计算误差的容忍能力,进行稀疏化神经网络处理,这样降低了功耗,提高了精度。

他们设计出了第一个加速器 DianNao--电脑。第二个加速器叫DaDiannao -- 大电脑。这个是 DianNao 的多核版本,通过多片设计,可以将较大的模型放在加速器(芯片)的内存上运行,提高效率。第三个加速器ShiDianNao -- 视电脑:将 AI 加速器与传感器直连,从而减少内存通讯的开销,是属于端/边侧摄像头上的 AI 加速器。电脑和大电脑只能做深度学习处理,还有很多其他的人工智能算法, 怎么去支持?于是就有了 PuDianNao -- 普电脑。它比较普世,能支持很多机器学习算法。PuDianNao 也是 DianNao 项目的最后一个工作。我大胆猜测是因为再接着做下去,围绕电脑起名很困难。后来16年时他们提出了国际首个神经网络通用指令集 DianNaoYu -- 电脑语。这些指令集相当于深度学习算法界的乐高积木,是算法研究员与加速器打交道的唯一接口。

他们当时的 DianNao 论文获得了这个领域最重要的国际会议 -- ASPLOS 的最佳论文奖。这也是亚洲地区,第一次在计算机体系结构的这种顶尖的国际会议上拿奖。他们研究最大的创新点在于前人做的不是一个完备的处理器,只能说是一个神经网络功能部件,只适用于特定大小的神经网络。而他们的工作是一个真正意义上完备的处理器,能够支持任意规模的神经网络。打个比方,只能处理两个数相加,而不能处理10000甚至任意个数相加的硬件,只能叫加法器,而不能叫处理器。

后来弟弟陈天石从中科院出来创办了寒武纪,哥哥也一起合伙。但半年之后,哥哥因为觉得还是喜欢搞科研,所以又回到了中科院。

对上述内容感兴趣的朋友可以去看看 B 站上 陈云霁的智能之芯视频。大佬演讲风趣幽默,着装朴实,让人印象深刻。有两篇陈天石的采访放到了文末,从文章来看很清楚自己的能力边界,他强调了多次,做好本职工作,好好搬砖,感觉就是对有志青年的淳淳教导。

彩蛋

2015 年,陈天石有一次“问我任何事”的活动,我翻看了里面的问题,有好几个问题非常有意思。比如有人会问中科大的神通、天才和普通人的区别,还有家长因为孩子无法成为神通而苦恼。对这些问题,他没有一贯我们看到的好为人师的印象,回答很有借鉴意义,能给现在焦虑的家长们一些启发,点击阅读原文可以查看。

参考资料

  1. 甲小姐对话陈天石:AI芯片市场广阔,寒武纪朋友遍天下 | 甲子光年
  2. 甲小姐对话陈天石:通往伟大芯片公司的赛程很长
  3. 智能之芯

欢迎关注我的微信公众账号,会在第一时间更新,博客园上只有部分文章会发布

人工智能顶级会议最佳论文里的“DaDianNao”是什么鬼?的更多相关文章

  1. 阿里云安全研究成果入选人工智能顶级会议 IJCAI 2019, 业界首次用AI解决又一难题!

    8月10日至8月16日,国际人工智能组织联合会议IJCAI 2019(International Joint Conference on Artificial Intelligence 2019)在中 ...

  2. 在计算机视觉与人工智能领域,顶级会议比SCI更重要(内容转)

    很多领域,SCI是王道,尤其在中国,在教师科研职称评审和学生毕业条件中都对SCI极为重视,而会议则充当了补充者的身份.但是在计算机领域,尤其是人工智能与机器学习领域里,往往研究者们更加青睐于会议 我无 ...

  3. 计算机顶级会议Rankings && 英文投稿的一点经验

    英文投稿的一点经验[转载] From: http://chl033.woku.com/article/2893317.html 1. 首先一定要注意杂志的发表范围, 超出范围的千万别投,要不就是浪费时 ...

  4. InfoQ一波文章:AdaSearch/JAX/TF_Serving/leon.bottou.org/Neural_ODE/NeurIPS_2018最佳论文

    和 Nested Partition 有相通之处? 伯克利提出 AdaSearch:一种用于自适应搜索的逐步消除方法 在机器学习领域的诸多任务当中,我们通常希望能够立足预先给定的固定数据集找出问题的答 ...

  5. 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 ...

  6. AAAI 2021 最佳论文公布

    ​ 作者:Synced 翻译:仿佛若有光 第三十五届 AAAI 人工智能会议 (AAAI-21) 以虚拟会议的形式拉开帷幕.组委会在开幕式上公布了最佳论文奖和亚军.三篇论文获得了最佳论文奖,三篇被评为 ...

  7. FPGA 17最佳论文导读 ESE: Efficient Speech Recognition Engine with Compressed LSTM on FPGA

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.机器学习技术感兴趣的同学加入. 后面陆续写一些关于神经网络加 ...

  8. ACM TOMM 2017最佳论文:让AI接手繁杂专业的图文排版设计工作

    编者按:你是否曾经为如何创作和编辑一篇图文并茂.排版精美的文章而烦恼?或是为缺乏艺术灵感和设计思路而痛苦?AI技术能否在艺术设计中帮助到我们?今天我们为大家介绍的这篇论文,“Automatic Gen ...

  9. zz2019年主动学习有哪些进展?答案在这三篇论文里

    2019年主动学习有哪些进展?答案在这三篇论文里 目前推广应用的机器学习方法或模型主要解决分类问题,即给定一组数据(文本.图像.视频等),判断数据类别或将同类数据归类等,训练过程依赖于已标注类别的训练 ...

随机推荐

  1. “程序包com.sun.org.apache.xml.internal.security.utils不存在”的问题

    方法一(eclipse): 网上大神的回答: 自己写的程序是不建议用com.sun这个玩意儿的..这东西属于“Deprecated and restricted API”.. 而且各种com.sun的 ...

  2. max user processes 导致的服务器大量close_wait问题解决过程

    1.背景: 由于现网业务量增长过快,需要扩容应用程序服务器,分担来自前端的访问压力. 2.故障: 部署好业务启动程序后,发现程序运行一小会后不产生新的日志和数据. 3.查问题过程: 1.首先查看程序运 ...

  3. 计算机网络-网络层(6)ICMP协议

    互联网控制报文协议(ICMP,Internet Control Message Protocol),被主机和路由器用来彼此沟通网络层的信息 ICMP报文是承载在IP分组中的,即lCMP报文是作为IP有 ...

  4. 表单和 v-model

    思维导图 form 做表单一定要用 form+button组合 <template> <div id="app"> 登录 <form @submit. ...

  5. 查询Linux CPU架构

    一.背景 Ubuntu上需要安装测试个软件wkhtmltopdf,但是下载时,需要知道系统架构,故做记录 二.查看linux架构 dpkg 命令 dpkg 的命令可用于查看 Debian/ Ubunt ...

  6. Windows 远程桌面鼠标光标不可见

    一.问题描述 通过在云端的主机上部署 frp 服务,实现「使用Windows 远程桌面(RDP)从互联网侧访问内网的主机」.但是,使用 Windows 自带的远程桌面工具 RDP 连接到另一台计算机时 ...

  7. Android 引入第三方类库

  8. LCA详解

    LCA,即最近公共祖先,在图论中应用比较广泛. LCA的定义如下:给定一个有根树,若节点$z$同时是节点$x$和节点$y$的祖先,则称$z$是$x,y$的公共祖先:在$x,y$的所有公共祖先当中深度最 ...

  9. git ssh配置

    SSH KEY的配置 生成 SSH KEY ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 文件在哪里生成的 C:\用户 ...

  10. Three.js学习1_快速入门

    快速上手, 搭建第一个3D场景 最重要的一步, 先下载three.js, 引入网页中 <script src="./three.js"></script> ...