自动驾驶的架构影响:约束与加速

林士杰,张云起,许长宏,马特·斯卡赫 穆罕默德·E·哈克1,
唐凌佳,贾森·玛尔斯
密歇根大学安娜堡分校 {shihclin,yunqi,hsuch,skachm,mdhaque,lingjia,profmars}@umich.edu

自动驾驶系统最近引起了广泛关注,许多行业领导者, 如谷歌、优步、特斯拉和Mobileye,已投入大量资金 和工程力量来开发此类系统。由于在做出安全操作决策 和实时完成处理方面存在严格性能要求,构建自动驾驶 系统尤其具有挑战性。尽管技术取得了最新进展,但此 类系统仍处于实验阶段,设计端到端自动驾驶系统仍然 是一个开放的研究课题。

为了研究这个问题,我们首先提出并形式化了构建 自动驾驶系统在性能、可预测性、存储、热和功耗方面 的设计约束。然后,我们使用最先进的获奖算法构建了 一个端到端自动驾驶系统,以理解构建此类系统的设计 权衡。在我们的实际系统表征中,我们识别出三个计算 瓶颈,传统的多核中央处理器无法在已确定的设计约束 下处理这些瓶颈。为了满足这些约束,我们使用包括 GPU、现场可编程门阵列和专用集成电路在内的三种加 速器平台对这些算法进行加速,分别将系统的尾部延迟 降低了 169×、 10×和 93×。通过基于加速器的设计, 我们能够构建一个满足所有设计约束的端到端自动驾驶 系统,并探索性能、功耗以及更高分辨率摄像头带来的 更高精度之间的权衡。

CCS概念 ·计算机系统结构 →神经网络;异构(混合)
系统;

允许出于个人或课堂教学目的制作本作品的数字版或纸质副本,且不 收取费用,但前提是不得为了盈利或商业优势而制作或分发副本,并 且副本须在首页注明本声明及完整引用信息。对于本作品中版权不属 于ACM(计算机协会)的组成部分,必须尊重其版权。允许注明出 处的摘要。如需以其他方式复制、重新发布、上传至服务器或再分发 至列表,则需事先获得特定许可和/或支付费用。请向
permissions@acm.org申请许可。ASPLOS’18,March24ś28, 2018, Williamsbur g , VA, USA© 2018 Association for Computing
Machinery. ACM ISBN 978‐1‐4503‐4911‐6/18/03…$15.00
https://doi.org/10.1145/3173162.3173191

关键词自动驾驶系统,深度神经网络

1 引言

谷歌、优步、特斯拉、Mobileye 以及许多汽车公司最 近都在未来应用自动驾驶系统方面进行了大量投资。自 动驾驶系统可使车辆在无需人类帮助的情况下自行驾驶。
具备自动驾驶功能的车辆能够感知环境、定位自身位置, 并在无需人为干预的情况下操控车辆安全抵达指定目的 地。
该应用的需求持续增长,导致行业投资不断增加。
英特尔最近以153亿美元收购了基于计算机视觉的自动 驾驶技术领导者Mobileye [66]。报告显示,到2035年, 具备自动驾驶功能的汽车预计将占据25%的汽车市场, 相当于1800万辆汽车[21],,而自动驾驶车辆市场的规 模预计将在 2035[21]达到770亿美元。
尽管谷歌、特斯拉和Mobileye等行业领导者在自 动驾驶系统方面取得了最新进展,自动驾驶汽车仍处于 实验和研究阶段。因此,设计合适的自动驾驶系统在很 大程度上仍然是一个开放的研究课题。
设计自动驾驶系统面临诸多挑战。这些系统必须始 终做出“正确”的操作决策以避免事故,因此通常需要 采用先进的机器学习、计算机视觉和机器人处理算法, 而这些算法通常计算量较大,以实现所需的高精度。尽 管计算量巨大,但此类关键任务系统仍必须能够实时响 应交通状况,这意味着处理任务必须始终在严格的截止 时间内完成。此外,该系统还需在一定的功耗预算下完 成必要的计算,以避免对车辆的续航里程和燃油效率造 成显著负面影响。
为了解决这些挑战,研究领域需要回答以下几个关键问 题:
哈克目前是谷歌的软件工程师。

第8B场:杂项 ASPLOS’18,2018年3月24日至28日,美国弗吉尼亚州威廉斯堡
751

