需求说明:深度学习FPGA实现知识储备

来自:http://ee.ofweek.com/2015-12/ART-8110-2801-29035307.html

深度揭秘百度大脑AI专有芯片 缘何用FPGA而非GPU?

作为全球最大的中文搜索引擎公司,百度在近几年却与系统底层硬件结下了不解之缘。自研万兆交换机与SSD(软件定义SSD),全球首次规模商用ARM服务器……一个互联网服务巨头,在系统底层软硬件创新上不遗余力。而这一次,它再一次将创新的触角延伸到了服务器芯片领域。

  百度自主设计芯片?它要唱的是哪一出?

  百度大脑的“烦恼”

  刚刚落幕的2015世界机器人大会上,形态各异的机器人,让人在大饱眼福的同时,也不禁对未来充满无限想象和期待:机器将拥有近似甚至超过人类的智慧。

  如何让机器拥有如此超凡智慧?关键就是要让它们拥有和人一样会学习、能思考的“大脑”。百度大脑正是这样一个智慧的产物。

  如果你不理解百度大脑是如何成长并拥有智慧的,就试想一下从小到大,人的大脑是如何变得越来越聪明的:

  一方面,从生理构造上看,人脑的各个区域都在不断发展,以使人有更好的能力去认知、去记忆、去学习。百度大脑的软硬件架构以及人工智能等相关技术,就好似这“生理构造”。

  近年来,百度在人工智能,特别是深度学习技术上不断发力,使百度大脑在“生理构造”上拥有了更强大的学习、认知能力。一个月前,在媒体上热炒的“百度语音技术攻克10年难题,取得重大突破”,便是百度在人工智能领域发力的重要作证。而在更早之前,百度就已在人脸识别两个最为权威的国际评测FDDB与LFW中,获双料世界第一。

  另一方面,就是信息。人脑需要不断地获取各种信息、处理信息,并形成知识,才能变得更加聪明。在这一方面,百度大脑拥有着海量信息优势。

  据了解,百度服务覆盖6亿网民,每天要响应60亿次搜索请求,150亿次定位请求,同时还拥有海量社区数据。这些大数据使得百度大脑能够学会更加海量、多维度的知识。

  百度大脑正在不断学习、不断成长,变得越来越聪明。然而,就在这样成长的过程中,百度大脑遇到了“烦恼”:数据和模型规模不断膨胀,需要有更强的计算能力来支撑。不仅如此,出于企业成本考虑,还必须考虑能耗效率(性能/能耗)和成本效率(性能/价格),即在相同能耗或成本下,性能越高。

  如何解决这一问题?三年多前,百度就开始寻求解决方案——

开启秘密项目

  在今年9月份召开的百度世界大会上,百度高级副总裁王劲在接受采访时曾透露,百度已经打造了FPGA版的百度大脑,性能远超此前的版本。“这在当年是百度的一个秘密项目,不过,现在可以对外公开了”。

  王劲所提到的“当年”就是2012年——这一年,面对百度大脑对计算能力的强烈需求,百度决定自主设计深度学习专有的体系结构和芯片。

  说到提升计算性能,很多人会先想到用GPU。“GPU确实能提供较好的计算能力,但对于能耗效率和成本效率而言,它离我们的目标仍存在一定差距。”百度AI专有芯片项目负责人、主任架构师欧阳剑解释道。

  百度对这种差距有着深刻的体会。欧阳剑表示,为了提高深度学习算法的计算速度,他们已经在GPU和CPU上做了很多优化,也发表了一些深度学习算法GPU加速的论文,得到了外界的认可。“经过这些工作,我们更能深刻理解GPU、CPU在深度学习应用中的成本效率、能耗效率离目标间的差距”。

  在充分考量各种芯片的特性后,可编程、低功耗并拥有超强并行计算能力的FPGA走进了百度工程师们的视野。百度开始尝试用FPGA打造AI专有芯片,并成就了第一版AI专有芯片版百度大脑——FPGA版百度大脑。这使得百度成为了全球最早将FPGA规模应用在人工智能领域的公司。

  从在线服务切入,性能提升3~4倍

  人工智能的应用场景,包括云(数据中心)和端(智能设备)两部分;其中,云端又包括离线训和在线服务。离线训练是指利用海量数据,选择合适的训练方法,训练出一个模型。在线服务是指,利用训练出来的模型来响应在线响应用户的请求。端部分也对人工智能有着很大的需求:很多终端设备,也都需要能运行人工智能的算法,能智能地响应外部请求,如无人车、智能摄像头等。

  离线训练、在线服务、智能终端——面对这些细分场景,在项目之初,选择AI专有芯片的切入点成为了重中之重。

  “我们发现,在离线训练上,GPU可以阶段性地满足要求;智能设备虽然炒得火,但时机仍未成熟。而在在线服务方面,对提升计算能力的需求是客观存在且比较急迫的。但GPU因为功耗、成本等原因,不适合线上大规模部署。”欧阳剑道出了彼时决策的过程。

