当下,嵌入式系统设计主要面临两个困难,可将其归纳为:算力的损失和功耗的增加。主要的“罪魁祸首”包括:数据源的涌入(influx),技术的持续升级,系统规模的缩小以及系统内部密度的增加。

 

 

高性能嵌入式计算机(HPEC)系统已经开始在通用图形处理器单元(GPGPU)上利用专用的并行计算速度和性能,使系统设计人员能够将出色的功率和性能带入坚固耐用的小型化设计(SFFs)。

 

GPU 加速计算将图形处理单元(GPU)与中央处理单元(CPU)结合在一起,以加速应用程序,并将一些计算密集型任务从 CPU 移到到 GPU。

 

这里,需要特别关注的是,随着处理要求的不断提高,主计算引擎——CPU——最终会不堪重负。而 GPU 已经发展成为一种极其灵活且强大的处理器,并且由于具有改进的可编程性、精度和并行处理能力,可以比 CPU 更好、更快地处理某些计算任务。

 

如果能深入了解 GPGPU 计算,包括其强大的功能和局限性,可以帮助设计人员为应用选择能提供最佳性能的产品。

 

下面,我们就来分析一下关于 GPGPU 的 11 种说法和认知,看哪些是对的,哪些是错的。

 

1.GPGPU 只适用于消费类电子产品,如游戏中的图形渲染

这种说法不对。正如过去几年所展示的那样,GPGPU 正在重新定义数据处理和深度学习网络方面的能力,以及塑造着其在人工智能领域的形象和期望。且有越来越多基于 GPGPU 技术的军事和国防项目在应用中部署,包括用于雷达的先进处理能力,图像识别,分类,运动检测,编码等系统。

 

2. 因为是“通用的”,所以 GPU 不是为处理复杂的高密度计算任务而设计的

这种说法也是错的。典型的强大 RISC 或 CISC CPU 具有数十个复杂核心。GPU 具有数千个“专用”内核,经过优化可处理和操作大型数据矩阵,如显示器或输入设备和光学相机(见图 1)。这些 GPU 允许应用程序在多个内核之间共享算法,并且更容易构建和执行并行处理。能够在 GPU 上创建许多并发“内核” ——每个“内核”负责特定计算的子集——使系统能够执行复杂的高密度计算。

 

图 1:虽然多核 CPU 能提供增强的处理能力,但基于 CUDA 的 GPU 可提供数千个并行运行,并同时处理大量数据的内核。

 

GPGPU 管道在 GPU 上使用并行处理来分析数据,就好像它是图像或其他图形数据一样。虽然 GPU 在较低频率下运行,但它们通常具有许多核心数量。因此,与传统 CPU 相比,GPU 每秒可以处理更多的图片和图形数据。使用 GPU 并行管道扫描和分析图形数据可以实现大幅加速。

 

3.GPGPU 不够坚固,无法承受如井下监测、移动或军事应用等恶劣环境

错。加固的责任实际上是在电路板或系统制造商身上。在恶劣的电子环境中使用的许多零部件在制造时并不坚固,这方面,GPGPU 与其它器件相同。这时,就需要设计可靠系统的知识发挥作用了,包括哪种技术可以最好地减轻环境危害等因素的影响,并确保系统满足特定的应用要求。

 

例如, Aitech 拥有基于 GPGPU 的电路板和 SFF 系统,这些电路板和 SFF 系统符合许多航空电子设备,海军,地面和移动应用要求,这得益于其数十年积累起来的、可用于系统开发的专业知识。

 

4. 当处理能力超出系统要求时,替代方案需要增加功耗(即购买功能更强大的硬件)

这种说法是对的。如果用户试图避免使用 GPGPU,通常会导致 CPU 性能不足。为了尝试解决这个难题,通常会增加额外的 CPU 板,或者现有的板会超频,从而导致功耗增加。在大多数情况下,结果是降低了 CPU 频率性能以及需要降低时钟以补偿芯片温度上升。

 

5. 不添加另一个处理引擎会增加系统中的复杂性和集成问题吗?

在短期内,也许是这样,因为您需要考虑使用新的尖端技术的学习曲线。但从长远来看,不是这样。CUDA 已成为图像处理和算法的事实上的计算语言。构建 CUDA 算法后,您可以在支持 NVIDIA GPGPU 板的任何不同平台上“重复使用”它。将它从一个平台移植到另一个平台很容易,因此,该方法只需要很少的特定硬件,因此更“通用”。

 