本文档由 funstory.ai 的开源 PDF 翻译库 BabelDOC v0.5.10 (http://yadt.io) 翻译,本仓库正在积极的建设当中,欢迎 star 和关注。

  1. 构建自动驾驶系统的设计约束是什么? 2. 最先进 的端到端自动驾驶系统的计算特征和瓶颈是什么? 3. 在构建此类系统时,应采用何种架构以满足所有设 计约束?
    为了回答这些问题,我们首先研究了自动驾驶系统 的设计约束。我们确定了六类约束,包括性能、可预测 性、存储、热管理、功耗以及其他因素,并对自动驾驶 系统得出了一些独特的观察结果。例如,我们发现系统 必须能够在低于100毫秒的延迟和高于每秒10帧的帧率 下完成端到端处理,以足够快速地应对不断变化的交通 状况。为了体现这种任务关键型实时系统严格的性能可 预测性要求,应使用尾部延迟(即延迟分布的高分位数) 来量化系统的性能。我们还发现,为保持乘客舱在可接 受的温度范围内,需要增加冷却负载以消除计算系统产 生的热量,这显著增加了系统的功耗(几乎翻倍),使 得在不明显降低车辆续航里程和燃油效率的前提下采用 高功耗计算平台变得极具挑战性。
    为了理解此类系统的计算特征,我们首先需要解决 一个挑战:目前缺乏公开可用的、能够代表最先进的自 动驾驶系统的端到端实验框架,这为我们的社区研究这 些系统带来了显著障碍。因此,我们基于最近学术研究 [37]和行业实践者[72]发表的系统设计,构建了一个端 到端自动驾驶系统。我们所使用的算法组件代表了相关 领域中最前沿的进展,因为它们最近赢得了相应的机器 学习挑战(例如,YOLO[57]赢得了多目标检测挑战 [16])。在此架构中(详见第2.3节),摄像头捕获的视 频被并行地输入到一个目标检测引擎以检测感兴趣物体, 以及一个定位引擎以基于附近地标确定车辆位置。检测 到的物体坐标随后被送入目标跟踪引擎,以跟踪运动物 体并预测其运动轨迹。目标检测引擎和定位引擎的输出 随后被融合到同一三维坐标空间中,以规划操作决策。
    通过这一端到端的实验框架,我们发现三个计算瓶 颈,即物体检测、目标跟踪和定位,占总计算量的94% 以上。这些计算密集型
    瓶颈阻碍了传统多核CPU系统满足此类系统的设计约束。
    因此,我们进行了深入研究,以探索使用各种加速器来 加速这些算法组件的可行性。最后,我们为未来架构设 计应如何演进以适应这一新兴且快速发展的应用提供了 见解。具体而言,我们做出了以下贡献:
    • Identifying Design Constraints –我们从性能、可 预测性、存储、热管理和功耗方面识别并阐述了自 动驾驶系统的设计约束。尽管存在严格的实时性能 约束(即尾部延迟低于100毫秒,帧率高于每秒10帧), 此类系统的功耗仍因计算系统产生的热量需要更大 的冷却负载来散热而显著增加,从而对车辆的燃油 效率和续航里程造成重大影响(第2节)。
    •自动驾驶实验基础设施 -
    ing –为了研究自动驾驶系统的设计,我们构建了 一个端到端系统,其架构与最新的行业产品保持 一致。该系统中采用的模型和算法组件代表了最 先进的技术,因为它们最近赢得了相应的机器学 习挑战和奖项(第3节)。
    •加速自动驾驶 – 我们确定了端到端系统中的三个 计算瓶颈,包括物体检测、目标跟踪和定位,这些 瓶颈必须得到加速以满足所有设计约束。为了全面 研究在不同设备上加速这些瓶颈时的架构影响和权 衡,我们在三种不同的加速器平台(包括GPU、 FPGA和专用集成电路)上实现了它们,并提供了 定量分析(第4节)。
    •深入探索加速格局 –我们探讨了基于加速的自动驾 驶设计选择在三种加速器平台上的格局,并讨论了 在性能、功耗和可扩展性方面对未来架构的影响权 衡(第5节)。
    总之,我们发现采用GPU、FPGA和专用集成电路 加速的自动驾驶系统可分别将处理尾部延迟降低 169×、 10×、 93×倍。这使得我们能够实现一个满足第2.4节中 确定的所有设计约束的端到端系统。我们观察到,具有 高性能可预测性的计算平台(例如GPU、FPGA、专用 集成电路)对于满足此类关键任务应用的严格实时处理 需求至关重要。然而,功耗较高的加速器平台(如 GPU)可能会显著降低车辆的能效

第8B场:杂项 ASPLOS’18,2018年3月24日至28日,美国弗吉尼亚州威廉斯堡
752

示意图0

制造商 Mobileye[47] 特斯拉 [15, 70] 英伟达/奥迪 [67] Waymo [22, 68, 77]
自动化 平台 2级 2级 3级 3级 SoCs系统级芯片 + GPU 系统级芯片 +GPU 系统级芯片 + GPU
传感器 摄像头 摄像头,雷达 激光雷达,摄像头,雷达 激光雷达,摄像头,雷达

续航里程和燃油效率,因为为移除计算系统产生的额外 热量而增加的冷却负载几乎使系统功耗翻倍。

2 自动驾驶

为了研究自动驾驶系统,我们首先提出了一种针对不同 自动化等级(从无自动化到完全自动化)的自动驾驶系 统的正式分类体系,并阐述了当前行业在此分类体系中 的位置。然后,我们介绍了最先进的高度自动化自动驾 驶系统的计算流水线。基于该流水线,我们进一步研究 并形式化了构建此类系统的架构设计约束。

2.1 自动化等级

为了促进高度自动驾驶车辆(HAV)的发展,美国国 家公路交通安全管理局发布了《自动驾驶系统指南[75]》, 其中引用了国际汽车工程师学会(SAE Internationa l)定义的六个自动化等级[59]。
•无自动化(0级)– 人类驾驶员必须完成所有驾驶 任务,即使有来自车辆的警告。
•驾驶员辅助(1级) –在有限的驾驶条件下(例如 高速巡航),自动化系统与人类驾驶员共同承担转 向和加速/减速的责任,而驾驶员负责其余的驾驶任
务(例如变道)。under limited drivingconditions
•部分自动化(2级)– 自动化系统在有限的驾驶条件
下完全控制车辆的转向和加速/减速under limited
driving conditions,而人类驾驶员执行其余的驾驶任务。
•有条件自动化(3级) – 自动化系统在有限的驾驶
条件下处理所有驾驶任务,并期望人类驾驶员能够 响应干预请求(即恢复驾驶)。
•高度自动化(4级) –自动化系统在有限的驾驶条
件下处理所有驾驶任务,即使人类驾驶员未响应干
预请求。
•完全自动化(5级)——自动化系统在人类驾驶员能 够应对的所有驾驶条件下,全面掌控所有驾驶任务。
总之,1级和2级自动化仍然主要是驾驶辅助,其中人类 驾驶员始终需要处理大部分驾驶任务
所有条件下。自动驾驶系统在特定驾驶条件下可在3级至5级 自动化中承担全部驾驶责任,通常被称为高度自动驾驶车辆 (HAVs)。由于它们代表了自动驾驶系统的未来发展方向, 本文后续将重点关注3级至5级的高度自动驾驶车辆(HAVs)。

2.2 当前行业现状

为了了解当前行业的现状,我们调研了行业领导者在自 动化水平、所采用的计算平台和传感器方面的状况,如 表1所示。如表中所示,即使是特斯拉和Waymo这样的 行业领先企业,也仅能实现2级或3级的自动化,其中人 类驾驶员仍需深度参与车辆的控制。这表明构建自动驾 驶汽车存在诸多挑战,并激励我们的研究社区深入探索 这一新兴应用。
查看这些行业领导者所使用的计算平台和传感器, 他们大多利用系统级芯片(SoCs)和图形处理器( GPUs)的组合,为自动驾驶系统提供所需的大量计算 能力。另一个有趣的观察是,英伟达/奥迪和Waymo都 能够构建达到3级自动化的试验性自动驾驶汽车,并且 都使用了光检测和测距(LIDAR)作为传感设备的一部 分,这是一种通过发射光束以高精度检查车辆周围环境 的远程传感设备。尽管LIDAR的高精度使其成为自动驾 驶系统的理想传感设备,但其极高成本一直是阻碍此类 系统在市场上商业可用的主要原因之一。商业可用的 LIDAR设备价格高达7.5万美元 [76],,甚至远高于某 些豪华汽车本身的价格。因此,整个行业一直在努力摆 脱对LIDAR设备的依赖,转而构建仅使用成本更低的摄 像头和雷达来感知周围环境的基于视觉的自动驾驶系统。
例如,Mobileye [48, 50]和特斯拉 [69]等公司最近宣 布了其专注于基于视觉的自动驾驶系统的计划,该系统 主要由摄像头和雷达作为传感设备组成。因此,本文聚 焦于基于视觉的自动驾驶系统。

2.3 自动驾驶流程

自动驾驶的任务是操作车辆以到达指定目的地,通过视 频摄像头、激光扫描仪和毫米波雷达等各种实时传感器 捕获数据。自动驾驶系统随后进行必要的处理以识别驾 驶环境并做出操作决策。该系统通常由三个主要部分组 成:用于实现分米级车辆定位和跟踪附近物体的场景识 别、用于生成未来路径的路径规划,以及用于实际控制 车辆运行的车辆控制。

第8B场:杂项 ASPLOS’18,2018年3月24日至28日,美国弗吉尼亚州威廉斯堡
753

示意图1

遵循规划的路径 [37]。这些算法组件是大多数现代自动 驾驶系统的基础,这一点已通过优达学城构建的自动驾 驶汽车得到验证 [72],,并且与Mobileye设计其自动驾 驶系统的方式一致 [48]。这些组件的详细示意图如图1 所示。
捕获的感知数据首先并行地输入到目标检测器(图 1中的步骤1a)和定位器(图1中的步骤1b)。目标检测 器检测车辆周围感兴趣的目标,例如其他车辆、行人和 交通信号。检测到的目标随后传递给目标跟踪器(图1 中的步骤1c),以将检测到的目标与其过去的运动相关 联,并预测移动物体的轨迹。与此同时,定位器以高精 度确定车辆的位置。随后,来自目标跟踪器的物体运动 信息和来自定位器的车辆位置信息由传感器融合引擎进 行合并,并投影到同一三维坐标空间中(图1中的步骤 2)。
关于车辆位置和移动物体的融合信息随后被传递给 运动规划引擎,以分配路径轨迹(图1中的步骤3),例 如变道和设置车辆速度。运动规划引擎计算实现规划路 径的详细操作动作,并确定从起点到终点的路由路径 (图1中的步骤4)。车辆控制引擎通过操作车辆来简单 地跟随规划的路径和轨迹(图1中的步骤5)。

2.4 设计约束

尽管对传统汽车有着极为详细的规定(例如碰撞测试、 燃油经济性、车辆检查),但监管机构直到最近才开始 制定关于自动驾驶汽车的相关规定。在由联邦发布的自 动驾驶车辆政策中
美国交通部[75],仅提到“应高度重视软件开发、验证和 确认”,但未提供任何具体细节。因此,本节讨论的许 多设计约束均来自行业实践者(如丰田 [34],、优达学 城 [72] 和 Mobileye [48])发布的资料。

2.4.1 性能约束

为了避免汽车事故,自动驾驶系统需要能够“理解”实 时交通状况并足够快速地做出反应。尽管自动驾驶车辆 有潜力减少交通事故伤亡,但自动驾驶系统的实际性能 要求仍然在很大程度上未定义。根据先前的研究在驾驶 员辅助系统中的工作 [51],,自动驾驶系统的反应时间 由两个因素决定。
•帧率: 帧率决定了实时传感器数据输入到处理引 擎的速度。
•处理延迟:识别场景和做出操作决策的处理延迟 决定了系统对采集的传感器数据的响应速度。
人类驾驶员根据预期程度和选择的动作,反应时间各不 相同。例如,当人类驾驶员预期可能发生中断时,其反 应时间为 600 毫秒,否则为 850 毫秒 [33]。典型驾驶 员需要 0.96 秒松开油门,2.2 秒达到最大制动,以及 1.64 秒开始转向以避免事故 [43]。人类驾驶员最快可 能动作耗时 100‐150 毫秒 [54, 71]。为了实现更高的安 全性,自动驾驶系统应能比人类驾驶员更快地做出反应, 这意味着处理交通状况的延迟应控制在 100毫秒以内。
这与
第8B场:杂项 ASPLOS’18,2018年3月24日至28日,美国弗吉尼亚州威廉斯堡
754

Mobileye[62]最近发布的行业标准以及优达学城[72]的设计
规格。除了处理延迟外,自动驾驶系统还需要频繁更新其 “理解”,以跟上持续变化的实时交通状况。换句话说, 帧率必须足够高,以防相邻两帧之间的实时交通状况发 生剧烈变化。为了快速应对不断变化的交通状况,系统 的反应速度应快于人类的反应时间,这意味着每100毫 秒需要执行一次动作,即频率为10 Hz。这也与 Mobileye构建的防碰撞辅助系统的帧率[49]相一致。
性能约束:自动驾驶系统应能在100毫秒的延迟内, 以至少每100毫秒一次的频率处理当前交通状况。

2.4.2 可预测性约束

自动驾驶是一项必须实时执行的关键任务应用。这意味着如果处理未能在特定的截止时间内完成,则处理将失 败,因此性能可预测性至关重要。无法实现实时处理可 能会使乘客处于危险之中,有时甚至导致致命事故。因 此,为了实现广泛采用,自动驾驶系统的性能必须具备 极高的可预测性。这种可预测性包括时间方面(即满足 规定的时限要求)和功能方面(即做出正确的操作决策)。
从架构师的角度来看,我们重点关注时间方面的可预测 性。
具体而言,处理延迟的可预测性对于自动驾驶系统 可靠地快速响应实时交通状况至关重要。为了刻画大规 模分布式系统的非确定性,通常使用尾部延迟(即延迟 分布的高分位数,例如第95百分位、第99百分位延迟) 来评估此类系统的性能,而非平均延迟。正如我们将在 第3.2节中展示的那样,定位算法具有较大的性能波动, 这给自动驾驶系统响应实时交通状况带来了挑战。因此, 应使用尾部延迟、如第99.99百分位甚至最坏情况延迟 等高分位数来评估此类系统的性能,以反映严格的可预 测性要求。我们还将在第5.1.2节中通过实验验证为何应 使用尾部延迟。
可预测性约束:由于自动驾驶系统存在较大的性 能波动,应使用尾部延迟(例如第99百分位、第 99.99百分位延迟)作为衡量性能的指标,以体现严格 的可预测性要求。

2.4.3 存储约束

尽管GPS技术已被广泛用于导航系统中识别车辆位置, 但它无法提供自动驾驶任务所需的精度水平(例如,需 要分米级精度以确保车辆保持在特定车道内[40]),以 及定位车辆的空间可达性[5](图1中的步骤1b)。因此, 基于先验地图的定位已被广泛使用,以实现厘米级精度 的定位能力[44, 53, 64, 78, 79, 83],,其中将周围视图转 换为特征描述,以匹配先验地图中存储的特征点,从而 确定车辆的位置。然而,始终从云端传输先验地图是不 可行的,因为车辆并非总能接入互联网,且即使在网络 受限的情况下,车辆仍需执行必要的自动驾驶任务。因此,先验地图需要存储在自动驾驶汽车上。
然而,大型环境(例如,整个国家)的先验地图会 占用大量的存储空间。例如,美国全境的先验地图在自 动驾驶系统[74]上需要占用41TB的存储空间。
存储约束:自动驾驶系统需要在大范围内存储先 验地图以实现车辆定位,这需要数十TB的存储空间 (例如,完整美国地图需要41TB)。

2.4.4 热约束

自动驾驶系统中的热约束有两个方面:1)容纳计算系 统的空间温度需要在该系统可运行的工作范围内;2) 计算系统产生的热量应对车辆的热特性影响较小(例如, 不会加热发动机,从而可能影响车辆的可靠性)。
现代自动驾驶车辆中通常有两个温度区域:气候控 制的乘客舱内和[34]外部。在乘客舱外部,工作环境温 度可高达+105°C(环境温度[34],),这超过了大多数 通用计算机芯片的安全运行范围(例如,典型的英特尔 处理器只能在低于75°C的温度下运行[29])。因此,为 避免需要为额外区域构建气候控制功能,自动驾驶系统 应放置在气候控制的乘客舱内。
然而,当计算系统被放置在乘客舱内而没有额外的 冷却基础设施时,乘客可能不再能够忍受温度的升高。
例如,一个功耗为1千瓦功率的计算系统(如1个CPU和 3个GPU完全利用运行)若在乘客舱内不增加额外冷却, 会在一分钟内使温度升高10°C[18]。因此,需要增加空 调负荷

