首页 > 最新资讯 > 借助NVIDIA DGX A100构建自动驾驶汽车的AI基础架构
借助NVIDIA DGX A100构建自动驾驶汽车的AI基础架构

借助NVIDIA DGX A100构建自动驾驶汽车的AI基础架构

2020-08-19 11:06

#人工智能 #深度学习


自动驾驶汽车正在改变我们的生活、工作和娱乐方式并提高道路通行的安全性与效率。未来的每辆车都将具备自动驾驶功能,包括汽车、卡车、出租车、公共汽车和班车。

AI和自动驾驶汽车正在改变人们的出行方式和物流服务,为市值10万亿美元的交通运输行业带来全新的业务模式和超高效率。

为了实现这些革命性的效应,我们需要强大的计算能力和大规模生产软件方面的专业知识。多年来,NVIDIA一直致力于自动驾驶汽车的开发,借助DGX系统和Mellanox联网功能构建了内部基础设施NVIDIA DRIVE Infrastructure。

NVIDIA DRIVE Infrastructure是一个用于数据获取、管理、标记和训练以及仿真验证的完整工作流平台。NVIDIA DGX系统提供大规模深度神经网络模型训练和优化所需的计算能力,满足运行回放和数据工厂的计算需求。NVIDIA DRIVE Constellation在一个开放的硬件在环(HIL)平台上通过物理仿真对自动驾驶汽车在上路之前进行测试和验证。

NVIDIA所推出的NVIDIA DGX A100基于全新NVIDIA A100 Tensor核心GPU构建。第三代DGX系统DGX A100是一款通用的AI基础架构系统。DGX A100具有5 PETAFLOP AI性能,能够出色地处理所有AI工作负载,包括分析、训练和推理。它使企业机构能够打造一个可随时加速执行任何类型AI任务并长期动态适应计算需求变化的标准化平台。这一无与伦比的灵活性不但降低了成本,而且提高了可扩展性,使DGX A100成为现代化AI数据中心的基础模块。

NVIDIA DGX A100重新定义了自动驾驶汽车开发和验证中的大量基础架构需求。NVIDIA已概括了借助DGX-1系统的自动驾驶汽车基础架构对于计算的需求。本文将重新定义借助DGX A100系统的自动驾驶汽车基础架构对于计算的需求。

自动驾驶汽车的数据中心需求主要取决于以下几个方面:数据工厂、AI训练、仿真、回放和建图。本文将详细介绍数据工厂、AI训练和回放以及DGX A100系统的规模。由于建图所需的计算基础架构与AI训练相似,因此本文未对此进行专门的讨论。

自动驾驶汽车:海量数据

每辆数据采集车每年会产生多达2 PB的数据以及几十亿张图像。数据中心使用推理来摄入、选择和打标这些用于AI模型训练的数据。

为了管理从车辆中获取数据的数据流水线,需要一套经过优化的工作流程和基础架构,包括用于转码和压缩的计算资源、打标服务;可以存储和检索所有自动驾驶汽车数据的集中式地理分布数据湖和存储库, 这些数据包括原始传感器数据等、数据标注、用于训练和测试模型的真实数据、回放和仿真性能指标以及经过训练的模型。

显然,在制造AI自动驾驶汽车的过程中需要处理海量数据。数据量取决于以下因素:

--- 数据采集车队的规模
--- 车队的地理和区域分布
--- 数据采集车所使用的传感器的数量和类型
--- 汽车数据采集活动的时长
--- 有用和多样化数据的比例
--- 数据压缩技术

制造和运营数据采集车的成本十分高昂,因此企业机构通常仅制造少量的数据采集车并依靠消费者的汽车所采集的数据。一般情况下,数据采集车队的规模为5至50辆车。

数据采集车配备多个传感器,主要包括摄像头、雷达和激光雷达。所采集的数据被用于构建辅助汽车驾驶以及驾驶员监控和协助的AI。

数据采集车通常使用6-10个摄像头、4-6个雷达和2-4个激光雷达,它们都有不同的分辨率和距离范围。由于整个数据采集量由摄像头占主要,因此本文主要关注汽车摄像头所生成的数据。这些采集车平均每天行驶8小时,每年行驶250天,即每年共行驶2000小时。如果每辆车每天行驶两个8小时班次,那么每年每辆车的行驶时间将达到4000小时。

与车辆验证车队相比,数据采集车的传感器一般更加稳健。为了验证光学技术,它们的记录频率和分辨率会高于量产型摄像头。不同的传感器通过降采样实现数据的一致性。所采集的数据越多越好(例如可对各种CAN和总线信号进行采集),从而对不同的传感器进行交叉验证并进行合理性检查。

但并非所有采集的数据都是有用的。由于传感器故障、摄像头镜头上的灰尘、传感器安装错误等,所采集的数据可能会发生损坏。此外,还会发生数据完整性和所采集的数据缺乏多样化信息等问题。根据经验,有用的数据在所采集的数据中占比很小,平均只有30–50%的数据有用。紧邻数据采集的预处理层会影响数据量的传输并通过一种差异化机制来提高数据价值。

数据存储取决于所采集的数据量及其存储方式。你可以对数据进行无损或有损压缩并选择需要长期存储的数据。我将在下面详细说明存储需求。

表1所示的是一个5 - 50辆汽车车队的典型数据存储需求范围(每辆汽车配备5-10个传感器,混合使用2.3和8 Pix摄像头,并假设所采集的数据中有40%是有用的)。所有数字均已四舍五入。该表可供参考,用来了解数据采集车生成的数据量,然后根据自己的用例对需求进行细化。


表1 数据量和存储需求示例

无需标记所有采集的数据,因为收集大量冗余信息无助于提高AI模型的准确性。最好的办法是仅标记降采样的数据集。标记是一个成本昂贵的人工过程。随着数据集的增长,你需要采用更智能的方法对原始数据进行降采样。一般会使用的一种简单方法是在深度神经网络(DNN)上使用预训练的AI模型挖掘所采集的原始数据。

降采样流程使用AI模型对原始数据进行AI推理。随着这些模型在自动驾驶汽车开发过程中不断得到改进,你必须定期使用最新模型重新推理整个数据集。如果AI模型的更新十分频繁,则每天平均可能需要对2500 - 5000小时数据进行挖掘,而这些数据会随着时间而不断增加。

当你在10个AI网络上,用1辆汽车的10个传感器对平均2500 - 5000小时的驾驶数据进行推理并且周期时间(TAT)为5天时,需要使用15 - 30个DGX A100。可使用以下简单公式进行计算:

DGX A100数 = ((图像 (帧)数 / DGX推理吞吐量) x DNN数)/ TAT

数据挖掘根据所采集的数据总量以及整个数据集的规定挖掘频率而变化。下表例举了在数据工厂中使用摄像头数据进行数据挖掘的计算需求。每个图像为2.3 MB。帧数计算公式为:

图像数/年数 = 车辆数 x 摄像机数 x 帧数/秒x 每年每辆车的行驶小时数


表 2:数据挖掘计算量示例

AI模型训练

在普通自动驾驶汽车的开发中,你将需要开发10个或10个以上用于感知和车载监控的AI网络。每个网络都需要使用标记数据集训练AI模型。随着数据集和DNN的逐渐增长和发展,在每个新阶段都需要进行研究和探索,因而需要计算资源。

数据采集车队中发布的DNN一般能够做出实时、对时延敏感的响应,而基于数据中心的方案探索漏检情况的复杂性和保真度更高。图1所示的是各个网络的工作流程。


图1 自动驾驶汽车网络开发生命周期

如图1所示,对数据采集车获取的数据进行整理并标记,然后定义AI网络架构并使用标记数据运行训练。你可以为指定的网络选择最佳的方法并对超参数进行微调。通过验证数据测试经过训练和微调的模型后,将反馈发至数据采集活动并采集新的数据。整个AI训练流程是一个迭代过程。

AI模型训练基础架构的规模取决于多个因素:

-- 标记图像 - 上一部分提供了有关数据采集车原始数据采集量的指导。一辆汽车可产生2000个小时的数据。鉴于每辆汽车运行5个30 FPS的摄像头,总图像数为2000个小时/年x 3600秒/小时x 30帧/秒x 5台摄像头 = 每年每辆车10亿张图像。如前文所述,所采集的数据不可能全部有用,而且需要通过进一步缩减采样才能进行标记。平均每10秒取1帧对数据进行缩减采样,最终可以得到约300万张图像的标记数据集。
-- TAT - 这是确定AI基础架构规模的一个重要因素。较长的TAT会影响AI工程师和数据科学家的工作效率,而较短的TAT则需要庞大的AI基础架构。因此,选择合适的TAT对于训练至关重要。
-- 并行实验 - 每个AI模型通常会并行运行10个或10个以上的实验。为了进行并行实验,你必须探索不同的架构、方法、训练算法等。AI模型开发主要分为三个阶段:探索、开发和模型部署。

探索阶段

在探索阶段使用较小的数据集(10-20K图像)训练AI模型,但会进行许多并行实验。进行大量并行实验是为了测试多种构建AI网络的架构和方法。探索阶段所需的TAT较短(约1-3小时),因此在一天中可以进行许多并行实验,而且AI工程师的工作效率很高。

开发阶段

开发阶段筛选出探索阶段中的一些AI模型,然后使用较大的数据集(约200–300K帧)进行训练。该阶段的TAT通常为24小时,AI工程师在运行模型后可以先回家,然后再返回工作。与探索阶段相比,该阶段并行实验的数量较少。

模型部署阶段

为了微调AI模型,需要搜索整个超参数空间并使用整个数据集进行训练,因此无法经常进行模型选择。TAT会根据模型发布的需要而明显增加(约5-10日)。

