news.accelerationrobotics.com/modern-robotics-compute-architectures


6 分钟阅读

机器人行为通常构建为计算图,数据从传感器流向计算技术,一直到执行器并返回。为了获得额外的性能,机器人计算平台必须有效地将这些类似图形的结构映射到 CPU,但也映射到包括 FPGA 和 GPU 在内的专用硬件。


首次发表于https://www.roboticsbusinessreview.com/opinion/building-robot-chips-modern-compute-architectures-in-robotics/


机器人系统的传统软件开发主要是对中央处理器 (CPU) 进行编程。然而,由于 CPU 固有的架构约束和限制,这些机器人系统经常表现出处理效率低下(不确定性)、高功耗和安全问题。事实上,构建仅依赖 CPU 的强大机器人系统是一项具有挑战性的工作。

机器人计算平台

计算架构随着对机器人系统高级功能的需求增加,一些公司已经发布了专用的机器人和边缘人工智能平台,提供高性能计算、安全连接、设备上机器学习等。示例包括 Xilinx 的 Versal AI Edge、Qualcomm 的机器人 RB5 平台和 NVIDIA 的 Jetson 系列片上系统 (SoC)。

这些机器人和人工智能平台包含各种计算资源,包括 CPU、数字信号处理器 (DSP)、图形处理单元 (GPU)、现场可编程门阵列 (FPGA) 和专用集成电路 (ASIC) 等。它们允许机器人专家为机器人构建灵活的计算架构,但需要为每项任务使用正确的工具以最大限度地提高其性能,这一过程可能很复杂且令人困惑。(They allow roboticists to build flexible compute architectures for robots, but require one to use the right tool for each task to maximize its performance, a process that can be complex and confusing.)

本文讨论了机器人专家可用的各种计算资源的优缺点,并就它们作为机器人系统的现代计算架构提供了额外的视角。

标量处理器 (CPU)

中央处理器

现代机器人计算架构 2022_机器人工程

标量处理元素(例如 CPU)在具有多种决策树和大量库的复杂算法中非常有效。但是,性能扩展是有限的。

多核 CPU 可以理解为工厂中的一组车间,每个车间都雇佣了非常熟练的工人。这些工人每个人都可以使用通用工具,让他们几乎可以构建任何东西。每个工人一次制作一件物品,依次使用不同的工具将原材料变成成品。车间大多是(不考虑缓存)独立的,工人都可以做不同的任务而不会分心或协调问题。

与 CPU 相比,矢量处理元件(例如 DSP、GPU)在更窄的可并行计算功能集上更有效。但是,由于其不灵活的内存层次结构,它们会遇到延迟和效率损失。

尽管 CPU 非常灵活,但它们的底层硬件是固定的。大多数 CPU 仍然基于 Von-Neumann 架构(或更准确地说,存储程序计算机),其中数据从内存带到处理器,进行操作,然后写回内存。从根本上说,每个 CPU 以顺序方式运行,一次一条指令,并且架构以算术逻辑单元 (ALU) 为中心,这需要在每次操作时将数据移入和移出。

在当今的现代机器人架构中,标量处理器发挥着核心作用。使用 CPU 来协调跨传感、驱动和认知的信息流是机器人系统的基础。此外,机器人应用程序开发广泛采用的软件框架机器人操作系统 (ROS) 是以 CPU 为中心的方式设计的。


Moreover, the Robot Operating System (ROS), the widely adopted software framework for robot application development, is designed in a CPU-centric manner.


矢量处理器(DSP、GPU)

图形处理器

现代机器人计算架构 2022_硬件架构_02

与 CPU 相比,矢量处理元件(例如 DSP、GPU)在更窄的可并行计算功能集上更有效。但是,由于其不灵活的内存层次结构,它们会遇到延迟和效率损失。

按照前面描述的工厂比喻,GPU 也有车间和工人,但它的数量要多得多,而且工人也更加专业。这些工人只能使用特定的工具,可以做的事情更少,但他们做的非常有效。

当 GPU 工作人员重复执行相同的少数任务并且所有人员同时执行相同的事情时,他们的功能最佳。毕竟,有这么多不同的工人,给他们所有相同的订单更有效率。因此,矢量处理器解决了机器人技术中 CPU 的主要缺点之一——并行处理大量数据的能力。


As such, vector processors address one of the major drawbacks of CPUs in robotics — the ability to process large amounts of data in parallel.


可编程逻辑 (FPGA)

FPGA

现代机器人计算架构 2022_机器人工程_03