第8B场:杂项 ASPLOS’18,2018年3月24日至28日,美国弗吉尼亚州威廉斯堡
755

添加以去除自动驾驶系统产生的热量,以保持乘客舱温度在 可接受范围内。
ThermalConstraints:自动驾驶汽车的计算系统需要放 置在气候控制的乘客舱内才能安全运行,这意味着需要 增加额外的冷却能力,以消除计算系统产生的额外热量, 从而维持乘客舱内的可接受温度。

2.4.5 功率约束

在汽油动力汽车中,电气系统的功率通常约为1‐2千瓦, 由车辆的交流发电机提供[46, 55],,但增加功率会以降 低车辆燃油效率为代价[60]。具体降低幅度取决于汽车 的燃油效率,但对于汽油动力汽车的一个经验法则是, 每增加400瓦的功耗[17],每加仑英里数(MPG)评级 就会减少1英里(例如,对于一辆原本MPG为31的 2017年奥迪A4轿车,额外增加400瓦的功耗相当于 MPG减少3.23% [4])。同样,由于电池容量有限,额 外的功耗也会减少电动汽车(EV)的总行驶里程[69]。
自动驾驶系统的总功耗包括计算系统的功耗、存储 开销(第2.4.3节)和冷却开销(第2.4.4节)。虽然计 算系统的功耗在很大程度上取决于计算平台(例如中央 处理器、GPU),但典型的存储系统每存储3太字节数 据大约消耗8瓦[61]。为了消除系统产生的额外热量, 典型的汽车空调需要消耗约77%的冷却负载来散发热量 (即性能系数为1.3,表示提供的有效制冷量与所需做 功的比值[35])。也就是说,一个100瓦的系统会带来 77瓦的冷却开销,以去除系统产生的额外热量。
在图2中,我们分析了当向电动汽车施加额外的功 耗需求时,雪佛兰Bolt [10]续航里程的减少情况。左侧 前三组柱状图仅表示计算引擎带来的功耗和续航里程减 少,右侧的柱状图则显示整个系统总体(即包括存储和 冷却开销)的相应指标。令人惊讶的是,计算引擎仅贡 献了约一半的功耗和续航里程减少,而存储引擎尤其是 冷却开销几乎使影响翻倍。例如,配备1个CPU和3个 GPU并在完全利用状态下运行的计算引擎单独造成的续 航里程减少仅为6%,而整个系统总体的减少幅度接近 翻倍(即11.5%)。

示意图2

功率约束:自动驾驶系统的功耗由计算引擎和存储 引擎的消耗组成,并被显著放大
所需的冷却能力以消除额外的热量。功耗过高的系统可 能会显著降低车辆的燃油效率(例如,高达11.5%)。

2.4.6 其他约束

此外,还有一些其他约束条件在本文中未作重点讨论。
汽车中使用的任何设备都应能够承受车辆的冲击和振动。
突然的冲击范围大约在50 g到500 g之间(g用于衡量冲 击,代表重力),而振动可达15 g,频率范围为100至 2000 Hz [34]。硬件可靠性也是实时系统中的一项约束, 飞机通常采用三重模块冗余来提供安全保证[81]。然而, 自动驾驶汽车所经历的环境变化性(例如温度、大气压 力)远小于飞机,因此发生辐射引起的软错误等罕见事 件的可能性较低。

3 端到端系统

由于缺乏公开可用的实验框架,我们构建了一个端到端 工作负载,以研究自动驾驶汽车的架构影响。在本节中, 我们详细介绍了构成该端到端自动驾驶系统的最先进的 算法组件,以及选择这些算法组件的设计决策。随后, 我们对端到端系统进行特征分析,以了解其计算特征以 及在满足所有设计约束方面可能存在的瓶颈。

