当今的嵌入式系统设计人员有各种各样的处理器类型可供选择,与更熟悉的CPU(中央处理器)相比,FPGA(现场可编程门阵列)和GPU(图形处理单元)增加了自己的各种优点和缺点。了解这些特性以及 FPGA 和 GPU 如何堆叠可以帮助系统集成商在选择和安装处理器时做出正确的选择,既可以单独使用,也可以与其他类型的处理器结合使用。
当今的嵌入式系统设计人员有各种各样的处理器类型可供选择,与更熟悉的CPU(中央处理器)相比,FPGA(现场可编程门阵列)和GPU(图形处理单元)增加了自己的各种优点和缺点。了解这些特性以及 FPGA 和 GPU 如何堆叠可以帮助系统集成商在选择和安装处理器时做出正确的选择,既可以单独使用,也可以与其他类型的处理器结合使用。
FPGA 是算法的硬件实现,由于硬件实现通常比软件实现运行得更快,因此它们的性能非常好。与 FPGA 不同,GPU 执行软件;与 FPGA 的硬件实现相比,执行复杂算法需要许多顺序 GPU 指令。GPU 的优点是其高内核数,这使得某些并行算法的运行速度比 CPU 快得多,尤其是那些使用浮点计算的算法。1,000 核 GPU 每个时钟周期可以运行 1,000 次浮点计算。对于信号和图像处理应用,GPU 是自然而然的选择。对于高度并行的数学密集型应用,GPU 性能通常优于 CPU,并且在每瓦性能方面接近与 FPGA 相当。
从历史上看,FPGA 的一个缺点是,与 CPU 和 GPU 相比,它们更难编程。CPU软件通常使用许多现成的编程语言之一进行编程,例如Java,C或Python。FPGA 使用硬件描述语言 (HDL) (如 Verilog)或超高速集成电路硬件描述语言 (VHDL) 进行编程,后者直接转换为 FPGA 逻辑单元。GPU 通常使用软件框架进行编程,使用户不必专门为 GPU 编写代码;相反,代码是在高级别编写的。FPGA也是如此:软件开发框架正在被设计为无需HDL(硬件描述语言)即可实现FPGA编程。FPGA 供应商已经提供了框架,并在其开发环境中构建了工具包,从而消除了对直接 HDL 编程的需求。
异构性/结构连接
嵌入式应用通常需要结合 CPU、FPGA 和 GPU 元素的异构系统架构。虽然传统的嵌入式应用可能包括单个 CPU 和 GPU 处理元件,但一些处理器密集型平台集成了多个 CPU、GPU 和 FPGA 引擎,这些引擎在通过高速 PCI Express (PCIe) 或以太网结构背板连接的单个或多个独立卡上实现,以并行通信和执行任务。或者,NVIDIA提供的一些最新的独立GPU加速模块(即Jetson AGX Xavier)在单个系统模块(SoM)上集成了六个不同的计算引擎,其中包括CPU,GPU,深度学习加速器,视觉加速器,多媒体引擎等。基于这项技术的坚固耐用的商用现货(COTS)系统的一个例子是Curtiss-Wright的Parvus DuraCOR AGX Xavier小型模块化任务计算机,它集成了Jetson AGX Xavier的NVIDIA CUDA核心加速图形处理,人工智能/深度学习推理和边缘计算功能。(见上文,图 1。
FPGA 的一个重要特性是其任意 I/O 连接,使其能够在没有主机 CPU 的情况下连接到传感器、网络或存储设备。例如,高端雷达系统可能需要许多离散处理元件和计算阶段来支持多个高速数据输入;在这种情况下,FPGA具有一些优势,因为它们可以直接连接到这些高速传感器并提供非常高的带宽。
延迟和确定性
随着总线速度的提高,预计较新的 CPU 和 GPU 的延迟会降低;但是,FPGA 的延迟更具确定性。对于FPGA,延迟约为1μs是可行的,而CPU延迟往往在50μs左右。
在系统而不是传统操作系统上使用实时操作系统 (RTOS) 可能有助于确定性,但不一定提供更好的延迟。换句话说,使用 RTOS 可以更好地了解处理器的执行速度,但不一定会导致更快的执行速度。
在为特定应用选择特定处理器时,许多变量都在起作用。在任何新设计计划开始时,咨询您信任的供应商的系统架构师会很有帮助,他们会解决这些问题并每天做出这些类型的决策。正确的选择可以改变一切。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !