#百人创作先锋团#自动驾驶汽车SoC的未来之路

发布于 2022-12-21 11:43
浏览
0收藏

简介

一个多世纪以来,汽车制造商一直依赖方向盘后面的人类驾驶员。随着L3级自动驾驶的到来,前面道路将通向完全自主和L5级的自动驾驶。然而,这将是一个漫长的过程。但L3自动驾驶的许多技术,无法在所有需要的方面进行扩展—性能、内存使用、互连、芯片面积和功耗等。


尽管如此,许多研究人员仍然乐观地认为,更好的算法和更密集、更有效的处理,将使事情朝着正确的方向发展。随着每一次突破,达到L5的前景就会改善。这些突破性创新之一是用于定制的可扩展的神经处理(基于硬件和软件共同设计的IP)异构的SoC。

神经处理的广阔前景

如果技术发展顺利,人类驾驶的日子可能很快就结束了。到目前为止,汽车制造商一直专注于高级驾驶辅助系统(ADAS),这是大多数新汽车、SUV和轻型卡车的标准配置。ADAS处理的任务包括盲点提醒、车道保持、辅助停车和避免碰撞。


接下来是自动驾驶--它是几乎不可能的目标还是一个合理的目标?从目前所有的迹象来看,相比于ADAS,在技术上自动驾驶在人工智能(AI)方面需要一个飞跃。


为了使自动驾驶发挥作用,需要协调包括人工智能在内的各种传感器、控制器和处理程序,必须监督车辆的每一个动作。在SAE L3级,人类驾驶员可以在必要时接管。L4是车辆在规定条件下的自动驾驶,而L5是车辆在任何情况下的完全自主。通往完全自主的道路不会是线性的。随着更复杂的场景的发展,人们需要寻找更复杂的问题解决方法。


随着设计人员对问题的解决,正在形成一个共识。汽车制造商正在寻求AI性能的数量级增长(以TOPS衡量,每秒数万亿次的操作),同时将功率保持在75W的主动冷却阈值以下。虽然原则上可以使用多个GPU来扩展人工智能性能,但现实情况是,GPU无法提供人工智能所需的TOPS/W能效。


新架构不断涌现,以满足对可扩展性、确定性、能效和实现的日益增长的需求。最通用的方法之一是将定制片上系统(SoC)中的神经处理单元(NPU)与异构处理内核相结合。

在自动驾驶技术堆栈内寻找答案

为实现完全自动驾驶,预计人工智能算力需要增加到多少?2019年对主机厂进行的一项调查中,预计L3需要的算力为24 TOPS,L4需要的算力为320 TOPS,而目前这一数字已经早已超过了。据说L5需要大约3000或4000 TOPS的算力。


目前引用任何数字都为时过早。关于哪种模型占优势以及它们需要多少TOPS的问题仍然悬而未决。多种多样的工作负载,许多是未知的情况,MAC操作可能不是最佳的指标。还需要考虑其他因素包括推理延迟、平均功耗和不确定性叠加时的准确性等。


深入了解自动驾驶堆栈就会发现,在管道(pipeline)的多个阶段对高性能AI推理的需求越来越大。目前,还没有针对自动驾驶堆栈的单一解决方案,但大多数方案都与图1中的视图一致。在这些阶段中的一些任务需要更多计算密集型的解决方案。

#百人创作先锋团#自动驾驶汽车SoC的未来之路-汽车开发者社区

图1.自动驾驶汽车中的人工智能处理


感知是最多样化的阶段,它获取有关环境和车辆在其中的姿态的知识:

分割是为了对感兴趣的像素进行分类。

检测将标记的像素群构建到需要识别和跟踪的对象中。

视觉能解释诸如车道线、路面、标志牌、车辆和行人等物体。

融合将来自不同传感器的信息以不同的速度混合成一个比单一传感器所能提供的更强大的集合。例如生成图像的相机、检测附近物体的雷达,以及构建3D点云的激光雷达。为了改善对不同场景和环境条件的处理能力。