3.1 算法组件

为了构建一个代表最先进的自动驾驶系统的端到端系统, 我们从相应的机器学习基准测试套件中(例如用于目标 跟踪任务的VOT基准 [39])选取了当前最佳的公开可用 算法。

第8B场:杂项 ASPLOS’18,2018年3月24日至28日,美国弗吉尼亚州威廉斯堡
756

示意图3

示意图4

3.1.1 目标检测

对于目标检测(DET),我们使用YOLO [57],,这是 一种基于深度神经网络的目标检测算法,在VOC基准套 件[16]上的准确率和速度方面均优于所有其他多目标检 测算法。图3展示了该算法的概览。它首先将图像划分 为子区域,并通过全卷积网络预测每个区域中检测到的 目标的坐标及其置信度。然后使用阈值过滤掉检测概率 较低的目标。在输出中,我们重点关注自动驾驶中最关 心的四类物体,包括车辆、自行车、交通标志和行人。

3.1.2 目标跟踪

对于目标跟踪(TRA),我们使用基于深度神经网络的 单目标跟踪算法GOTURN [26],,该算法在VOT目标 跟踪基准[39]中的速度和准确率方面优于大多数最先进 的跟踪器。如图4所示,它根据前一帧的结果将当前图 像裁剪为搜索区域,将前一帧图像裁剪为跟踪目标。然 后将搜索区域和目标作为输入送入神经网络,以生成待 跟踪目标在当前图像中的边界框。
最初会启动一组跟踪器来等待传入的跟踪请求,以 避免初始化开销。为了记录被跟踪物体的数量,我们实 现了一个已跟踪目标表来存储正在被跟踪的物体。

示意图5 的概述。该算法以图像作为输入, 提取诸如地标等感兴趣特征,并为每个提取的特征生成 描述符。这些特征描述符被用于确定车辆位置并预测车 辆姿态。目前,设定一个阈值来判断物体是否经过或离 开:如果某物体在连续十幅图像中未出现,则将其从已 跟踪目标表中移除,并将跟踪器设为空闲状态,等待新 的跟踪请求。)

3.1.3 定位

对于定位(LOC),我们使用ORB‐SLAM [52],,该算 法在KITTI数据集[20],以及TUM基准测试套件[65]上 对车辆进行定位的现有开源算法中排名领先。除了高精 度外,该算法还能够在不同视角下实现车辆定位,使其 非常适用于自动驾驶系统。图5展示了该算法的详细信 息。输入的视频流被送入ORB提取器,利用oFAST算 法检测特征点。随后调用rBRIEF算法生成所提取特征 点的描述。
ORB‐SLAM 随后尝试将当前描述与先验地图数据库 (如第2.4.3节所述)进行匹配,以确定车辆位置。如果匹 配成功,则使用恒定运动模型来识别位置;否则,将在上 次识别位置周围的地图范围内进行更广泛的搜索以重新定 位。
此外,当当前环境与先验地图不同时(例如,地图 是在不同的天气条件下构建的),算法需要更新地图。
最后,为了基于地图数据库校准车辆位置,系统会定期 执行回环闭合,以在车辆移动时检测潜在的轨迹闭环。

3.1.4 融合

融合引擎(FUSION)获取跟踪器所跟踪物体的坐标, 并结合定位引擎提供的车辆当前位置。这些组合信息被 转换到同一三维坐标空间中,并发送给运动规划引擎以 做出车辆操作决策。

3.1.5 运动规划

对于运动规划(MOTPLAN),我们使用了最近发布 的开源框架Autoware中的算法[37]。当车辆处于停车 场或乡村等开阔区域时,该方法利用基于图搜索的方法 在空间格网中寻找最小成本路径。

第8B场:杂项 ASPLOS’18,2018年3月24日至28日,美国弗吉尼亚州威廉斯堡
757

示意图6

3.1.6 任务规划

对于任务规划(MISPLAN),我们也采用了最先进的 Autoware框架 [37] 中的实现 .
该策略是一种基于规则的方法,利用交通规则和驾驶区 域条件来确定路径轨迹,这与行业领导者Mobileye所 采用的方法一致[62]。该算法操作车辆以遵循由谷歌地 图等导航系统生成的路线。除非车辆偏离规划路线,否 则该算法仅执行一次。

3.2 系统表征

为了理解自动驾驶系统的计算特征并识别其中的潜在瓶 颈,我们使用具有代表性的KITTI数据集[20]在搭载英 特尔数学核心函数库(MKL)的英特尔服务器上对系 统进行表征,硬件规格列于表2。
图6显示了每个算法组件测得的均值、第99百分位 和第99.99百分位延迟。任务规划(MISPLAN)未包 含在内,因为它仅在开始时被调用一次以规划路线,除 非车辆偏离路径,否则不会再次执行。如图所示, DET、TRA和LOC各自的延迟贡献单独来看已经超过了 100毫秒的端到端系统延迟约束,这三个组件主导了系 统延迟。因此,我们得出结论:DET、TRA和LOC是自 动驾驶系统的计算瓶颈,本文后续部分将重点研究它们。
然后,我们详细分析 DET、TRA 和 LOC,以研究它们在计 算周期中的主要消耗位置。图7展示了每种算法的周期分解情况。

示意图7

组件。从图中我们可以很容易地识别出,深度神经网络 (DNN)在DET和TRA中是计算最密集的部分,分别 消耗了99.4%和99.0%的执行时间。与另外两种基于深 度神经网络的算法不同,特征提取(FE)在LOC中消 耗了超过85%的执行时间。这些较大的
比例表明,为了 满足自动驾驶系统严格的实时处理性能约束,DET和 TRA中的DNN部分以及LOC中的FE部分是加速的理想 候选对象。

4 加速自动驾驶