发现已发布的DNN中的漏检内容对于确定整体稳健性至关重要。DNN会对一系列棘手的图像和情景进行评分,从而评估异常道路遭遇事件,例如高速公路上的行人、梯子或床垫等。根据所提供的独特极端情况级别,TAT大体上较短。还可观察到传感器校准的灵敏度,尤其是在像素保真度不同的摄像头重叠区域内,比如广角摄像头与窄视野摄像头,在切换传感器套件之前,确定哪个视野具有有效的实用范围。

在所有三个阶段,你需要平均每天运行10个并行实验,并且目标TAT为24小时。基准测试表明,在一台DGX-1上使用300K图像进行训练平均需要24小时。因此,可以得出以下结论:

10个AI模型 x 10个并行实验 x 1个DGX/模型/Exp = 100个DGX-1,用于支持目前总标记数据集为约3M (每个AI模型300K)的自动驾驶汽车团队。

由于引入了新的架构功能,A100的AI训练峰值性能超过V100 10-20倍。正如基准测试所示,DGX A100一般可将自动驾驶汽车 AI训练工作负载性能提高约3到5倍。我认为保守的基础架构规模和方向性指导方法可令DGX-1系统性能平均提高3倍。这意味着为了运行10个AI模型、并行实验为10次且每个AI模型的标记图像数据集为300K,你需要大约35个DGX A100,TAT为1天。


表3 各级自动驾驶汽车AI的训练量范围


根据以下计算公式计算所需的DGX A100数量:

DGX A100数 = ((每个DNN的平均图像数/DGX-A 100吞吐量 x AI模型数 x 并行实验数)/TAT

DGX A100需求不仅取决于数据集的规模,还取决于并行研究数量以及周期时间。

未来,数据集将随着数据活动和标记功能的增加而不断扩展。线性计算扩展无法满足大数据量计算需求。随着数据集的增长,自动驾驶汽车团队需要对降采样的数据集(缩减2到5倍)进行大量实验和研究。在训练期间,只有TAT很长的生产型AI模型才能使用整个数据集。较长的TAT对计算量的影响较小。

回放

回放指对自动驾驶汽车软件重新播放上路的采集车已记录的传感器数据。回放非常适合用于测试大量实际数据。通过对数百万英里行驶中所采集的带注释图像进行回归分析来测试并改进新的DNN。

运行回放主要是为了使用两种模式中的一种进行大规模的验证测试:

-- 在HIL模式中,你可以在汽车中部署的实际硬件上运行驾驶算法。该模式以实时速度运行。
-- 在软件在环(SIL)模式中,你可以使用数据中心GPU运行这些驾驶算法,从而以超实时运行进行大规模测试。

回放规模取决于以下因素:

-- 待回放的数据小时数
-- TAT
-- 并行实验
-- 驾驶软件管道

驾驶软件主要包括感知、路径规划和车辆动力学以及控制。每名自动驾驶汽车软件开发者所使用的管道都是不同的。管道中的瓶颈决定了回放工作负载的基础架构规模。以下是一些例子:

-- 自动驾驶流水线高度依赖于AI并且大部分计算需求均来自于推理。推理工作负载是该流水线的瓶颈。
-- 另一个流水线需要对压缩数据进行解码。GPU上的解码器吞吐量可能会成为瓶颈。
-- CUDA性能可能会成为回放流水线的瓶颈。

下面是一个确定计算量的示例,假设回放工作负载主要取决于推理。在此例中,大规模回放测试将运行至少10000小时的传感器数据,并且可以扩展到100000小时或更长时间的传感器数据。

传感器总帧数计算公式如下:

帧数 = 验证小时数 * 每小时帧数

可使用以下公式计算DGX A100所需的计算量:

DGX A100数 = (帧数 * 并行实验数)/TAT

 


表4 计算量确定示例


总结

自动驾驶汽车的开发是一项需要大量加速计算基础架构的计算密集型工作。这项工作首先需要一座具有PB级存储容量的数据工厂,用以储存产生自数据采集车队和DGX A100的数十亿个传感器图像、对原始数据进行预处理并选择需要标记的图像。为了训练和验证AI模型,需要更多的DGX A100,同时还需要方向性指导来评估自动驾驶汽车基础架构对数据挖掘、AI训练、回放和其他工作负载的需求。

DGX A100是一个可以让你以纵向扩展和横向扩展方式运行工作负载的通用AI平台。它树立了新的计算密度标杆,将5 PETAFLOPS的AI性能浓缩在6U尺寸中,并用一个平台取代了各种AI工作负载的传统孤岛式基础架构。

DGX POD结合了NVIDIA加速计算架构、Mellanox网络架构和系统管理软件,提供使超级计算能力大众化的解决方案,使超级计算能力变得易于访问、安装和管理,从而满足自动驾驶汽车基础架构的需求。

相关新闻