close
当前位置: 物联网在线 > IT技术 > 云计算 >

FPGA将逐渐取代GPU与CPU,成为机器人上的主要芯片

\


  十年前,微软创始人比尔·盖茨在其文章《A Robot in Every Home》里提出他对未来的憧憬:机器人将会像个人电脑一样进入每个家庭,为人类服务。随着人工智能以及智能硬件在过去几年的飞速发展,到了2016年的今天,笔者坚信各项技术已臻成熟,智能机器人很快进入商业化时代,盖茨的愿景也极有可能在5到10年内实现。

 

  要想机器人有智能,必先赋予其感知能力。感知计算,特别是视觉以及深度学习,通常计算量比较大,对性能要求高。但是机器人受电池容量限制,可分配给计算的能源比较低。除此之外,由于感知算法不断发展,我们还需要不断更新机器人的感知处理器。与其它处理器相比,FPGA具有低能耗、高性能以及可编程等特性,十分适合感知计算。本文首先解析FPGA的特性,然后介绍FPGA对感知算法的加速以及节能,最后谈一谈机器人操作系统对FPGA的支持。

 

  FPGA:高性能、低能耗、可编程

 

  与其它计算载体如CPU与GPU相比,FPGA具有高性能、低能耗以及可硬件编程的特点。图1介绍了FPGA的硬件架构,每个FPGA主要由三个部分组成:输入输出逻辑,主要用于FPGA与外部其他部件,比如传感器的通信;计算逻辑部件,主要用于建造计算模块;以及可编程连接网络,主要用于连接不同的计算逻辑部件去组成一个计算器。在编程时,我们可以把计算逻辑映射到硬件上,通过调整网络连接把不同的逻辑部件连通在一起去完成一个计算任务。比如要完成一个图像特征提取的任务,我们会连接FPGA的输入逻辑与照相机的输出逻辑,让图片可以进入FPGA。然后,连接FPGA的输入逻辑与多个计算逻辑部件,让这些计算逻辑部件并行提取每个图片区域的特征点。最后,我们可以连接计算逻辑部件与FPGA的输出逻辑,把特征点汇总后输出。由此可见,FPGA通常把算法的数据流以及执行指令写死在硬件逻辑中,从而避免了CPU的Instruction Fetch与Instruction Decode 工作。

 

  虽然FPGA的频率一般比CPU低,但是可以用FPGA实现并行度很大的硬件计算器。比如一般CPU每次只能处理4到8个指令,在FPGA上使用数据并行的方法可以每次处理256个或者更多的指令,让FPGA可以处理比CPU多很多的数据量。另外,如上所述,在FPGA中一般不需要Instruction Fetch与Instruction Decode,减少了这些流水线工序后也节省了不少计算时间。

 

  为了让读者对FPGA加速有更好的了解,我们总结了微软研究院2010年对BLAS算法的FPGA加速研究。BLAS是矩阵运算的底层库,被广泛运用到高性能计算、机器学习等领域。在这个研究中,微软的研究人员分析了CPU、GPU以及FPGA对BLAS的加速以及能耗。图2对比了FPGA以及CPU、GPU执行GaxPy算法每次迭代的时间,相对于CPU,GPU与FPGA都达到了60%的加速。图中显示的是小矩阵运算,随着矩阵的增大,GPU与FPGA相对与CPU的加速比会越来越明显。

 

  FPGA相对于CPU与GPU有明显的能耗优势,主要有两个原因。首先,在FPGA中没有Instruction Fetch与Instruction Decode,在Intel的CPU里面,由于使用的是CISC架构,仅仅Decoder就占整个芯片能耗的50%;在GPU里面,Fetch与Decode也消耗了10%~20%的能源。其次,FPGA的主频比CPU与GPU低很多,通常CPU与GPU都在1GHz到3GHz之间,而FPGA的主频一般在500MHz以下。如此大的频率差使得FPGA消耗的能源远低于CPU与GPU。

 

  图3对比了FPGA以及CPU、GPU执行GaxPy算法每次迭代的能源消耗。可以发现CPU与GPU的能耗是相仿的,而FPGA的能耗只是CPU与GPU的8%左右。由此可见,FPGA计算比CPU快60%,而能耗只是CPU的1/12,有相当大的优势,特别在能源受限的情况下,使用FPGA会使电池寿命延长不少。

 

  由于FPGA是可硬件编程的,相对于ASIC而言,使用FPGA可以对硬件逻辑进行迭代更新。但是FPGA也会被诟病,因为把算法写到FPGA硬件并不是一个容易的过程,相比在CPU与GPU上编程技术门槛高许多,开发周期也会长很多。

 

  在传统的FPGA开发流程中,我们需要把C/C++写成的算法逐行翻译成基于Verilog的硬件语言,然后再编译Verilog,把逻辑写入硬件。随着近几年FPGA技术的发展,从C直接编译到FPGA的技术已经逐渐成熟,并已在百度广泛被使用。在C-to-FPGA开发流程中,我们可以在C\C++的代码中加Pragma,指出哪个计算Kernel应该被加速,然后C-to-FPGA引擎会自动把代码编译成硬件。在我们的经验中,使用传统开发流程,完成一个项目大约需要半年时间,而使用了C-to-FPGA开发流程后,一个项目大约两周便可完成,效率提升了10倍以上。

 

  感知计算在FPGA上的加速

 