如第3.2节所示,传统的多核CPU系统不适合满足所有 设计约束,尤其是实时处理需求。因此,我们将关键的 算法组件移植到其他硬件加速平台,并研究基于加速器 的设计的可行性。在本节中,我们详细阐述了在这些加 速器平台上的设计与实现,并评估了它们在自动驾驶系 统设计约束方面的性能。

4.1 加速器平台

我们重点研究了三种不同的最先进的计算平台,包括 GPU、FPGA和专用集成电路,并采用多核CPU作为我们 的基准。硬件的详细规格如表2所示。我们使用的多核 CPU平台是一台服务器级双路机器,每个插槽配备8核中 央处理器,代表了一种较为传统的计算系统设计。我们研 究的GPU加速器是一款基于帕斯卡微架构的最新英伟达 Titan X GPU,配备12GB板载内存,提供强大的计算能力, 拥有3584核。对于FPGA平台,我们采用了一块配备256 个数字信号处理器(DSP)和大型可重构芯片架构的 Altera Stratix V开发板。最后,我们基于先前的研究探索 了专用集成电路设计。

第8B场:杂项 ASPLOS’18,2018年3月24日至28日,美国弗吉尼亚州威廉斯堡
758

图8

台积电65纳米和45纳米技术[9, 23],,并使用ARM 45纳米 技术构建我们自己的实现。

4.2 移植方法论

4.2.1 GPU实现

为了将三个瓶颈算法组件(即DET、TRA和LOC)移植到 GPU上,我们利用了高度优化的机器学习软件库。具体而 言,我们使用英伟达提供的cuDNN库实现YOLO [57]目标 检测算法。我们将GO‐ TURN [26]目标跟踪算法移植到 GPU上,使用Caffe [32],,这使我们再次受益于高度优化 的cuDNN库 [11]。用于定位的ORB‐SLAM[52]算法则通 过OpenCV库[6]移植到GPU上。

4.2.2 FPGA实现

为了将三个瓶颈算法组件移植到现场可编程门阵列上, 我们聚焦于最耗时的算法,即深度神经网络和特征提取 (FE),它们几乎占了总执行周期的95%。我们在阿 尔特拉Stratix V平台上构建了自行优化的实现,并在 以下章节中详细说明这两个算法的实现。
DNNs on FPGAs尽管Altera Stratix V平台具有高内存 带宽和大容量外部内存,但其片上内存有限,不足以存 储所有神经网络架构配置(即网络拓扑和神经元权重) 以及中间结果,因为我们所使用的先进的最先进的深度 神经网络具有复杂且深层的网络架构。
我们的设计概览如图8所示。我们的实现能够执行 DET和TRA中使用的所有类型的层,包括卷积层、池化 层、ReLU层和全连接层。该实现由四个主要组件构成: 内存控制器、缓冲区、头部解码单元(HdrDc_unit) 和处理单元(PEs)。内存控制器首先启动主机设备与 现场可编程门阵列加速器之间的数据传输,同时将层定
义(即层类型、权重)送入头部解码单元(HdrDc_
unit)以配置该层。每个缓冲区存储相应的神经网络权 重、输入值以及内部临时变量,直到该层执行完成。每 个处理单元(PE)主要由芯片架构上的数字信号处理 器(DSPs)实例化的乘累加(MAC)单元组成,随后 对WeightBuffer和InputBuffer中存储的数据执行必 要的计算,并将输出写入OutputBuffer。为了隐藏数 据传输延迟,我们对所有缓冲区实现了双缓冲机制,以 便在执行当前层的同时预先获取所需数据。总体而言, 我们能够在可用的自适应逻辑模块(ALMs)和DSPs上 实现超过80%的利用率。
FE onFPGAs特征提取(FE)在定位(LOC)中占主导计 算时间,因此我们在向现场可编程门阵列(FPGA)移植 时重点关注FE的移植。我们所使用的ORB算法包含两个主 要部分:oFAST用于提取特征点,rBRIEF用于为每个特 征点计算描述符。我们的设计概览如图9所示。
对于oFAST,我们使用移位寄存器实现图像缓冲器 (ImgBufer)和特征点缓冲器(FtrPntBufer),并将 掩码窗口分配给相应的寄存器。随着输入数据流入缓冲器, 它们通过掩码窗口进行过滤,从而使特征检测器仅接收到 所需的数据。Orient_单元采用atan2查找表(LUT)实现, 以避免直接计算atan2时大量使用乘法器和除法器。
对于rBRIEF,我们将模式信息存储在片上的模式查找表 中。旋转_单元用于旋转到

第8B场:杂项 ASPLOS’18,2018年3月24日至28日,美国弗吉尼亚州威廉斯堡
759

对应的坐标。与我们在oFAST中实现atan2的方式类似, 我们使用查找表(LUTs)来实现正弦和余弦函数,以 避免大量使用乘法器和除法器。由于可用的片上内存有 限,我们逐次执行一个二值测试,并将结果迭代地存储 到描述符缓冲区(DscpBufer)中。因此,完成一个特 征点的描述需要256次迭代。然而,由于该设计的简单 性,我们可以实现高时钟频率,从而达到低延迟。通过 在实际系统上的综合,我们证明了我们的特征提取( FE)实现在Stratix V开发板上可以以250MHz的频率 运行。通过使用查找表实现复杂的三角函数,我们将特 征提取(FE)的性能提高了1.5×倍。

4.2.3 专用集成电路实现

我们采用先前已发表的用于深度神经网络的专用集成电路实现 [9, 23]。
由于特征提取(FE)的专用集成电路实现公开发表较少,我们自行实 现了FE专用集成电路设计,并使用现代技术对其进行综合。
我们采用与图9中所述的FPGA实现相似的设计,在 Verilog中实现了FE专用集成电路,并使用ARM Artisam IBM SOI 45纳米库进行综合。我们对结果进行了验证,并通 过综合后仿真评估了该设计。表3显示了ofFE专用集成电路实 现的详细信息,其中我们能够实现高达4吉赫兹的时钟频率。
这主要归功于我们设计的简洁性,因为

规格
技术 ARM Artisam IBM SOI 45纳米
Area 6539.9 um2
时钟频率 4 GHz(0.25纳秒/周期)
功耗 21.97 毫瓦

