必要性论证:将FPGA深入应用于基于CPU、CPU+GPU的人形机器人控制系统

目录:

0 前言

1 需求侧的基本事实

1.1 实用化的人形机器人的控制系统必须实现感算控一体

1.2 感算控环路必须具备强实时性(低延迟量+低延迟抖动量)

1.3 感知环节必须以高帧率+高分辨率、在多个位置+多个方向并行采集人形机器人本体、环境、任务对象的多种信息

1.4 强实时性的感算控环路要求控制系统必须具备大量强实时性的并行算力

1.5 强实时性的感算控环路要求控制系统必须具备大量强实时性的模块之间、芯片之间、板卡之间、设备之间的高带宽通信路径

2 供给侧的基本事实

2.1 基于CPU的体系结构不具备大量强实时性的并行算力

2.2 CPU运算核心不具备强实时性的、高带宽的多通道对外通信能力

2.3 基于CPU+GPU的体系结构在实时性方面存在短板

2.4 FPGA具备大量强实时性的并行算力并且能够实现复杂的非规整算法

2.5 FPGA具备强实时性的、高带宽的多通道内/外通信能力

3 在基于CPU的实用化人形机器人控制系统中深入应用FPGA的必要性

3.1 论证1:仅采用CPU的架构,不可能满足实用化人形机器人的要求

3.2 论证2:在基于CPU的实用化人形机器人控制系统中深入应用FPGA的必要性

3.3 参考:在基于CPU的实用化人形机器人控制系统中深入应用FPGA的框架设计

4 在基于CPU+GPU的实用化人形机器人控制系统中深入应用FPGA的必要性

4.1 论证1:仅采用CPU+GPU的架构,不可能满足实用化人形机器人的要求

4.2 论证2:在基于CPU+GPU的实用化人形机器人控制系统中深入应用FPGA的必要性

4.3 参考:在基于CPU+GPU的实用化人形机器人控制系统中深入应用FPGA的框架设计

4.4 关于将FPGA作为强化学习网络推理、大模型推理的物理载体

5 在实用化人形机器人研发流程中深入应用FPGA技术的流程图

6 结论


正文:

0 前言

2023年11月,工信部发布了《人形机器人创新发展指导意见》,针对人形机器人功能提出了实用化的需求,其特征是:

能够应对真实场景下的复杂环境与任务,能够应对突发情况。

笔者基于这一需求,在一年多时间内发布了多篇技术文档(请参阅:林伟:一个资深FPGA工程师在人形机器人领域的技术创作汇总),为在人形机器人控制系统中深入应用FPGA提供了框架设计、研发工作流程。

在这些文档中,对于在人形机器人控制系统中深入应用FPGA的必要性着墨不多 -- 笔者认为这是不言自明的 -- 这的确是一个严重的失误。

所以,本文将弥补这个失误:

针对基于CPU、CPU+GPU的人形机器人控制系统,以基本事实 (人形机器人的功能、性能需求,CPU、GPU、FPGA的功能、性能供给)为基础,进行简明的逻辑推理,论证在人形机器人控制系统中深入应用FPGA的必要性。

笔者希望以此:

协助业内人士针对这一技术思路建立清晰的认知,促使FPGA尽快深入应用于人形机器人研发实践。

1 需求侧的基本事实

1.1 实用化的人形机器人的控制系统必须实现感算控一体

区别于工业机器人基于示教的、轨迹固定的运动控制模式,实用化的人形机器人控制系统必须实现感算控一体,简化地说就是:

A1(感知) 自主感知本体、环境、任务对象的状态;

A2(运算) 自主根据A1的感知结果、以完成预设的任务为目标、决策下一步的行为;

A3(运算) 自主将行为转化为运动规划;

A4(运算) 自主将运动规划方案转化为各关节电机的运动控制方案;

A5(控制) 自主实现对各关节电机的控制,使人形机器人各肢节按照运动规划的结果在四维时空中完成运动,以各肢节的动作配合而完成预设的任务。

并且,在A1~A5的执行过程中,整个循环可能需要(在时变的本体、环境、任务对象的状态下)执行多次才能实现预定任务,各次循环在时间上可能存在重叠。