(责任编辑:ioter)

用户喜欢...

云计算与人工智能之间有哪些联系 要体现在三个方面

云计算主要是通过互联网为用户提供各种服务,针对于不同的用户可以提供IaaS、PaaS和SaaS三种服务,而人工智能可以简单的理解为一个感知和决策的过程,当然这个过程要追求一种合理性。 人...


微软与印度信实工业子公司将在云计算、人工智能等多个领域进行合作

8月12日消息,据国外媒体报道,印度信实工业旗下子公司将同微软进行长期的合作,涉及云计算、人工智能等多个领域。 信实工业公司已在官网公布了子公司同微软进行长期合作的消息,与微...


Pure Storage推出Pure1人工智能云端基础架构管理与支持平台

近日,Pure Storage宣布推出Pure1人工智能云端基础架构管理与支持平台。该平台能在多种场景下为客户提供更好的可视性与自驾式存储功能,帮助企业节省管理基础架构的时间。 据悉,Pure1平台以...


公有云进入下半场,看“三云”混战人工智能

在2017年11月,IDC 发布了 2017 年上半年中国公有云 IaaS 市场份额调研结果,阿里云扩大至 47.6%、其次腾讯云占9.6%、第三...


云计算人工智能颠覆制作 科技巨头混战娱乐媒体业

视频内容不但在云端存储和播放,其整个制作流程都将可以依托强大的计算能力在云端完成;反过来,这些海量数据...


云是人工智能的强载体

就在上个月的贵阳数博会上,马化腾虽然“迟到”,但还是抛出了一个博人眼球的观点叫做“用云量”。过去,我们...


马化腾:人工智能就像云时代的“计算机”,云+AI将成为产业革新动力

整个经济社会的操作系统都在进入新时代,蕴藏着巨大的商业机会,也有更大的挑战。我们希望和大家一起共建云上...


AlphaGo告诉我们人工智能成功的五大秘诀,AI下一个风口在哪里?

AlphaGo到底为我们带来了什么?人工智能算法的目标是什么?有没有数据?人工智能的技术风口在哪儿?AI的商业风口...


人脸支付等新技术不断加入,金融或发生本质性变革

新技术的加入并不仅仅体现在方式上的改变,它影响到的更多是基于本质改变的一些东西。借助人工智能能够处理海...


智能照明领跑市场,智能家居迈入新时代

到2017年,智能照明已经逐渐从前几年“不温不火”的局面中脱离出来,其发展速度获得了一定的提升。在此背景之下...