专栏|小巧灵活的机器人异构系统平台:英特尔HERO

智东西(公众号:zhidxcom)
文 | 英特尔中国研究院

一说起英雄,HERO,你想到了谁?是力拔山兮气盖世的项羽,手持王者之剑的亚瑟王,还是复仇联盟里的钢铁侠呢?每个人心中都有一个英雄梦。今天就来和大家聊一聊英特尔中国研究院机器人系统实验室的英雄梦之路。

机器人系统实验室的工作重点之一就是为机器人研究搭建基于CPU+FPGA的异构计算平台。引入异构平台,是由于机器人研究需要同时引入时间和空间计算模型。CPU作为时间计算模型的完美代表,指令按时间顺序一条一条执行, 可以实现灵活多变的控制;加速器则更像一种空间计算模型,利用空间的并行从而一次性完成大量数据处理,使复杂的计算得到加速处理。(更多内容请移步拓展阅读《专栏|CPU+FPGA,机器人最强大脑即将问世》。) 在这样一个充满挑战的实验室,机器人大脑“HERO”诞生了!

一、HERO平台

1、硬件介绍

HERO平台全称为Heterogeneous Extensible Robot Open Platform,是英特尔中国研究院专为智能机器人(包括服务机器人、医疗机器人、自动驾驶汽车等)打造的一套低功耗、高性能、体积小的异构系统平台方案。在此方案中,CPU作为控制中心, 与FPGA和其他专用加速器芯片(如Movidius的VPU)搭配,能够提供高效的性能。整套HERO硬件系统采用了英特尔酷睿™系列CPU,搭载英特尔Arria 10 GX系列1150型FPGA作为异构加速器。

专栏|小巧灵活的机器人异构系统平台:英特尔HERO

(HERO平台的硬件结构)

英特尔酷睿™是英特尔主流架构的CPU系列。与传统PC相比,在办公、游戏和视频处理方面都有了很大的性能提高,并且具有丰富的IO功能,提供了各种高速、低速接口。HERO平台搭载了一块第七代酷睿™i5-7600T , 具体性能指标参考如下:

专栏|小巧灵活的机器人异构系统平台:英特尔HERO
对于FPGA,HERO平台选用了英特尔最新产品——Arria 10 GX 1150。这款产品资源丰富:内部集成了1150K个逻辑单元,可以作为算法处理的基本功能单元;还集成了单精度浮点乘法器和加法器硬核各1518个,运算实力暴增,最高速率可达1.366TFLOPS;综合片内丰富的存储布线资源以及对外高速内存接口,保证了FPGA在机器人控制算法以及神经网络推理端的性能加速。

专栏|小巧灵活的机器人异构系统平台:英特尔HERO

CPU和FPGA之间通过第三代8通道PCIe高速接口进行通信,带宽最高可以达到80Gbps。目前整套系统采用紧凑型主板叠加全高半长PCIe板卡,保证其物理尺寸控制在17cm(长)x17cm(宽)x9cm(高)以内,娇小玲珑的身材能解决机器人空间体积受限的难题,并在性能和功耗两者之间取得了很好的平衡,在尽可能实现性能最大化的前提下将功耗最小化,整机功耗最高预算不超过90W。和采用GPU作为加速器、动辄消耗几百瓦功耗的系统相比起来,HERO平台的功耗是不是低到让你超级兴奋?

眼尖的你一定发现了A10 FPGA PCIe加速卡是由两层电路板叠加构成。没错,你说得对! FPGA加速卡由FPGA核心模块和IO模块两部分组成。核心模块由FPGA和高速DDR4内存组成,是系统最核心的组成部分。其大小为12cm(长)x8cm(宽),对外通过FMC连接器提供约200个可配置IO,功能可由用户自定义。这样FPGA核心模块就可以通过连接IO模块对外提供客户订制的外设接口,比如I2C、I2S、串口、USB、网口等,从而接入机器人使用的传感器和执行单元,并完成相互间的通信。

2、设计Flow支持

传统的FPGA编程方式令多数软件工程师望而却步,而HERO平台为大家带来了福音。除了传统的专业编程模型,HERO平台专门定制的BSP(Board Support Package)还支持基于OpenCL的flow开发,给广大的算法和软件工程师提供了友好的编程接口。

专栏|小巧灵活的机器人异构系统平台:英特尔HERO

(OpenCL系统开发示意图)

上图显示了一个定制化系统要支持OpenCL Flow所需的软件以及FPGA硬件支持。可以看出,对于一个用户定制化的SDK,在host系统端需要提前定义好内存映射,而在FPGA端则需要提供完整的数据通路以及控制通路,才能支持OpenCL Kernel的实时动态加载和运行。

作为定制化的SDK平台,为了支持OpenCL Flow,HERO平台上移植了完整的FPGA板级支持包(Board Support Package),作为HERO SDK的一个组成部分提供给用户。现有HERO SDK BSP的FPGA逻辑部分主要包括高速通信接口PCIe IP核、内存DMA控制器、片外高速内存DDR4接口,以及和FPGA内部模块之间的通信接口。如果用户想增加FPGA与外部接口之间的通讯, HERO平台也有相应的BSP参考设计,能够指导客户更好、更快地实现各种灵活多变的外部接口。

二、HERO平台的优点

这一长串的专业介绍是不是让你有点眼(tou)花(yun)缭(nao)乱(zhang)?别着急,这就为大家总结HERO平台的优势:

体积小巧:设计紧凑,体型小巧,能够被轻松地集成到各类机器人或者车上。如果应用只需要FPGA做算法加速,则平台的尺寸可以做到与核心模块差不多大,整个设计会更小。如果需要引出IO接口,用户也可以根据需要对IO板量体裁衣。

灵活度高:精心设计了双板结构——核心板和IO板,两板之间互相独立。核心板主要负责算法和控制,IO板管理各种传感器,这种设计的好处在于方便不同用户进行裁剪设计,FPGA的选型可以根据算法的复杂度进行调配,IO的配置也可以根据应用的要求进行裁剪。你的机器人你做主,你的IO你说了算!算法实现不满意,可以改;IO连接不满意,可以改;系统结构不满意,还可以改。是不是很赞?

接口丰富:HERO平台提供了约200个IO接口供你自由选择,向上支持高达16Gbps的高速串行接口,向下也能hold住各种低速接口。对于视觉、控制、自动驾驶等应用都可以支持。

如果你什么都不想改,就想直接拿来用,也没问题!HERO平台提供的基础IO模块,已经贴心地为你设计好了各种可能用到的高速 or低速、常用or不常用、标准or不标准的接口,基本能满足你的所有想法。听起来是不是很心动?

三、HERO平台的应用

HERO平台的应用前景广阔。以服务机器人为例,其主要作用是帮助人完成任务和动作。为了实现这一目标,研发人员需要在机器人上实现各种复杂的应用控制技术,包括视觉、定位、运动、抓取等。FPGA可以在这些关键应用上发挥极大的价值,让复杂算法的处理变得高效而实时,带给用户良好的体验。

此外,HERO平台上移植的同步定位与地图构建(SLAM)算法,比单独使用CPU高出了十几倍的频率,让机器人不再“迷失方向”。平台还针对机器人的双臂运动规划集成了现今最广泛的抓取平台——MoveIt!,并在此基础上进行了运动规划、碰撞检测等核心难题的研究,实现了机器人实时、高精度的运动规划 。

四、英雄,欢迎你加入

有没有对HERO平台动心?有没有对FPGA开发跃跃欲试?有没有对未来的智能机器人充满期待?我们致力于将HERO打造为一套完整、高效、开放的平台,欢迎您的参与合作。

合作联系人:Patricia Wang patricia.p.wang@intel.com

Others predict the future. At Intel, we build it!

专栏|小巧灵活的机器人异构系统平台:英特尔HERO