1.2 感算控环路必须具备强实时性(低延迟量+低延迟抖动量)

实用化的人形机器人必须应对各种突发、紧急的情况,例如控制自身跌倒的过程以免伤害人类及自身、救助正在跌倒(或面临其他危险)的人类、保护面临破坏的重要物品 ............

在非紧急状态下,人形机器人对环境、任务对象信息的反应速度,也将直接决定其工作效率,进而决定其市场竞争力。

即,实用化的人形机器人的感算控环路必须具备强实时性:

从采集信息到输出控制信号、完成任务,其延迟必须 被控制在很低的程度,延迟的抖动量必须被控制在很低的程度。

具体需要延迟有多低?

这主要取决于人类在与人形机器人长期共处、持续协作的过程中对自身安全的需求。对这一需求初步的分析请参阅文章 林伟:室联人形机器人:家政服务任务结构化、技术要点、深入应用FPGA的控制系统框架设计(整合版) 的第2.3节:人形机器人入户服务的最大痛点:安全性;

还取决于友商产品的延迟有多低 -- 毕竟,相似算法下的延迟更低,就能在相同延迟下叠加更多算法、实现更有卖点的功能/性能。

1.3 感知环节必须以高帧率+高分辨率、在多个位置+多个方向并行采集人形机器人本体、环境、任务对象的多种信息

在第1.1节所述基本事实的A1环节,也就是感知环节,实用化的人形机器人的控制系统必须同时控制多种传感器,并行采集人形机器人本体、环境、任务对象的多种信息。

这些传感器包括但不限于:

位于多个位置(可以不限于人形机器人本体,例如室内天花板,下同)、指向多个方向的多个高帧率、高分辨率的图像传感器;

位于多个位置、指向多个方向的多个高帧率、角度分辨率至少不低于当前商用主流激光雷达的距离传感器(例如基于多目协同视觉的距离传感器、激光雷达、结构光传感器);

位于多个位置、指向多个方向的多个高帧率、高分辨率的速度传感器(例如基于视觉的纵-横向速度传感器、基于FMCW激光雷达的径向速度传感器);

位于多个肢节的加速度传感器(例如IMU);

位于每个关节(甚至每个自由度)的力-力矩传感器;

位于每个电机的角度、角速度、电流传感器;

位于各个指端(以及其他必要部位)的触觉、温度、湿度传感器。

并且,上述各个传感器的原始信息采集节拍 、数据预处理运算节拍 之间,必须在时序上以高精度实现互相协同

而这些节拍的时长(其倒数就是采集、数据处理的帧率),与第1.3节所述的感算控环路的延迟正相关。

1.4 强实时性的感算控环路要求控制系统必须具备大量强实时性的并行算力

由于来自第1.3节所述传感器集群的原始信息的通道数量多、数据流量大,在对其进行预处理进而执行第1.1节A2~5所述算法的过程中,各个数据通道、算法通道必须在很大程度上同时存在、并行运行,否则将导致数据处理延迟过大,进而导致感算控环路的延迟过大、不能满足强实时性需求。

这就导致,人形机器人控制系统必须提供大量具备强实时性特征的并行算力。

1.5 强实时性的感算控环路要求控制系统必须具备大量强实时性的模块之间、芯片之间、板卡之间、设备之间的高带宽通信路径

人形机器人控制系统在以强实时性运行第1.1节所述的感算控环路算法的过程中,前后各环节之间、各环节内部的算法模块之间必定存在强实时性+高带宽的大量通信路径,以此实现各环节、模块之间的强实时性信息交互、功能衔接、功能协同。

如果单个芯片不足以完成实用化人形机器人的感算控环路算法,就必须将多个算法模块乃至环节交由多个芯片予以执行,相应的,各芯片之间也必定存在多个强实时性+高带宽的通信路径。

以此类推,各板卡之间、各设备(一个人形机器人系统未必仅有一个设备,请参阅第1.2节链接提供的技术文档)之间也很可能存在因为上一层级功能单元的能力不足而必须具备的多个强实时性+高带宽的通信路径。

2 供给侧的基本事实

2.1 基于CPU的体系结构不具备大量强实时性的并行算力

CPU+软件体系结构的核心特征是:

单个/少量物理运算核心以通用的流程依次读取级联映射的多级存储器(寄存器,一、二、三级cache,内存,硬盘)中的指令与操作数,解码指令并结合操作数串行(多个物理运算核心之间可以并行)执行指令,从而实现算法功能。

在这一过程中,大量时间被消耗在读指令、解码、流水线调度、读操作数、写回结果、基于Cache命中机制的存储器级联映射与更新、系统调度的操作中,加之物理运算核心的数量有限,致使CPU在同时处理多路大运算量任务时,延迟量大且延迟量在较大范围内抖动。

即使采用了RTOS,以其中最典型的时间片模式为例,任务能在时间片内完成的前提是:对任务进行切分、将其中有限的部分分配给单个时间片。当任务本身需要同时处理多路大运算量的计算,就会导致完成任务所需的时间片的数量相应增大且数量不确定,结果仍然是延迟量大且延迟量在较大范围内抖动,更不用说CPU执行任务切分、任务结果整合也要额外耗费时间。

所以,基于CPU的体系结构不具备大量强实时性的并行算力。

2.2 CPU运算核心不具备强实时性的、高带宽的多通道对外通信能力

尽管CPU作为一个芯片可以直连多路高速外部总线,但对于其中实际执行算法的CPU运算核心来说,其对外的通信仍然要经过L2-Cache、以L2-Cache为中介映射到L3Cache,而各个高速接口的数据仍然要经过内存才能被L3-Cache映射到。所以,实际执行算法的CPU运算核心本质上仍然只能经少量高速通道连接外部芯片,仍然要受到基于Cache命中机制的多级存储器映射机制的制约。

所以,CPU运算核心不具备强实时性的、高带宽的多通道对外通信能力。

2.3 基于CPU+GPU的体系结构在实时性方面存在短板

GPU中提供了大量小尺寸的运算核心,适合用于并行处理大量同构的且负载均衡的简单运算任务,但不适合执行复杂的或(/和)负载不均衡的运算(请参阅:Tim在路上:深入理解GPU硬件架构及运行机制)。

所以,基于CPU+GPU的体系结构是一个很好的方案,其特征在于:

用CPU实现算法功能中复杂的、不适合GPU执行的部分;以及,同样重要的,用CPU将待处理的数据(例如图像、点云)调度成适合GPU处理的形式以供GPU(GPU被用作CPU的协处理器)调用,以此发挥GPU的并行运算能力,继而整合GPU处理数据得到的结果、供由CPU执行的复杂算法调用。

然而,尽管最新的方案将CPU与GPU整合进同一片芯片、实现两者之间的大带宽通信,但CPU本身的工作机制,仍将导致其在执行上个自然段所述任务时面临实时性问题(见本文第2.1节),而这必将使CPU成为整个芯片、整个人形机器人控制系统中绕不过去的弱实时性环节。

所以,基于CPU+GPU的体系结构在实时性方面存在短板。

2.4 FPGA具备大量强实时性的并行算力并且能够实现复杂的非规整算法

FPGA(Field Programmable Gate Array,现场可编程门阵列)的核心优势是用在芯片上电阶段配置好的(即所谓 "可编程")基础硬件资源(逻辑门、寄存器、查找表、乘加单元、RAM块)直接实现算法,不需要读取指令、解码指令,不需要以Cache命中的方式访问多级存储器,从而实现算法执行过程的最简化、增强算法执行的实时性。

同时,FPGA中用于实现算法的上述可编程硬件资源以类似于棋盘格的方式大量分布在芯片中,并且以大量可编程连线予以互联,从而使复杂算法中的各个部分可以分别占据独立的硬件区块、彼此之间并行运行、彼此之间以可编程片内连线实现纳秒级精度的协同。

而且,由于上述基础硬件资源的 "颗粒度" 很小、数量很大,再加上以HDL(Hardware Description Language,硬件描述语言)+高性能开发环境为核心的工具体系,使FPGA适合以非常灵活的方式、以强实时性实现非常复杂的算法功能、控制功能、数据流调度功能。

所以,FPGA具备大量强实时性的并行算力并且能够实现复杂的非规整算法。

2.5 FPGA具备强实时性的、高带宽的多通道内/外通信能力

