来源:微软研究院AI头条

概要:1月17日,院友袁进辉博士回到微软亚洲研究院做了题为《打造最强深度学习引擎》的报告,分享了深度学习框架方面的技术进展。

1月17日,院友袁进辉博士回到微软亚洲研究院做了题为《打造最强深度学习引擎》的报告,分享了深度学习框架方面的技术进展。报告中主要讲解了何为最强的计算引擎?专用硬件为什么快?大规模专用硬件面临着什么问题?软件构架又应该解决哪些问题?

首先,我们一起来开一个脑洞:想象一个最理想的深度学习引擎应该是什么样子的,或者说深度学习引擎的终极形态是什么?看看这会给深度学习框架和AI专用芯片研发带来什么启发。

以大家耳熟能详的卷积神经网络CNN 为例,可以感觉一下目前训练深度学习模型需要多少计算力。下方这张表列出了常见CNN模型处理一张图片需要的内存容量和浮点计算次数,譬如VGG-16网络处理一张图片就需要16Gflops。值得注意的是,基于ImageNet数据集训练CNN,数据集一共大约120万张图片,训练算法需要对这个数据集扫描100遍(epoch),这意味着10^18次浮点计算,即1exaFlops。简单演算一下可发现,基于一个主频为2.0GHz的CPU core来训练这样的模型需要好几年的时间。

专用硬件比通用硬件(如CPU、GPU)快,有多种原因,主要包括:(1)通用芯片一般经历“取指-译码-执行”(甚至包括“取数据”)的步骤才能完成一次运算,专用硬件大大减小了“取指-译码”等开销,数据到达即执行;(2)专用硬件控制电路复杂度低,可以在相同的面积下集成更多对运算有用的器件,可以在一个时钟周期内完成通用硬件需要数千上万个时钟周期才能完成的操作;(3)专用硬件和通用硬件内都支持流水线并行,硬件利用率高;(4)专用硬件片内带宽高,大部分数据在片内传输。显然,如果不考虑物理现实,不管什么神经网络,不管问题的规模有多大,都实现一套专用硬件是效率最高的做法。问题是,这行得通吗?

现实中,不管是通用硬件(如GPU)还是专用硬件(如TPU) 都可以通过高速互联技术连接在一起,通过软件协调多个设备来完成大规模计算。使用最先进的互联技术,设备和设备之间传输带宽可以达到100Gbps或者更多,这比设备内部带宽低上一两个数量级,不过幸好,如果软件“调配得当”,在这个带宽条件下也可能使得硬件计算饱和。当然,“调配得当”技术挑战极大,事实上,单个设备速度越快,越难把多个设备“调配得当”。

当前深度学习普遍采用随机梯度下降算法(SGD),一般一个GPU处理一小块儿数据只需要100毫秒的时间,那么问题的关键就成了,“调配”算法能否在100毫秒的时间内为GPU处理下一块数据做好准备,如果可以的话,那么GPU就会一直保持在运算状态,如果不可以,那么GPU就要间歇性的停顿,意味着设备利用率降低。理论上是可以的,有个叫运算强度(Arithmetic intensity)的概念,即flops per byte,表示一个字节的数据上发生的运算量,只要这个运算量足够大,意味着传输一个字节可以消耗足够多的计算量,那么即使设备间传输带宽低于设备内部带宽,也有可能使得设备处于满负荷状态。进一步,如果采用比GPU更快的设备,那么处理一块儿数据的时间就比100毫秒更低,譬如10毫秒,在给定的带宽条件下,“调配”算法能用10毫秒的时间为下一次计算做好准备吗?事实上,即使是使用不那么快(相对于TPU 等专用芯片)的GPU,当前主流的深度学习框架在某些场景(譬如模型并行)已经力不从心了。

一个通用的深度学习软件框架要能对任何给定的神经网络和可用资源都能最高效的“调配”硬件,这需要解决三个核心问题:(1)资源分配,包括计算核心,内存,传输带宽三种资源的分配,需要综合考虑局部性和负载均衡的问题;(2)生成正确的数据路由(相当于前文想象的专用硬件之间的连线问题);(3)高效的运行机制,完美协调数据搬运和计算,硬件利用率最高。

事实上,这三个问题都很挑战,本文暂不讨论其解法,假设我们能够解决这些问题的话,会有什么好处呢?

假设我们能解决前述的三个软件上的难题,那就能“鱼与熊掌兼得”:软件发挥灵活性,硬件发挥高效率,任给一个深度学习任务,用户不需要重新连线,就能享受那种“无限大专用硬件”的性能,何其美好。更令人激动的是,当这种软件得以实现时,专用硬件可以比现在所有AI芯片都更简单更高效。读者可以先想象一下怎么实现这种美好的前景。

让我们重申一下几个观点:(1)软件真的非常关键;(2)我们对宏观层次(设备和设备之间)的优化更感兴趣;(3)深度学习框架存在一个理想的实现,正如柏拉图心中那个最圆的圆,当然现有的深度学习框架还相距甚远;(4)各行各业的公司,只要有数据驱动的业务,最终都需要一个自己的“大脑”,这种“大脑”不应该只被少数巨头公司独享。

未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。由互联网进化论作者,计算机博士刘锋与中国科学院虚拟经济与数据科学研究中心石勇、刘颖教授创建。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