可编程逻辑(例如 FPGA)可以针对特定的计算功能进行精确定制,这使得它们非常适合延迟关键的实时应用。然而,这些优势是以编程复杂性为代价的。此外,与标量和矢量处理器相比,重新配置和重新编程需要更长的编译时间。

使用我们的工厂比喻,FPGA 是灵活且适应性强的车间,架构师可以部署为手头特定任务定制的装配线和传送带。这种适应性意味着 FPGA 架构师可以构建装配线和工作站,然后针对所需任务对其进行定制,而不是使用通用工具和存储器结构。

在机器人架构中,FPGA 支持通过软件创建运行时可重新配置的机器人硬件。机器人的软件定义硬件擅长数据流计算,因为一旦所有操作数可用,就会执行语句。这使得 FPGA 在连接传感器、执行器和处理网络方面非常有用。此外,FPGA 可以创建具有无与伦比的灵活性的定制硬件加速内核,使其成为用于数据处理任务的矢量处理器的有趣替代品。

考虑使用机器人操作系统的机器人系统,这在所有类型的机器人开发中变得越来越普遍。使用 ROS,机器人过程被设计为计算图中的节点。机器人计算平台必须能够有效地将这些类似图形的结构映射到硅上。


Consider robotics systems utilizing Robot Operating System, which is becoming increasingly common for robotics development of all types. With ROS, robotics processes are designed as nodes in computational graphs. Robotics compute platforms must be able to map these graph-like structures to silicon efficiently.


专用集成电路 (ASIC)

ASIC

现代机器人计算架构 2022_ROS1_04

继续我们的工厂类比,ASIC 与 FPGA 一样,构建装配线和工作站,但与 FPGA 不同,ASIC 是最终的,不能修改。换句话说,在 ASIC 的车间中,装配线和传送带是固定的,自动化流程不会发生变化。ASIC 的特殊、固定架构提供了无与伦比的性能和功率效率,以及大批量批量生产的最佳价格。

不幸的是,ASIC 需要很多年的时间来开发,并且不允许进行任何更改。相反,机器人算法和架构继续快速发展,因此基于机器人专用 ASIC 的加速器可能落后于最先进的算法数月甚至数年。虽然 ASIC 将在未来的一些机器人系统中发挥作用,但 ASIC 在机器人架构中的使用仍然有限。

网络的网络

机器人本质上是确定性机器。它们是网络的网络,传感器捕获数据,传递给计算技术,然后传递给执行器,然后以确定的方式再次返回。

这些网络可以理解为机器人的神经系统。与人类神经系统一样,通过所有网络传递的实时信息对于机器人的连贯行为至关重要。基于 Von-Neumann 的标量和矢量处理器架构在控制流方面表现出色,但难以保证确定性。这就是 FPGA 和 ASIC 作为机器人系统的关键支持技术发挥作用的地方。


These networks can be understood as the nervous system of the robot. Like human nervous systems, real-time information passing across all networks is fundamental for the robot to behave coherently. The Von-Neumann based architectures of scalar and vector processors excel at control flow, but struggle to guarantee determinism. This is where FPGAs and ASICs come to play as critical enabling technologies for robotics systems.


机器人计算架构

考虑使用机器人操作系统的机器人系统,这在所有类型的机器人开发中变得越来越普遍。使用 ROS,机器人过程被设计为计算图中的节点。机器人计算平台必须能够有效地将这些类似图形的结构映射到硅上。

ROS 计算图应该以无缝方式跨计算基板运行,并且数据必须从可编程逻辑 (FPGA) 流向 CPU,从 CPU 流向矢量处理器,然后一路返回。换句话说,机器人芯片不仅应该将 ROS 计算图映射到 CPU,还应该映射到 FPGA、GPU 和其他计算技术,以获得额外的性能。


Consider robotics systems utilizing Robot Operating System, which is becoming increasingly common for robotics development of all types. With ROS, robotics processes are designed as nodes in computational graphs. Robotics compute platforms must be able to map these graph-like structures to silicon efficiently.

ROS computational graphs should run across compute substrates in a seamless manner, and data must flow from programmable logic (FPGAs) to CPUs, from CPUs to vector processors, and all the way back. In other words, robotics chips should map ROS computational graphs not just to CPUs, but also to FPGAs, GPUs and other compute technologies to obtain additional performance.


最佳计算资源

与传统的、以 CPU 为中心的机器人编程模型相反,额外计算平台的可用性为工程师提供了高度的架构灵活性。机器人专家可以通过根据需要选择、混合和匹配正确的计算资源来利用各种计算平台的属性——确定性、功耗、吞吐量等。