FPGA具备大量I/O引脚,I/O引脚及其在芯片内部邻近的可配置硬件模块(例如通用I/O驱动器、传输差分信号的高速串行通信驱动器)可以用于以强实时性、高带宽的性能与外部芯片通信,这些外部芯片包括但不限于:

GPU(及其模组)、DSP、DDRx-SDARM(及其模组)、ADC、DAC、ISP/包含ISP的SOC、独立编码器、伺服电机、超声波测距模块、TOF/FMCW激光雷达芯片、MEMS、IMU、光纤陀螺、云台、以太网PHY芯片、EtherCAT芯片、光纤通信模块、射频通信模块、卫星定位应用子系统芯片、功率器件、电源管理芯片。

进而,FPGA内部的大量可编程连线能在芯片上电阶段进行配置、形成系统所需的路径,从而用硬件直连的方式在算法各步骤、各部分之间进行强实时性、高带宽的数据传输。

以此结合第2.4节所述的性能特征,FPGA内部的大量可编程硬件资源可以用于实现各种通信协议,包括但不限于:

以太网,TCP/UDP-IP,RDMA,1588,EtherCAT,I2C,以及各种自定义通信协议。

所以,FPGA具备强实时性的、高带宽的多通道内/外通信能力,适合用作 "芯片胶水",实现各个主控芯片(CPU)、协处理芯片(GPU、DSP)、外围芯片(作为第1.1节所述的A1感知环节、A5控制环节的执行端)之间的(以及这些芯片与FPGA内部算法模块之间的)强实时性的、高带宽的互联。

3 在基于CPU的 实用化人形机器人控制系统中深入应用FPGA的必要性

3.1 论证1:仅采用CPU的架构,不可能满足实用化人形机器人的要求

本文第1节将实用化人形机器人必备的功能及性能作为需求侧 进行分析,得到第1.4、1.5节所述的基本事实

强实时性的感算控环路对控制系统提出要求 -- 必须具备大量强实时性的并行算力,必须具备大量强实时性的模块之间、芯片之间、板卡之间、设备之间的高带宽通信路径。

与这两个事实相对应,如果将CPU 作为实用化人形机器人控制系统的供给侧方案因为 本文第2.1、2.2节所述的基本事实: 基于CPU的体系结构不具备大量强实时性的并行算力,CPU运算核心不具备强实时性的、高带宽的多通道对外通信能力,不能满足上述要求,所以 得出结论

仅采用CPU的控制系统架构,不可能满足实用化人形机器人的功能、性能要求。

3.2 论证2:在基于CPU的实用化人形机器人控制系统中深入应用FPGA的必要性

如第3.1节前两段所述*(在此复述以便于手机阅读,下同)*,

本文第1节将实用化人形机器人必备的功能及性能作为需求侧 进行分析,得到第1.4、1.5节所述的基本事实

强实时性的感算控环路对控制系统提出要求 -- 必须具备大量强实时性的并行算力,必须具备大量强实时性的模块之间、芯片之间、板卡之间、设备之间的高带宽通信路径。

与这两个事实相对应,如果将FPGA 作为实用化人形机器人控制系统的供给侧方案因为 本文第2.4、2.5节所述的基本事实: FPGA具备大量强实时性的并行算力并且能够实现复杂的非规整算法,FPGA具备强实时性的、高带宽的多通道内/外通信能力,能够满足上述要求,所以 得出结论

在采用CPU的架构中深入应用FPGA,发挥其上述优势,有可能满足实用化人形机器人的功能、性能要求。

3.3 参考:在基于CPU的实用化人形机器人控制系统中深入应用FPGA的框架设计

为了协助读者更明确地理解第3.2节结论,在此引述笔者写的技术文档:

林伟:在实用化人形机器人控制系统中深入应用FPGA的框架设计(基于特斯拉Optimus-Gen2的硬件系统)28 赞同 · 6 评论文章​编辑

这是其中的系统框图(建议下载到PC再看):

图1 在基于CPU的实用化人形机器人控制系统中深入应用FPGA的框架设计图

