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