定位将车辆放在地图上。


预测,可能是最关键和最密集的阶段。它与规划阶段一起,是解决L5自动驾驶的关键。简而言之,预测必须确定场景中车辆、周围车辆和其他物体的动作风险。几乎没有时间去辨别附近司机的意图或风格(“激进”与“平静”)。


规划有两部分:全局和局部。V2X(车联网)信息可能会增强此阶段的数据。

全局规划根据“任务”找到最佳路线。有些挑战是是众所周知的。在大型网络中,简单地预先计算所有可能的路线是不切实际的。即使使用IMU(惯性测量单元)增强功能,GPS也无法提供城市驾驶所需的精度。作业区、恶劣天气和演习等正常/异常问题可能会扰乱计划。一个例子是无法安全地改变车道时,错过了高速公路的出口。

局部规划在优化全局规划的同时找到了避免障碍的轨迹。行为计划包括道路规则、活锁(指线程虽然没有被阻塞,但是由于某种条件不满足,一直尝试重试,却终是失败)或死锁(指多个历程在运行的过程中因争夺资本而造成的一种僵局。当历程处于这种僵持状况时,若无外力浸染,它们都将无法再向前推进)的情况,以及优先观察者(将按照车辆当前位置有关的规则检查是否允许其前进)和间隙观察者(将检查“碰撞时间TTC”以确保其他交通参与者的安全通行)。运动计划将连续空间转化为离散空间并理解时空关系,如惯性和滑移的影响。


控制将规划输出转化为物理执行器的命令。这些包括转向、油门、制动和信号。可以应用经典或预测控制算法。与其他阶段相比,控制阶段对AI处理的需求有限,但在计算上可能仍然很复杂。


在通往L4和L5的道路上,尚未发现的细节可能会显著增加对系统要求。人们相信,通过更多处理,是可以达到L4的。通过更强大的算法集和更多的处理能力,人们对达到L5表示乐观。一些问题已经被探索出来,还有许多其他问题仍在继续。研究人员现在正瞄准自动驾驶堆栈的架构,寻找改进的方案。


管道中的计算密集型AI任务的例子包括:

•感知:对高分辨率场景中的每个像素进行语义分割;候选区域检测、3D点云检测和融合;重粒子滤波;SLAM闭环。

•预测:道路、风景、车辆和行人路段所需的不同方案;隐马尔可夫模型(从一组观察到的变量中预测一连串的未知变量);人类显着性模型;注意力集中;世界观认知模型的建立和更新。

•规划:运动的曲线插值;顺序优化;胁迫下短窗口的实时确定性。

#百人创作先锋团#自动驾驶汽车SoC的未来之路-汽车开发者社区

 管道、传感器和模型未来的变化

经典实现可能是自动驾驶堆栈最重要的架构限制。感知、预测、规划和控制阶段往往是按顺序进行的。每个阶段都在一个黑盒子里,有其他阶段看不到的操作。但是顺序流水线存在两个主要的架构缺陷:一个天真地假设自动驾驶汽车周围的世界是独立发展的;另一个是各阶段不断增加不确定性直到控制阶段。


一个推荐的解决方案是端到端的处理管道,根据当前车辆命令和下一个意图优化整个堆栈。管道和模型需要改变,例如,一些研究表明,模型使用贝叶斯深度强化学习。更远的许多概念仍在研究中,它们也可能对管道产生重大影响,例如:

•有条件的模仿学习

•带外错误检查

•候选区域和注意力集中

•多主体规划和控制

•长期映射增强


传感器组合的变化也正在到来。单一模式的传感器组合,如仅有摄像头,虽然简化了传感器的融合,但留下了太多无法检测的场景。长/短距离的差异和增加前瞻是必不可少的。更多的传感器、不同类型的传感器、更高的分辨率和更高的采样率推动着更高的处理要求。一些传感器处理任务可能是分散的,但传感器融合的大部分重任可能落在集中的AI管道上。


