需求说明:深度学习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专有芯片、自研万兆交换机,都是很好的例证。其中的很多创新,国内外大型互联网公司中都没有做过。
然而,这只是一个开始,许多软硬件创新还在进行中——据了解,百度已经在孕育新版本的百度大脑,在体系结构和芯片领域进行着更大的创新。
整理来自:时间的诗