以及采用重新定时流水线的优化设计。尽管整个流水线 需要更多的时钟周期,但我们相比之前实验过的更复杂 的实现方式仍实现了更好的性能。此外,通过使用查找 表替代复杂的三角函数计算,我们能够将延迟降低 4×。

5 评估

在本节中,我们对多种加速平台进行了全面评估,以探 索设计空间。我们重点关注第3.2节中识别出的三个计 算瓶颈,因为它们占端到端执行的94%以上。具体而言, 我们希望在本节中回答以下问题:
•这些加速器在自动驾驶中能够实现多大的加速比(第 5.1节)?
基于加速器的自动驾驶系统能否满足性能和可预测 性约束(第5.2节)?
基于加速器的自动驾驶系统的功耗如何影响车辆 (第5.3节)?
•这些系统在摄像头分辨率不断提高的情况下(第5.4节) 的可扩展性如何?

5.1 加速结果

图10展示了我们在所研究的四种计算平台上,针对平均 延迟、99.99百分位延迟以及测得的功耗所实现的加速 结果。我们使用Watts Up功率计[28]在真实系统上测 量了CPU、GPU和FPGA的性能与功耗。对于专用集成 电路(ASIC),我们参考先前的研究[9, 23]中基于深 度神经网络的两个算法——目标检测(DET)和目标跟 踪(TRA)的性能和功耗数据,并根据所需处理单元的 数量进行外推。对于我们自主设计的特征提取(FEs) 算法的ASIC实现,我们采用综合后结果中的功耗估算 值,并通过综合后模块仿真其性能。

5.1.1 平均延迟

如图10a所示,在多核CPU系统上运行DET或TRA均不 切实际,因为每个单独组件的延迟已远高于端到端系统 延迟约束(即100毫秒)。这是因为这两个组件都采用 了基于深度神经网络的算法,需要大量计算能力,而传 统的多核CPU无法满足这一需求。
不提供。相反,GPU凭借其大量处理器提供的强大并行处 理能力,在所有三个工作负载上均实现了显著更低的平均 延迟。尽管FPGA相比CPU实现了显著的延迟降低,但其 在DET(即369.6毫秒)和TRA(即536.0毫秒)上的平均 延迟仍然过高,无法满足100毫秒的延迟约束。这主要是 由于芯片架构上可用的DSP数量有限。为了支持这些复杂 的基于深度神经网络的算法,FPGA需要大量的DSP来提 供足够的计算能力,而这可以通过更先进的FPGA(例如 Xilinx VC709 FPGA开发板 [82])实现。正如我们所预期 的,专用集成电路能够实现显著的延迟降低,其中执行 TRA的平均延迟低至1.8毫秒。需要注意的是,DET在专 用集成电路上的运行速度慢于GPU的原因在于该特定设计 的工作时钟频率受限于200兆赫兹,但这并不排除具有更 高时钟频率的类似设计超越GPU的可能性。
发现1. 多核CPU不适合运行由复杂基于深度神经网 络的算法组成且需要大量计算资源的目标检测(DET) 和目标跟踪(TRA)。有限数量的数字信号处理器成为 现场可编程门阵列无法满足性能约束的主要瓶颈。

5.1.2 尾部延迟

图10b展示了四个平台上的99.99百分位延迟。从图中 可以看出,尽管多核CPU平均而言(即平均延迟)能够 在性能约束内执行定位算法,
在所有三个工作负载中都存在较高的尾部延迟。这通过 实验验证了我们在第2.4.2节中的观察:由于自动驾驶 系统具有较大的性能波动,应使用尾部延迟来评估其性 能,以满足性能可预测性的约束。其他计算平台从平均 延迟到尾部延迟均未出现显著增加,这对于此类关键任 务的实时应用而言是非常理想的。
发现2.由于定位算法存在较大的性能波动,应使用 尾部延迟来评估自动驾驶系统的性能以满足实时约束, 而传统的均值延迟等指标容易导致误导性结论。

5.1.3 功耗

我们在图10c中展示了四种平台在每个算法瓶颈下的功 耗。请注意,这些测量仅关注计算系统,不包括存储引 擎的功耗以及热约束的影响。这些测量针对单个摄像头 进行,而端到端系统包含多个摄像头(例如特斯拉使用 八个摄像头[70]),并且每个摄像头都配有一个计算引 擎的副本,以处理来自不同角度的摄像头数据流。我们 将在第5.3节中讨论端到-end系统的系统功耗。
如图所示,与通用平台(如CPU)相比,FPGA和 ASIC等专用硬件平台能显著提高能效。

第8B场:杂项 ASPLOS’18,2018年3月24日至28日,美国弗吉尼亚州威廉斯堡
761

传统多核CPU和GPU。例如,在专用集成电路上运行 DET相比CPU和GPU可将功耗降低近7倍。尽管单个摄 像头的计算引擎测得的功耗相对较低,但请记住,为了 处理多个摄像头数据流,计算引擎需要进行副本复制, 而存储引擎和热管理限制将会显著放大端到-end系统的总 功耗,如第2.4.5节所述。正如我们将在第5.3节中通过 实验所展示的那样,加速器平台的选择对车辆续航里程 和燃油效率具有重大影响。
发现3. 对于自动驾驶任务,专用硬件(如现场可 编程门阵列和专用集成电路)相较于传统的通用平台 (如多个中央处理器和GPU)具有显著更高的能效。

5.2 端到-end性能

然后,我们研究了这些基于加速器的自动驾驶系统设计 的端到-end系统性能。图11展示了不同配置下端到-end系 统的平均延迟和第99.99百分位延迟。x轴表示配置,其中 每个网格的颜色代表各个算法组件所运行的计算平台 (例如,x轴上的红点框表示LOC运行在专用集成电路 上)。例如,图中最左侧的第二组柱状图表示DET和 TRA均在GPU上运行、LOC在中央处理器上运行时的 延迟。请注意,由于LOC与DET +TRA是并行执行的, 因此端到-end延迟由二者之间的最慢路径决定。
我们从图中观察到,某些配置(例如,CPU上的 LOC,GPU上的DET和TRA)在考虑平均延迟时可以 在100毫秒延迟内满足性能约束,但在考虑尾部延迟时 不再可行。这再次证实了我们的观察:在评估自动驾驶 系统时应使用尾部延迟。此外,所有可行的设计均未采 用多核CPU,这是由于其固有的非确定性和不可预测性。
通过加速,我们能够将端到-end尾部延迟从9.1秒(即在 多核CPU上)降低至16.1毫秒,以满足实时处理约束。
发现4. 基于加速器的设计是构建自动驾驶系统的一 种可行方法,且具有高性能可预测性的加速器平台(例 如,专用集成电路)更有利于满足实时处理约束。