图2简单整理了一些流行的AI模型,是最适合管道中的哪些任务。更密集的模型将出现在整个堆栈中,模型种类增加,10个、20个或更多的模型同时运作并不罕见。

#百人创作先锋团#自动驾驶汽车SoC的未来之路-汽车开发者社区

图2常用的神经网络模型基准


随着整个处理组合的变化,将硬件锁定在针对有限的、特定模型优化的AI推理解决方案是不明智的。任何不能调整的解决方案,以跟上改进后的网络,它都会落后。计算架构应该如何应对,在保持灵活性的同时提供所需的AI推理性能水平?

将自动驾驶堆栈的进展转化为SoC架构

存在很多显而易见的风险,超过L3的自动驾驶工作负载将是多种多样的,对优化极具挑战,甚至在项目早期难以定义。随着最先进的自动驾驶堆栈的进步,将会出现更好的架构组合。


在最初的自动驾驶设计浪潮中,AI推理以可编程GPU的形式推出了软件解决方案。其结果是灵活性高,但空间、冷却、电源要求很高,神经网络(NN)资源利用率较低。重量和功耗都会缩短电动汽车的续航里程。当未来需要更多操作并降低功耗时,GPU作为可扩展的AI推理解决方案就已经过时了。


在第二波浪潮中,钟摆转向了硬件。自动驾驶工作负载最适合的是安排在SoC中的异构内核。尽管不适合大多数AI任务,但CPU内核在组织、调度和融合AI操作方面发挥着至关重要的作用。GPU内核擅长用于视频解码、缩放和图像处理的传感器接口。加密和额外的关键加速可能落在DSP内核上。


一批商业SoC如雨后春笋般涌现,大多数都是围绕明确定义的L3问题集设计的,有些则以L4为目标。供应商包括英特尔(通过Mobileye)、英伟达、高通和其他公司。


神经网络(NN)必须在所有条件下提供分辨率、准确性和确定性,如果要保持不确定性和一定范围内的误差,就没有可接受的折衷方案了。即使是使用经典NPU硬件的SoC设计也会遇到几个问题:


•扩展AI推理硬件的规模往往会增加延迟并降低确定性。

•AI推理硬件利用率较低(通常约为30-40%)会增加面积和功耗。

•同时容纳许多不同的神经网络(NN)会导致调度和内存问题。

•根据SoC架构的选择,将TOPS划分为合适大小的单元,以满足工作负荷的需要,这可能很复杂,或者不可能。

#百人创作先锋团#自动驾驶汽车SoC的未来之路-汽车开发者社区


定制的SoC架构是最适合探索和解决问题的方案,并提供OEM想要的差异化。第一个定制SoC设计,并达到L4目标的OEM将拥有巨大的竞争优势,L5也是如此。在围绕定制SoC NPU的讨论中,有几个方向正在发展:


•具有简单运行时的“即用即弃”方案,使工作的开始和结束具有可预测性,这是一个优势。在IP中扩展或缩小执行单元和互连,然后重新安排任务以适应工作负荷,这些都是至关重要的功能。

•需要单个SoC中的独立、隔离的AI推理引擎。具备可配置性,而不是一个通用的Block,例如256 TOPS,可以处理分割成多个部分,比如2x128 TOPS,或1x64 TOPS加上1x192 TOPS,这样提供了许多OEM所需的灵活性。

•更高分辨率的长距离传感器和检测方案可能会为自动驾驶商用卡车赢得关键时间,卡车需要更多时间才能从高速行驶中减速并安全行驶。更高的分辨率会提高TOPS的要求,并生成更多的中间数据,这些数据可能会超额使用DDR内存。

•NPU实施必须在几个维度上有效扩展:性能、内存使用、互连、芯片面积和功耗。通过扩大在SoC中较低性能水平的IP块,以满足TOPS目标时被证明是不现实的,要么占用太多的面积,要么占用太多的功率,或者两者都有。


下一波自动驾驶的浪潮将发生在定制的SoC上,使用异构内核和硬件软件共同设计的AI IP,重新定义推理效率的规模。