在图1的各FPGA芯片中,除了绿色的伺服电机控制子系统可以视具体情况而作为一个整体进行时分复用(图1中未示用于实现时分复用功能的硬件模块)以节省资源之外,所有模块(包括作为一个模块的伺服电机控制子系统)都由独立的硬件资源 以"硬件直接实现算法 "的方式构成,彼此之间并行运行 、以FPGA内部的可编程硬件布线实现各模块之间的大带宽强实时性通信

文档的简介在这篇文章(林伟:一个资深FPGA工程师在人形机器人领域的技术创作汇总)的第2项。

4 在基于CPU+GPU的实用化人形机器人控制系统中深入应用FPGA的必要性

4.1 论证1:仅采用CPU+GPU的架构,不可能满足实用化人形机器人的要求

如第3.1节前两段所述,

本文第1节将实用化人形机器人必备的功能及性能作为需求侧 进行分析,得到第1.4、1.5节所述的基本事实

强实时性的感算控环路对控制系统提出要求 -- 必须具备大量强实时性的并行算力,必须具备大量强实时性的模块之间、芯片之间、板卡之间、设备之间的高带宽通信路径。

与这两个事实相对应,如果将CPU+GPU 作为实用化人形机器人控制系统的供给侧方案因为 本文第2.1、2.2节所述的基本事实: 基于CPU的体系结构不具备大量强实时性的并行算力,CPU运算核心不具备强实时性的、高带宽的多通道对外通信能力,不能满足上述要求,所以 得出结论

仅采用CPU+GPU的控制系统架构,不可能满足实用化人形机器人的功能、性能要求。

4.2 论证2:在基于CPU+GPU的实用化人形机器人控制系统中深入应用FPGA的必要性

如第3.1节前两段所述,

本文第1节将实用化人形机器人必备的功能及性能作为需求侧 进行分析,得到第1.4、1.5节所述的基本事实

强实时性的感算控环路对控制系统提出要求 -- 必须具备大量强实时性的并行算力,必须具备大量强实时性的模块之间、芯片之间、板卡之间、设备之间的高带宽通信路径。

与这两个事实相对应,如果将FPGA 作为实用化人形机器人控制系统的供给侧方案因为 本文第2.4、2.5节所述的基本事实: FPGA具备大量强实时性的并行算力并且能够实现复杂的非规整算法,FPGA具备强实时性的、高带宽的多通道内/外通信能力,能够满足上述要求,所以 得出结论

在采用CPU+GPU的架构中深入应用FPGA,发挥其上述优势,有可能满足实用化人形机器人的功能、性能要求。

4.3 参考:在基于CPU+GPU的实用化人形机器人控制系统中深入应用FPGA的框架设计

为了协助读者更明确地理解第4.2节结论,在此引述笔者写的技术文档:

林伟:室联人形机器人:家政服务任务结构化、技术要点、深入应用FPGA的控制系统框架设计(整合版)1 赞同 · 0 评论文章​编辑

这是文档中的系统框图(图2)的微调版(建议下载到PC再看):

图2 在基于CPU+GPU的实用化人形机器人控制系统中深入应用FPGA的框架设计图

在图2的各FPGA芯片中,除了绿色的伺服电机控制子系统可以视具体情况而作为一个整体进行时分复用(图2中未示用于实现时分复用功能的硬件模块)以节省资源之外,所有模块(包括作为一个模块的伺服电机控制子系统)都由独立的硬件资源 以"硬件直接实现算法 "的方式构成,彼此之间并行运行 、以FPGA内部的可编程硬件布线实现各模块之间的大带宽强实时性通信

在人工智能网络的推理阶段,虽然其对算力的需求远远低于训练阶段,基于少量GPU芯片的运算系统即能实现(不考虑实时性)推理,但是,对于规模比较大的人工智能网络(例如中等尺度的大模型),为了不让推理运算产生的延迟太大,都必须采用多个GPU芯片/板卡、令其协同工作,很多情况下都必须独自占据一个机箱。这就是图2右上角的"大模型服务器"。

更详细的阐述,请参阅上述文档的第3.3.9节:加速基于大模型的端到端具身智能控制算法的实用化进程。

微调内容:

相比于上述文档中的图2,在其右上角添加了FPGA内部的N个PCIe端点模块、FPGA外部的N片GPU(及其外围子系统),基本思想是(复述第2.5节最后一段,便于手机阅读):

