提到自动驾驶系统的研发,就不得不说其中比较关键的设计环节。即:智驾域控制器的运行效率和运行能力。这里就不得不提到其中的关键要素:算力和性能。那么,就这两点而言,是否有本质的区别呢?
实际上,这里所提到的域控性能是一个宏观概念,付之于客户而言,它是实际交付的功能使用效果是否理想;付之于开发者而言,则是域控能否满足功能运算所需要的软硬件性能;而更加围观的概念拆分下来,则是域控中“芯片的性能”。基于如上分析,提升自动驾驶系统运算性能实际上最终着眼于提升域控中的芯片性能。当然,这里也较少用“单芯片的性能”来评估整体中央域控的工作性能。实际上,芯片性能基本都是通过算力大小及利用率、指令复杂度、运行频率和并行度四个维度进行评价。本文将基于此分析来详细讲解如何提升芯片性能。
01 软硬件协同技术对芯片性能利用的提升
可以通过优化的硬件设计、高效的软件算法、专用指令、编译器优化、性能分析和固件/驱动程序优化来增强芯片性能。这种协作方法可确保软件和硬件无缝地协同工作,从而提高整体芯片性能。
1、硬件指令集设计
软硬件协同从芯片开发的早期阶段就开始合作,以确保硬件架构针对软件需求进行实时优化。比如,软件开发人员和硬件架构师通过协作设计可以满足软件需求的高效的指令集架构ISA。通过在ISA设计过程中考虑软件的要求,硬件可以提供专门的指令和功能来加速常见的软件操作。同时,利用数据并行、任务并行等先进的并行计算技术。这使得芯片能够同时执行多个任务,从而最大限度地利用计算资源。
2、编译器优化
其次,是进行编译器优化。软件编译器在将高级代码翻译成机器指令方面发挥着至关重要的作用。软硬件协同可以开发利用特定硬件功能所优化的编译器。这些优化可以包括指令调度、循环展开和内存访问优化,所有这些都可以显著提高芯片性能。
3、软硬件协同性能分析调优
此外,是性能分析和调优。软硬件协同可以共同分析和优化芯片的性能。通过使用分析工具来识别性能瓶颈,然后对软件和硬件进行有针对性的改进。这种分析和调整的迭代过程有助于最大限度地发挥芯片的性能潜力。
4、固件和驱动程序优化
当然,固件和驱动程序优化也是软硬件协同技术的重要一环。针对特定硬件配置优化固件和驱动程序可确保软件和硬件之间的高效通信,从而提高性能和稳定性。同时,针对性的采用先进的内存管理技术,例如片上缓存和内存压缩,以最大限度地减少数据移动和延迟。
最后,探索利用机器学习算法根据工作负载需求动态分配计算资源,进一步提高功耗利用率。
02 芯片异构设计对芯片性能利用的提升
异构计算“Heterogeneous Computing”是一种特殊的并行分布式计算系统。它能够经济有效地实现高计算能力,可扩展性强,能够非常高效地利用计算资源。利用异构计算等先进技术基于每个处理单元的优势的工作负载划分可以显著提高性能和能效,从而大大提高算力利用率。这涉及集成不同类型的处理单元,例如 CPU、GPU 和专用加速器,通过将特定任务卸载到最合适的处理单元,以有效处理不同类型的计算任务。比如,可以利用 GPU 来执行图像处理或深度学习等计算密集型任务,同时将更多通用任务分配给CPU。
此外,采用人工智能驱动的优化算法可以根据自动驾驶系统的具体需求动态分配计算资源。通过不断分析工作负载并相应地调整资源分配,可以实现更好的电源利用率和整体系统效率,最大限度地降低功耗。
1)SOC算力优化
对于SOC而言,通常其上的AI算力(很多称之为NPU)虽然是定值,然而考虑到实际应用中这类AI算力的应用很大程度上受制于算法模型。前面提到的关于神经网络部分就是主要涉及SOC的算力利用率问题。
同时,硬件加速器的进步,例如专用人工智能芯片或张量处理单元(TPU),是专门为加速神经网络计算而设计的。这些专用硬件解决方案可以显著提高计算能力利用率,因为它们专门针对神经网络工作负载进行了优化。
2)CPU算力优化
然而,除了SOC之外,MCU上的算力如CPU算力资源也是一个需要充分考虑到的要素。实际上CPU硬件资源是固化的,模仿构建虚拟机模式,如果能够通过虚拟化构建一些CPU内核作为运算最小单元。一个CPU芯片单元可以有多个CPU核(比如J5就有8个A55核),而一个CPU核就可以分为多个软件模块区分的CPU虚拟核,这些逻辑核就可以根据计算需求启用、禁用,并扩展以用于自适应的适配更多的计算任务进程。
3)GPU、DSA等算力优化
参考CPU布局方式,其余各类GPU、DSA等各类加速器计算资源也可以做到很好的运算性能。此外,对于内存之类的存储资源也可以考虑构建虚拟内存来做内存扩展。当然,诸如网络I/O资源、存储(Storage)I/O资源等,也可以像CPU一样,做到非常好的扩展性。
比如自动驾驶中的摄像头视觉图像处理的计算需求为例,它分为图像获取、特征抽取、特征处理、模式识别和动作反馈等步骤。其中对大量图像数据的高速并行实时处理比如像素处理、图像金字塔和梯度检测等需要GPU和ISP图像信号处理器这样专用内核来高速计算。而DSP和专用加速器则偏向卷积或傅里叶等数学计算加速,CPU更倾向通用计算和复杂动作反馈决策。依托异构计算技术能够整合这些不同架构的内核到单一芯片中从而适配自动驾驶的复杂计算要求。
03 优化神经网络架构设计对芯片利用性能的提升
如果每个计算节点都是孤岛,即使某一个节点算力利用率很高,但更多的节点可能处于闲置或者低利用率状态,这种短板效应就会导致实际算力利用率也不会很高。为了提高自动驾驶芯片的算力利用率,可以采用一些先进的技术。从这点出发,就需要考虑从运算源头来提升算力利用率。
众所周知,神经网络模型严重依赖计算资源来执行训练和推理等任务。高效的神经网络架构经过专门设计,通过减少计算和参数的数量,可以有效地利用芯片上的可用算力,最大限度地减少计算要求,同时保持合理的精度水平,对提高芯片算力利用率有直接影响。
神经网络模型与芯片算力利用率之间的关系至关重要,它可以极大地影响系统的整体性能和效率。接下来我们将以自动驾驶系统感知算法中最常用的神经网络算法为例进行讲解如上模块的相关影响。
1)高效深度卷积技术
同时,高效的架构通常会结合深度卷积等技术,分别对每个输入通道进行操作。以专为计算资源有限的移动和嵌入式设备而设计的高效神经网络架构 MobileNet 为例,相较于传统的卷积设计为每个输入通道使用单独的卷积运算方式,MobileNet主要是通过利用深度可分离卷积来实现高效率。此过程主要分为两个步骤:深度卷积和点卷积。在深度卷积中,每个输入通道首先分别与一组滤波器进行卷积。然后,在逐点卷积中,应用 1x1 卷积来组合深度卷积的输出通道。这个过程允许有效的参数共享并进一步减少计算量。因此,这种可分离卷积实际显著降低了计算要求,同时保持了合理的精度。
2)跳跃链接
此外,采用跳跃连接可以允许网络绕过某些层或块,从而减少训练期间梯度传播所需的计算量。与传统卷积相比,降低了整体计算复杂度,减少了计算量。通过使用这种优化跳跃链接的架构,可以更有效地利用芯片算力来提高性能和功效。
3)高效神经网络构建块
高效构建块主要是通过高效构建块的方式,从而对这些构建块以最小的计算开销:包括轻量级操作、参数共享或低阶因式分解技术,显著减少计算和内存访问的数量,从而最大限度地提高算力的利用率。
一个很好的例子是网络构建块EfficientNet。它采用复合缩放方法,同时优化网络的深度、宽度和分辨率方式,通过找到适当的平衡,EfficientNet 以更少的参数和计算量实现了更高的精度。
首先,EfficientNet统一扩展网络的深度、宽度和分辨率。这确保了网络的各个方面共同成长并保持均衡的表示能力。然后,使用复合系数独立缩放每个维度,优化它们之间的平衡。在保持准确性的同时减少参数和计算的数量,最大限度地提高性能,降低功耗。由此,EfficientNet 能够更有效地利用芯片算力,这种高效架构对于资源有限的自动驾驶域控制器而言是至关重要的应用程序。
4)加入Transformer机制
Transformer 算法凭借其自注意力机制,在自然语言处理任务中获得了广泛的应用。虽然 Transformer 算法本身的计算要求很高,但通过正确的优化和硬件支持,它仍然可以用于芯片算力的利用。
当前业界已经在优化基于Transformer的芯片算力利用模型上取得了一些成效。比如应用模型剪枝、量化和高效并行等技术来降低计算要求并使 Transformer 模型在芯片上更加高效。通过消除不必要的计算、降低精度以及利用并行处理技术,更有效地利用芯片的计算能力。
此外,硬件加速器(例如张量处理单元(TPU))的进步是专门为加速变压器计算而设计的。这些专用硬件解决方案可以显著提高Transformer模型计算效率,从而提高芯片算力利用性能和功效。
5)矩阵稀疏化
通常对于图像处理都是以矩阵形式实现的,稀疏矩阵包含大量零元素,可以用来节省计算资源。因此,矩阵稀疏化技术就可以直接影响芯片计算能力的利用率。通过利用专为稀疏矩阵定制的高效算法和数据结构,可以显著减少矩阵运算所需的计算量。计算量的减少意味着功耗的降低和芯片上算力利用率的提高。此外,稀疏矩阵表示还可以减少内存需求,从而提高内存利用率,并可能为其他计算释放资源。
这里可以再举一个与矩阵稀疏化和芯片算力利用相关的例子。考虑一个为机器学习任务执行大规模矩阵乘法的芯片。这些计算中涉及的矩阵可能非常大,尤其是在深度神经网络中。然而,这些矩阵中的许多元素可能为零或接近于零。通过应用矩阵稀疏化技术,我们可以识别并删除接近零的元素,从而得到稀疏矩阵表示。这使我们能够用更少的运算来执行矩阵乘法,因为零元素对最终结果没有贡献。因此,芯片的计算能力得到了更有效的利用,因为它可以专注于非零元素,并避免对零元素进行不必要的计算。这可以提高芯片的性能并降低功耗。
6)算力资源池化
模仿神经网络的思维处理方式,如果能够将计算节点进行资源池化,并构建高效的算力资源池,那这个问题应该就能很好的解决。
什么叫资源池化呢?其实资源池化是需要首先将跨物理资源、跨芯片、跨计算节点、跨集群来将所有计算资源组成一个整体的算力资源池,且该资源池是可以灵活分配和灵活扩展的。且该资源池需要参照一定的运算逻辑进行资源池化,池化过程就是将相同类型的计算过程进行分类标注后,分别调用资源池中的算力资源来做对应的计算。
当然构建算力资源池的另一种方法是构建兼容性算力网络。可以说,这也是非常有价值的提升算力利用率和性能的方法。因为,它可以把非常多的各种计算集群(即跨不同的集群、跨不同的数据中心、跨云网边端)连接到一起。比如,针对自动驾驶系统而言,车端算力始终可能因为芯片的算力容限出现瓶颈。然而,如果将运算算力通过跨集群的资源共享和业务调度分配到车端作为实时运算网络资源,那么这样的合作方式必然可以成为车端运算的强大助力。
除了前面的建议之外,探索量子计算或神经形态计算等新兴技术可能会在未来释放更高的计算能力效率。
04 总结
本文详细介绍了提升自动驾驶系统芯片运算性能的方法。包括利用软硬件协同设计方法来优化芯片架构和软件算法。确保硬件和软件之间的紧密集成,从而提高了芯片效率和性能。其次,高效的异构芯片架构设计也是很好的提升算力利用率的点。随后,则是经过专门设计的高效神经网络架构。例如 MobileNet 或 EfficientNet的架构通常采用深度卷积、跳跃连接或高效构建块等技术来减少所需的操作和参数数量。可以最大限度地减少计算要求,同时保持合理的准确性。
焉知汽车
龚淑娟
李峥
CES 2025期间,英伟达推出了“物理 AI”相关的解决方案。在汽车行业,英伟达的Omniverse + Cosmos,可以生成合成驾驶场景,将AI训练数据的规模提升数个量级。
2025-01-09 龚淑娟
通过人工智能(AI)建模和参数寻优等技术,对制冷站进行孪生建模,设计和构建了一个全新的汽车工厂制冷站能效智控平台系统,根据末端冷量需求实现设备投用精准预测,优化站内PLC控制系统,实现一键顺序自动控制,通过参数寻优算法,将最佳控制参数下发至控制器,协同整个制冷系统最优节能运行,最终达到降本增效、提升系统和人工运维效率的目标,节能效果显著。
2025-01-06 张路 杨欢
当前,国家高度重视工业企业的绿色发展建设,节能减排成为各行业的重要议题。汽车制造企业作为能源消耗大户,也应顺应时代发展,积极探索节能减排新技术,以降低运行成本,实现节能减排目标。本文从汽车工厂规划角度出发,总结汽车工厂节能减排新技术、新方法。
2025-01-03 朱彬 李斯南
2025-03-24
2025-03-24
2025-03-26
2025-03-26
2025-03-25
2025-03-25
2025-03-27
本文探讨了CAVA(CATIA-AutomotiveExtensions-VehicleArchitecture)在商用车整车设计过程中的应用。详细阐述了CAVA的技术特点、工作流程以及其在提高商用车设计效率和质量方面的显著优势。通过对现有商用车设计中CAVA的应用实例进行分析,重点探讨了其在校核便利性方面的表现。
作者:赵龙 杨凯帆 张淼 邓成刚 徐嘉乐 熊玉杰 武盼祥 赵雷雷 刘凯
评论
加载更多