#百人创作先锋团#自动驾驶汽车SoC的未来之路-汽车开发者社区

一个基础IP的作用比想象的要多

NN的硬件设计通常集中在各层和它们之间的连接上。如果目标是实现一个神经网络(NN),那么这种经典方法是可以接受的。如果目标是同时执行10或20个NN,则以硬件为中心的方法最终可能会产生10或20个不同的设计。一种更好的方法是一个IP库能够高效地运行十个或二十个不同的神经网络,但如何实现呢?


一种解决方案是更改为以数据包为中心的方法,重点关注构成NN层的基元。当AI工作单元可以抽象为硬件执行解释的元数据时,新的可能性就出现了。工作单元变得可重新排序,并可调度到任何可用的执行单元。NNs可以被编译成元数据包流。由于每一层都是虚拟的,因此连接得到了简化,而且内存访问在任何规模下都被优化。改变一个NN可以简化为重新编译,而不是改变硬件。图3描述了数据包流和NPU执行单元的协同工作。

#百人创作先锋团#自动驾驶汽车SoC的未来之路-汽车开发者社区

图3.神经网络数据包流到NPU执行单元


如图4所示,一个在异构SoC中进行NN协调的全栈解决方案。深度学习框架的支持来自于Apache TVM。编译可以针对多个SoC配置。自定义层支持和多任务API有助于支持并发的NN模型,同时使解决方案能够适应未来的工作负载变化。高级功能包括混合精度量化功能以及用于调试和分析的工具。

#百人创作先锋团#自动驾驶汽车SoC的未来之路-汽车开发者社区

图4.软件平台


当仍处于架构阶段时,设计者可以在将IP投入制造之前探索延迟、功耗和其他指标。


作为异构SoC的一部分,以数据包为中心的NPU内核可以承担OEM梦想中的差异化工作,而不是一成不变的SoC设计来决定首选工作负载。一个共同设计的NPU内核,其数学执行单元在元数据包流上工作,在可扩展性、利用率、确定性、功耗和面积方面都能胜出:


•数学单元的重点是一个基本要素:卷积,对传入的数据应用权重和偏差。

•矩阵中的平铺式数学单元很容易划分和扩展,而且互连也保持得很短。

•处理元数据将DDR内存需求削减到约每层1KB,而不是100MB或更多。

•在任何负载下,任何NN的NPU硬件利用率都在70%至90%之间。

•数据包流保证了周期准确的NPU执行,保证了确定性的性能。

•序列和资源管理得到简化,最大限度地减少了面积。

•具有性能/功耗和性能/面积优势。


从项目管理的角度来看,通过一个基础IP实施NN完全胜出。许可简单。学习曲线低。验证和确认工作被最小化。可以轻松创建新的AI模型。一个单一的软件堆栈可用于所有平台和地域的车辆。有了NPU的硬件效率,团队可以专注于为自动驾驶系统设计自定义SoC和开发AI算法。

更多模型,更多TOPS,已知决定性的因素,更少的功率和面积

本次讨论从L4和L5自动驾驶未解决问题开始。很明显,更多的AI操作对于解决问题至关重要。但他们的工作内容以及他们是否可以在车载嵌入式实施中实现,目前仍然是未知数。更多AI模型也是强大解决方案的一部分,处理复杂管道中的各种任务。


通过AI推理技术方面的突破:共同设计的NPU内核在实现性能和效率目标的同时,构建了差异化的灵活性。在定制SoC设计中,团队可以快速实现自动驾驶堆栈,包括在单个NPU核心或分布式NPU核心中运行的多个AI模型。TOPS在以已知的确定性下进行扩展。


OEM可以探索和区分SoC解决方案,AI模型在未来发生变化和增长的影响风险可以忽略不计。这是一个可靠的基础,OEM可以在此基础上推进自动驾驶系统的发展。


文章转载自公众号:智车Robot

收藏
回复
举报
回复
相关推荐