6. 由于基于 GPGPU 的系统处理极大量的数据,因此会增加功耗

不是的。当今的 GPGPU 非常节能。一些 GPGPU 板的功耗与 CPU 板上的功耗相同。GPGPU 板可以使用数千个 CUDA 内核处理更多的并行数据。因此,功率 - 性能比是以非常积极的方式受到影响的因素。

 

7. 在性能和功耗之间仍需要权衡

是的,这些权衡总是存在的。更高的性能和更快的吞吐量需要更多的功耗,这是事实。但这些是您在使用 CPU 或其它处理器时,同样需要面对的问题,无一例外。

 

例如,采用“NVIDIA Optimus 技术”时,由于它是一种计算机 GPU 切换技术,其中,独立 GPU 处理所有渲染任务,最终图像输出到显示器仍由 RISC 处理器及其集成图形处理器(IGP)处理。实际上,RISC CPU 的 IGP 仅用作简单的显示控制器,从而实现无缝、实时、无闪烁的体验,无需在 GPGPU 或共享 CPU 上承担图像渲染和生成的全部负担所有 RISC CPU 上的图像识别资源。这种负载共享可使系统更加强大。

 

当运行不太关键或要求较低的应用程序时,可以关闭独立 GPU。英特尔 IGP 可处理渲染和显示调用,以节省电量并提供最高的性能功耗比。

 

8. 平衡 CPU 上的负载可以通过简单的电路板升级来完成,且足以管理系统所需的数据处理

错。对于这种情况,业界肯定会采用并行处理,即采用 GPU 处理,这是有充分理由的。并行处理图像是 GPU 最擅长的。随着数据输入和摄像机分辨率的不断增长,对并行处理架构的需求将成为常态,而不是奢侈品。对于需要同时捕获、比较、分析和决策数百个图像的任务和安全行业尤其如此(见图 2)。

 

图 2:随着数据输入的增加,CPU 在处理、负载平衡和时钟要求方面的能力将无法满足实际要求。

 

9. 摩尔定律也适用于 GPGPU

是的。有一个解决方案。NVIDIA 目前正在对多芯片模块 GPU(MCM-GPU)架构进行原型设计,尽管当今的集成电路制程工艺升级越来越困难,晶体管微缩速度明显减缓,但该架构可实现持续的 GPU 性能扩展。

 

在 GTC 2019 上,NVIDIA 关于 MCM-GPU 芯片的讨论部分,特别介绍了许多可应用于更高级别计算系统的技术,包括 mesh 网络,低延迟信令和可扩展的深度学习架构,以及有机基板上的 die-to-die 高效传输技术。

 

10. 学习一种全新的编程语言(如 CUDA)需要花费太多的时间和金钱投入

实际上,并不是这样的。目前,CUDA 是事实上的并行计算标准语言,且市场上已经部署了许多基于 CUDA 的解决方案,因此,许多算法已经移植到了 CUDA。NVIDIA 有一个大型的在线论坛,有许多应用案例,网络培训课程,用户社区等。此外,软件公司愿意帮助设计人员完成 CUDA 的入门。在许多大学,CUDA 现在是编程语言课程的一部分。

 

学习任何新的计算技术似乎都会令人生畏。但是,凭借可用资源和 GPGPU 技术的广阔前景,这是一种非常值得投资的编程语言。

 

11. 嵌入式市场没有“工业级”GPGPU,特别是 SFF,SWaP 优化系统

错。NVIDIA 拥有一套完整的、面向嵌入式市场的“Jetson”产品线(见图 3)。目前包括以下系统模块(SoM),每个模块都采用 SFF 设计,对其尺寸、重量和功耗都进行了优化。

 

TX1

TX2

TX2i:特殊的“工业”版本,适用于非常“恶劣”的环境

Xavier

 

图 3:专为工业级和军用级应用而设计的 GPGPU,正在重新定义 SWaP 优化和 SFF 系统的预期性能。

 

实际上,NVIDIA 推出了具有更长生命周期的 TX2i 模块,这意味着对于长期计划(如航空航天、国防和太空)以及几种工业应用来说,组件过时风险较小。业界已经部署了许多相应的军事和工业项目以及客户计划,每天都有新的应用推出。