深度学习引擎的终极形态是什么?相关推荐

  1. 科普丨深度学习引擎的终极形态是什么?

    来源:微软研究院AI头条 概要:近日,院友袁进辉博士回到微软亚洲研究院做了题为<打造最强深度学习引擎>的报告,分享了深度学习框架方面的技术进展. 近日,院友袁进辉博士回到微软亚洲研究院做了 ...

  2. 含代码 | 支付宝如何优化移动端深度学习引擎?

    阿里妹导读:移动端深度学习在增强体验实时性.降低云端计算负载.保护用户隐私等方面具有天然的优势,在图像.语音.安全等领域具有越来越广泛的业务场景.考虑到移动端资源的限制,深度学习引擎的落地面临着性能. ...

  3. 让AI简单且强大:深度学习引擎OneFlow技术实践

    https://www.toutiao.com/a6683330972982706702/ 本文内容节选自由msup主办的第七届TOP100summit,北京一流科技有限公司首席科学家袁进辉(老师木) ...

  4. Jarvis-拍立淘里面的深度学习引擎

    介绍 深度学习的原理?局部响应归一化的作用?兄弟今天不是来讨论这个的,那都是科学家和算法同学的事儿.作为一个深度学习引擎,使命只有一个--就是快速和准确的计算.那怎么才能快呢?在编程技能和算法技能没有 ...

  5. 深度解析】Google第二代深度学习引擎TensorFlow开源(CMU邢波独家点评、白皮书全文、视频翻译)

    新智元原创1 作者:王嘉俊 王婉婷 TensorFlow 是 Google 第二代深度学习系统,今天宣布完全开源.TensorFlow 是一种编写机器学习算法的界面,也可以编译执行机器学习算法的代码. ...

  6. 人工智能 信道估计 深度学习_DEMO演示|基于IVP02D 人工智能工作站的深度学习引擎,实现人群热力估计...

    近年来,随着深度学习在计算机视觉领域获得广泛应用,算法框架也日渐成熟,例如基于深度神经网络的人群密度分析,通过自动学习能获得更有效的人群特征,相较于传统方法取得了一定的提高. AI小知识 人群密度分析 ...

  7. 《自然-机器智能》:神经形态技术可使大型深度学习网络节能16倍

    来源: 学术头条 受生物大脑机制的启发,研究人员一直在提高人工神经网络的性能效率和计算要求.一项新的研究表明,对于大型深度学习网络,神经形态技术的能源效率有望达到其他人工智能系统的 16 倍. 格拉茨 ...

  8. 35 万行代码,旷视重磅开源天元深度学习框架 ,四大特性实现简单开发

    [导读]2020 年 3 月 25 日,人工智能企业旷视科技举办线上发布会,旷视联合创始人兼 CTO 唐文斌宣布正式开源其 AI 生产力平台 Brain++ 的核心组件--天元(MegEngine). ...

  9. 用 Java 训练深度学习模型,原来这么简单

    作者 | DJL-Keerthan&Lanking 来源 | HelloGitHub 头图 | CSDN下载自东方IC 前言 很长时间以来,Java 都是一个很受企业欢迎的编程语言.得益于丰富 ...

最新文章

  1. caffe安装_keras/tensorflow1.x模型转换为caffe推理模型
  2. 03SkypeForBusiness2015--Lync2010-2013共存部署Lync2013前端
  3. html怎么添加图片幻灯,使用CSS3实现的超酷幻灯图片效果
  4. c# rar解压大小_Linux压缩解压指令-bzip2、xz、compress、rar
  5. NDK编译doubango时出现错误:undefined reference to ‘stderr‘
  6. 达梦数据库可视化管理工具的配置
  7. C语言全局变量和数组的应用
  8. 低配电脑Win10哪个版本好用?
  9. 7个向上管理技巧,让你的职场一路开挂
  10. maya linux 安装教程视频,Maya快捷键插件增强工具ZooTools Pro 2.2.4 for Maya Win/Linux+ Assets pack 2.3+视频教程...
  11. vmware mac 系统进入恢复模式 关闭SIP
  12. linux系统文件复制过程时长,Linux系统I/O操作与零拷贝
  13. 分享50个漂亮的双屏桌面壁纸资源(下篇)
  14. java版我的世界有溺尸_我的世界如何刷溺尸_minecraft溺尸陷阱制作教程 - 我的世界中文站...
  15. 惠普暗影精灵命令中心linux,暗影精灵2成功装上Sierra 12.5正式版
  16. 【AI人工智能绘画 CV】Towards Robust Blind Face Restoration with Codebook Lookup Transformer
  17. python练习17:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
  18. Win7+64位+Msflxgrd.ocx注册
  19. GPGPU-Sim学习(一)-GPGPU-Sim介绍
  20. 7.2.1因特网的链路层与网络层 - 因特网的链路层与网络层

热门文章

  1. 重新标注128万张ImageNet图片:多标签,全面提升模型性能
  2. ACL Fellow 2021名单出炉!华为刘群、中科院自动化所宗成庆当选!
  3. 【资源干货】港中文《深度学习导论》2021课件,李鴻升老师讲授
  4. SAP MM 不常用事务代码MIDO
  5. 物流机器人站上风口!未来市场增长获双引擎加持
  6. 人脸识别门禁在安防行业的发展前景
  7. 如何在Keras中训练大型数据集
  8. 基于Kubernetes 的机器学习工作流
  9. OpenAI联合创始人:AI的极限?我真的不知道!
  10. 关于AI方面创业公司的分析