5.3 功耗分析

在本节中,我们研究了端到-end基于加速器的自动驾驶系 统的功耗,并量化了其对车辆续航里程和燃油效率的影 响。评估结果基于雪佛兰Bolt[10]进行。如第2.4.5节所 述,系统功耗包括计算引擎和存储引擎的功耗,并需根 据所需的冷却能力对额外产生的热量进行放大。我们假 设该系统需要存储美国地图(即41TB存储空间消耗 110W功率),并配备8个摄像头(即与特斯拉[70]相同), 每个摄像头连接一个计算系统的副本。
图12展示了与图11相同的基于加速器的自动驾驶系 统配置的端到-end功耗,其中我们在x轴上使用相同的表 示方法来指代系统配置。浅蓝色条形和左侧y轴显示了 端到-end系统的总功耗,深蓝色条形和右侧y轴显示了相 应的续航里程减少。尽管第5.2节中提到GPU等高性能 加速器能够实现低延迟计算,但该图表明,大多数配备 GPU的配置消耗大量功耗(即超过1000瓦),从而导 致车辆续航里程显著减少。特别是,在GPU上执行所有 计算任务可能会使车辆续航里程减少多达12%,这削弱 了使用GPU的优势。为了最小化这种负面影响,需要使 用FPGA和专用集成电路等专用硬件,将续航里程减少 降低至5%以内。
发现5。尽管GPU等高功耗加速器能够实现低延迟 计算,但车辆的续航里程可能会因此显著减少多达12%, 这在很大程度上是由于此类系统中热约束的放大效应所 致。需要使用FPGA和专用集成电路等专用硬件将影响 控制在5%以内。

5.4 可扩展性分析

除了处理延迟外,自动驾驶系统的性能可预测性还取决 于功能方面——即做出正确操作决策的准确率。如先前 的研究[3],所示,提高摄像头分辨率可以显著提升自动 驾驶系统的准确率,有时甚至可提升高达10%。例如, 将输入分辨率加倍,可以使基于深度神经网络的最先进 的目标检测算法VGG16的准确率从80.3%提升至87.4%。
因此,我们研究了基于加速器的自动驾驶系统在支持未 来更高分辨率摄像头方面的系统可扩展性。我们修改了 基准测试的分辨率以研究这一问题,并在图13中展示了 不同基于加速器的配置下端到-end延迟随输入摄像头分辨 率变化的情况。从图中可以看出,尽管某些专用集成电 路和GPU加速系统在全高清(1080p)分辨率下仍能满 足实时性能约束,但这些配置均无法在四倍高清( QHD)分辨率下持续运行。
发现6.计算能力仍然是阻碍我们受益于更高分辨率 摄像头带来的更高系统精度的瓶颈。

6 相关工作

先前的研究已经调查了自动驾驶系统的常见算法组件 [37]。然而,加藤等人提出的算法相当过时,无法代表 最先进的自动驾驶系统。为了解决这一问题,我们设计 并开发了一个端到-end的自动驾驶系统,采用了最近开发 的算法,显著提高了准确率。盖格等人设计并开发了一 个计算机视觉应用的基准测试套件,用于研究和评估自 动驾驶
驾驶系统[20]。Amer 等人对自动驾驶系统中用于路径 跟踪的最先进的算法组件进行了综述[2]。
也有大量研究工作致力于利用各种加速器平台来加 速基于机器学习的应用[1, 7ś9, 12ś14, 19, 23ś25, 30, 31, 36, 38, 41, 42, 58,63, 80]。具体而言,GPU相比多 核CPU已展现出数量级上的性能提升[24, 25, 27, 58]。这 是因为许多机器学习算法在其执行时间中花费了很大一 部分进行矩阵乘法运算,而该操作可以在GPU提供的大 量线程上并行化。这些机器学习算法(尤其是深度神经 网络)中存在的共性,使得研究人员能够设计专用集成
电路来加速它们,从而提供更高的性能优势和能效[1, 7
ś9, 13, 14, 23, 36, 41]。现场可编程门阵列也被讨论作为另 一种替代方案,其同样提供高性能和高能效,并具备通 过程序重新配置芯片架构的额外能力[19, 42, 63]。除了 计算之外,先前的研究还探索了新型内存架构,以将内 存靠近处理器[1, 12, 38]。

7 结论

本文提出并形式化了在构建自动驾驶系统时关于性能、 可预测性、存储、热管理和功耗等方面的设计约束。为 了研究此类系统的设计,我们使用最先进的机器学习算 法组件构建了一个具有代表性的端到-end自动驾驶系统。
基于该系统,我们识别出三个主要的计算瓶颈:定位 (LOC)、目标检测(DET)和目标跟踪(TRA)。为 设计一个满足所有设计约束的系统,我们探索了三种不 同的加速器平台来加速这些计算瓶颈。结果表明,采用 GPU、FPGA和专用集成电路(ASIC)加速的系统可 分别将这些算法的尾延迟降低 169×、 10×和 93×。基 于这些加速系统设计,我们进一步探讨了自动驾驶系统 在性能、功耗和未来可扩展性之间的权衡。我们发现, 尽管像GPU这样高功耗的加速器能够可预测地实现低延 迟计算,但其高功耗以及为满足热约束而增加的冷却负 载会显著降低车辆的续航里程和燃油效率。此外,我们 还证明了计算能力仍然是限制我们从更高分辨率摄像头 带来的系统精度提升中受益的主要瓶颈。

8 致谢

我们感谢匿名评审人提供的反馈和建议。本工作由福特、 密歇根数据科学研究所(MIDAS)和国家科学基金会 通过NSF职业奖SHF‐1553485资助。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