经过深入思考,百度决定率先在在线服务上应用FPGA版百度大脑。

  通过不断地创新、优化,FPGA版百度大脑迭代了许多版本,大脑的计算能力不断提升,功耗不断下降:最终版本比第一个版本功耗下降了约50%。对比近期热炒的超级计算机天河二号,FPGA版百度大脑的能耗效率是天河二号的10倍以上,即在同样功耗下,该版百度大脑的计算性能是天河二号10倍以上。

  随后,FPGA版百度大脑逐步应用在百度产品中,包括语音识别、广告点击率预估模型等。据了解,应用了该版本百度大脑后,语音在线服务、广告点击率预估模型等的计算性能皆提升了3~4倍。

  百度关于FPGA的研究成果也得到了业界的肯定,并于2014年8月在第26届Hotchips 会议(全球体系结构和芯片设计领域的顶尖权威学术会议)上发表相关论文。

  实际上,作为一家搜索引擎公司,同时也是一家O2O公司,百度旨在链接人和信息及服务,其背后有着强大的云计算、大数据和人工智能等技术做支撑。和一般互联网公司不同,百度除了在软件上创新,还进行了大量硬件上的、甚至到芯片级的创新,以此打造一体化技术优势。自主设计更加适合人工智能的AI专有芯片、自研万兆交换机,都是很好的例证。其中的很多创新,国内外大型互联网公司中都没有做过。

  然而,这只是一个开始,许多软硬件创新还在进行中——据了解,百度已经在孕育新版本的百度大脑,在体系结构和芯片领域进行着更大的创新。

整理来自:时间的诗

            </div>

深度学习FPGA实现基础知识2(深度揭秘百度大脑AI专有芯片 缘何用FPGA而非GPU?)相关推荐

  1. kpu 处理器_深度学习及 KPU 基础知识

    深度学习及 KPU 基础知识 1. 阅读完本章文档可以了解什么? 了解深度学习一些基础内容 了解 K210 内部 KPU 的特性 了解 KPU 使用过程中可能会遇到的问题,以及问题的解决方法 2. 概 ...

  2. 处理器_深度学习及 KPU 基础知识

    kpu 处理器_深度学习及 KPU 基础知识_weixin_39909212的博客-CSDN博客深度学习及 KPU 基础知识1. 阅读完本章文档可以了解什么?了解深度学习一些基础内容了解 K210 内 ...

  3. 深度学习图像识别:基础知识与环境搭建

    深度学习图像识别:基础知识与环境搭建 1. 深度学习的基本原理 什么是人工智能? 通过学习掌握了某中技能的机器,我们认为它具备了人工智能 什么是深度学习? 深度学习的概念源于人工神经网络的研究: 含多 ...

  4. 【深度学习系列】基础知识、模型学习

    基础知识 原创 [深度学习]--训练过程 原创 [深度学习]--BN层(batch normalization) 原创 [深度学习]--激活函数(sigmoid.tanh.relu.softmax) ...

  5. 机器学习处理信号分离_[学习笔记]使用机器学习和深度学习处理信号基础知识...

    参考学习:Signal Generation and Preprocessing 本人只是为了了解信号处理的基础知识而做的学习笔记,涉及深度可能不够,有理解错误的地方请大胆指出,感激不尽 一.信号生成 ...

  6. 深度学习:神经网络基础知识总结

    [神经网络基础知识总结]: 定义: 人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connection Model),它 ...

  7. 深度学习几个基础知识

    目录 一.目标检测一步法和两步法 二.锚框(Anchor) 三.深度学习检测器 四.深度学习在计算机图像领域的主要任务: 五.Bounding Box Regression的原理 六.卷积和池化操作各 ...

  8. 深度学习/机器学习入门基础数学知识整理(一):线性代数基础,矩阵,范数等

    前面大概有2年时间,利用业余时间断断续续写了一个机器学习方法系列,和深度学习方法系列,还有一个三十分钟理解系列(一些趣味知识):新的一年开始了,今年给自己定的学习目标--以补齐基础理论为重点,研究一些 ...

  9. 华南理工深度学习与神经网络期末考试_深度学习基础:单层神经网络之线性回归...

    3.1 线性回归 线性回归输出是一个连续值,因此适用于回归问题.回归问题在实际中很常见,如预测房屋价格.气温.销售额等连续值的问题.与回归问题不同,分类问题中模型的最终输出是一个离散值.我们所说的图像 ...

最新文章

  1. CentOS6.4 添加播放×××
  2. mysql猎豹_猎豹网校MySQL数据库
  3. C语言字符型、整型和变量的长度
  4. 消息发送 C语言版和 Visual Basic Script版
  5. sql倒序查询语句_SQL丨1.基本查询语句复习
  6. fastapi PUT更新数据 / PATCH部分更新
  7. oracle的关键字
  8. Spark机器学习库MLib分类和回归文档V1.4.1(翻译)
  9. linux命令输入错误怎么弄,Bash-Insulter:一个在输入错误命令时嘲讽用户的脚本 | Linux 中国...
  10. git、cocoapod组件化开发常用命令
  11. 英语音标和Unicode
  12. 数据结构算法常见面试考题
  13. RH850 F1L freeRTOS 任务栈的切换
  14. Spring boot 与 Spring MVC
  15. python保存快捷键是什么_python中的快捷键
  16. 付费小说服务器位置,黑科技学:听说好多听小说的都开始付费了?别担心好东西也能免费...
  17. python 计算开平方数
  18. 中考计算机考试不合格会怎么样,中考考试细节:信息技术不合格 可申请重考1次...
  19. 就业喜报|最高薪资15K,平均7216元,这个双十一不做“吃圭人”!
  20. 随笔感悟:Mysql悲观锁和乐观锁

热门文章

  1. 关于在寒假用两周从零手写包含模拟着色器的软渲染器这件事
  2. 快速排序(附优化方案)
  3. 计算1+2+3+...+100的和
  4. 关于“Could not open ServletContext resource [/WEB-INF/applicationContext.xml]”解决方案
  5. DDOS攻击-压力测试工具webbench
  6. LoRa无线智慧家庭落地解决方案——东胜物联
  7. 《乐高EV3机器人搭建与编程》——1.6 小结
  8. Python学习总结(2)—— Python 快速入门
  9. 新浪微博分享不显示分享的链接问题
  10. android官方wifidemo,Android连接指定Wifi的Demo