FPGA具备强实时性的、高带宽的多通道内/外通信能力,适合用作 "芯片胶水",实现CPU、GPU、外围芯片(作为第1.1节所述的A1感知环节、A5控制环节的执行端)之间的(以及这些芯片与FPGA内部算法模块之间的)强实时性的、高带宽的互联。

文档的简介在这篇文章(林伟:一个资深FPGA工程师在人形机器人领域的技术创作汇总)的第3项。

4.4 关于将FPGA作为强化学习网络推理、大模型推理的物理载体

在第1.1节所述过程中,即使基于人工智能技术(包括但不限于大模型)实现了端到端控制(乃至端到端的决策-控制),也无非就是将A2~A4环节的任务交由具备人工智能推理能力(网络参数已经预先训练好了)的黑盒子予以实现。

在人工智能网络的推理阶段,FPGA是替代GPU的可选方案之一,并且FPGA在实时性指标、低功耗性能方面具备一定优势。

也就是说,不论是基于强化学习网络,还是基于大模型,对于用来控制人形机器人的端到端具身智能推理模块,其物理载体并非必定是GPU,FPGA也是可选的底层技术(相关文献虽然不多,但至少在知网能搜到一些)。

如果 在后续研究中能够证明 ,在综合评估推理延迟、芯片及系统硬件价格、功耗、系统体积(毕竟最好是能装进机器人本体内部)等各方面因素之后,FPGA相比于GPU更适合用做人形机器人端到端控制的底层芯片,各厂商、研发机构应认真考虑:

将图2中的GPU去掉,用FPGA(可能需要多片)作为强化学习网络推理、大模型推理的物理载体。

5 在实用化人形机器人研发流程中深入应用FPGA技术的流程图

笔者于2024年2月发布了一篇技术文档:林伟:在实用化人形机器人研发流程中深入应用FPGA技术的流程图(版本A)(基于工信部《人形机器人创新发展指导意见》),为本文所述技术思想的实施提供了技术思路、重点提示、研发流程样例,并已经将其在业内广泛传播。

这是其中的流程图(建议下载到PC再看):

图3 在实用化人形机器人研发流程中深入应用FPGA技术的流程图

更详细的说明请参阅上述技术文档。

6 结语

对于实用化人形机器人来说,基于需求侧的基本事实(机器人的功能、性能需求),基于供给侧的基本事实(CPU、GPU、FPGA的功能、性能供给),在现有的基于CPU、CPU+GPU的人形机器人控制系统中深入应用FPGA,将有助于提升人形机器人的性能、加速其实用化进程。

相关推荐
爱编程的鱼2 小时前
5分钟实现网站复刻:AI助力前端开发
人工智能
jazz_bin3 小时前
人工智能安全——大语言模型遗忘学习(LLM unlearning)与多目标优化算法
人工智能·算法·语言模型·unlearning·多目标优化·人工智能安全
JINGWHALE13 小时前
设计模式 结构型 外观模式(Facade Pattern)与 常见技术框架应用 解析
前端·人工智能·后端·设计模式·性能优化·系统架构·外观模式
大模型之路3 小时前
Chain of Agents(COA):大型语言模型在长文本任务中的协作新范式
人工智能·语言模型·agent·ai agent·ai代理
生信碱移3 小时前
使用大语言模型的生物嵌入,后续应该会有很多类似文章出来!
人工智能·算法·语言模型·自然语言处理·chatgpt·数据分析
奇偶变不变3 小时前
30分钟学会css
人工智能·python·tensorflow
中国云报3 小时前
工业软件发展添动力 深圳龙华与华为云再聚“首”
人工智能·华为云
小李学AI5 小时前
基于YOLOv8的道路缺陷检测系统
人工智能·深度学习·神经网络·yolo·目标检测·机器学习·计算机视觉
power-辰南5 小时前
Pytorch 三小时极限入门教程
人工智能·pytorch·深度学习
JINGWHALE15 小时前
设计模式 结构型 代理模式(Proxy Pattern)与 常见技术框架应用 解析
前端·人工智能·后端·设计模式·性能优化·系统架构·代理模式