查看: 1110|回复: 0

关于GPGPU计算的11个“传说”

[复制链接]
  • TA的每日心情
    无聊
    2018-10-12 09:46
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2019-7-11 10:35:29 | 显示全部楼层 |阅读模式
    分享到:
    当下,嵌入式系统设计主要面临两个困难,可将其归纳为:算力的损失和功耗的增加。主要的“罪魁祸首”包括:数据源的涌入(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.jpg
    图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.jpg
    图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.jpg
    图3:专为工业级和军用级应用而设计的GPGPU,正在重新定义SWaP优化和SFF系统的预期性能。

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

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 02:53 , Processed in 0.114785 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.