你的位置:首页 > 电源管理 > 正文

谷歌TPU没戏?最强大脑当属CPU+FPGA

发布时间:2017-09-06 责任编辑:susan

【导读】对于机器人而言,什么才最重要?能够暴力弹跳的复杂机械装置?各类价格昂贵的传感器?不对,最重要的是能在复杂的环境中完成特定工作,为了实现这目标,机器人要眼观六路,耳听八方,行走天下。而这一切都离不开一颗强劲的大脑——高性能计算平台和高效算法。
 
通用处理器在计算性能和能效上越来越难以满足日益庞大、多样化的数据处理需求。 借助由GPU、FPGA和其他智能引擎等协处理器与CPU一起组成的异构计算平台来提升计算性能,已成为当下学术界和工业界的研究热点。 异构计算作为一种特殊的并行计算方式,能够根据每个计算子系统的结构特点为其分配不同的计算任务,在提高计算性能、能效比和实时性保障方面体现出传统架构所不具备的优势,逐渐在各种计算需求量较大的场合得到应用。针对数据中心场景,英特尔已经宣布要通过Xeon+FPGA平台和Xeon Phi系列产品来推动异构计算的实施。
 
那么,在我们所关心的机器人领域,情况又是如何?
 
一、机器人需要怎样的计算平台
 
机器人是复杂的机电一体化装置,综合运用了机械与精密机械、微电子与计算机、自动控制与驱动、传感器与信息处理以及人工智能等多学科的最新研究成果。
 
机器人系统和系统中的传感器
 
为了将这些成果融合起来,真正形成认知、感受和行动的能力,使机器人能够理解并应对真实的世界,准确完成操作任务,其搭载的计算平台需满足多种要求,包括:
 
1)感知能力:具备丰富的I/O接口,支持USB 3、UART、I2C等多种I/O协议,用以接收各类传感器数据。
 
2)控制能力:能够控制各个运动部位,如底盘、手臂、手指和头部,完成多个维度的动作,并且具备实时性和安全性方面的保障。
 
3)计算能力:既要应对大量数据的处理开销,更要满足各类智能算法巨大的计算需求。
 
4)功耗控制:要在满足以上能力的同时尽可能降低功耗,避免成为电池杀手。
 
5)易用性:必须提供友好的编程模型,使机器人的应用开发快速、准确。
 
现有的计算平台很难满足以上需求,搭建适用于机器人的异构计算平台已经迫在眉睫!CPU+FPGA的方案以其独特的优势进入我们眼帘。
 
二、什么是FPGA
 
自1985年问世以来,FPGA这种可编程逻辑器件凭借在性能、上市时间、成本、稳定性和长期维护方面的优势,在通信、医疗、工控和安防等领域占有一席之地。特别是近两年,随着云计算、高性能计算和人工智能的繁荣,拥有先天优势的FPGA更是得到了前所未有的关注。
 
FPGA由六部分组成:可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核。 英特尔首席执行官科再奇曾这样描述:“你可以把FPGA想象成一堆gate,能够随时编程。FPGA可以用作多个领域的加速器,例如在加密的同时进行面部搜索,并能在微秒内重新编程。其成本远低于大规模单个定制部件,并具有更高的灵活性。”
 
随着工艺的发展,技术的进步,FPGA的性能、指标都达到了新高度。新的Arria10系列FPGA和SoC功耗比前一代FPGA和SoC低40%,具有业界唯一的硬核浮点数字信号处理(DSP)模块,其速率高达每秒1.5万亿次浮点运算(1.5 TFLOPS)。
 
FPGA的结构
 
即便拥有上述优势,传统上FPGA的开发难度还是令诸多程序员望而却步。然而,随着OpenCL标准的出现,FPGA的应用门槛正在大幅降低。基于OpenCL的开发框架,用户可以摆脱传统的基于硬件描述语言(HDL)的开发流程,转而采用更高效、也更符合广大程序员背景的软件开发流程。
 
OpenCL标准是第一个开放、免版税、统一的编程模型,能够在异构系统上加速算法实现,支持使用基于C的编程语言进行跨平台开发 ,例如CPU、GPU、DSP和FPGA。支持OpenCL的异构系统一般通过PCle总线实现主机与硬件加速器(或者一个内核与另一个没有主机控制的内核)之间的通信,而这一切并不需要程序开发者的关注。相反,开发者只需了解OpenCL定义的标准化的应用程序接口(API)。如今,各个主流的深度学习框架都提供OpenCL的支持。英特尔正计划推出基于FPGA的CNN的多种网络实现。
 
OpenCL的编程模型
 
三、基于CPU+FPGA的异构计算平台
 
我们机器人系统实验室今年的工作重点便是为机器人搭建基于CPU+FPGA的异构计算平台。根据我们的经验,FPGA能够在一些关键的机器人应用中发挥极大的价值。例如,我们将机器人自身定位的算法(SLAM)移植到FPGA中执行,实现了比CPU高出十多倍的定位频率,从而允许机器人以双倍的速度运动,而不会“迷失方向”。
 
为了打造通用的机器人计算平台,我们选用了英特尔提供给移动平台使用的CPU和Arria 10系列的FPGA。 两者通过高带宽,低延迟的I/O接口(如PCIe)进行通信。 FPGA中可以包含多种加速模块。我们会提供一套通用接口,便于模块开发者包装、发布已有的设计。
 
机器人的异构计算平台
 
在软件层面,我们会构建加速模块的配置、安装和消息传递机制,便于第三方将所需的加速模块集成到应用中,并设计一些定位、控制、视觉识别和物体建模的常用模块,以及软件的集成包,供用户作为参考设计或直接选用。
 
有了如此智慧的大脑,机器人将变得更加耳聪,眼明,腿快,手稳,融入我们的日常生活,为人类提供更好的服务。
要采购传感器么,点这里了解一下价格!
特别推荐
技术文章更多>>
技术白皮书下载更多>>
热门搜索
 

关闭

 

关闭