[自动驾驶技术]-8 Tesla自动驾驶方案之硬件(AI Day 2022)
特斯拉随后于同一活动上介绍了Dojo的硬件与软件。值得注意的是,在软件部分与之前发布的AI编译器存在一定程度的重叠。本文沿用这一思路进行阐述,并将内容划分为三个主要方面:AI编译与推理;Dojo硬件;以及Dojo软件功能介绍。
特斯拉车道检测网络


特斯拉车道网络基于稀疏采样技术进行车道线检测与位置形状运算,在实现这一功能的过程中显著降低了运算复杂度,并且能够在高帧率下持续输出实时交通数据。在特斯拉FSD推理系统中占据核心地位的是基于稀疏采样的数据处理方法,在这一框架下采用先进的运算与存储优化策略提升了系统的整体性能。
1 稀疏点预测
基于卷积神经网络或其他适用架构的网络首先计算最可能的空间位置点的热图(heat map),这一步骤通过计算每个潜在空间位置的概率值来确定其出现的可能性。
ArgMax操作:执行最大值位置运算,在生成的热图上确定具有最高概率的空间位置索引;这一过程定位出潜在的关键区域。
One-hot coding:通过空间位置索引的转换得到one-hot coding。这种one-hot coding具有稀疏性特点,在单个索引位置上赋值1,在其余所有索引位置上均为0。
2 稀疏计算
嵌入向量选择:基于one-hot编码从嵌入表(embedding table)中匹配对应的嵌入向量。在训练阶段的过程中,在线学习系统会生成这些参数值;同时,在SRAM存储器架构中被设计出一个索引机制来存储各位置特征的表现;这种机制允许通过矩阵乘法操作快速完成查询过程以实现高效的向量化表示。
缓存机制:将选中的嵌入向量存储于一个token cache中;通过该cache mechanism减少了每次迭代需重新计算 embedding的数量;从而显著提升了模型在处理大规模数据时的运行效率与运算速度
矩阵乘法用于实现搜索:该方法通过矩阵乘法进行嵌入式搜索与计算。这种技术借助硬件加速器(例如特斯拉FSD芯片)对矩阵运算进行了优化设计,从而实现了更快的计算速度提升。
3 稀疏点处理
特征融合:通过自回归机制并配合迭代优化的过程完成稀疏点特征求取。
在每一轮计算过程中均会整合上一轮得到的结果。
最终形成完整的空间表征。
迭代优化:在每一次迭代过程中, 模型输出一批新的稀疏点预测结果, 并对这些点的特征信息与前一阶段的结果进行综合分析, 进行进一步优化. 经过多次循环后, 直至获得最终稳定的稀疏点集合.
特斯拉的AI编译器

特斯拉的AI编译器专为自动驾驶系统的深度学习模型推理优化而设计,并负责将复杂的神经网络图高效地进行推理运算,在FSD计算硬件上运行。
1 AI编译器功能
特斯拉开发了一款专为处理大规模神经网络图而设计的AI编译器。该编译器能够划分并优化这些复杂的计算结构,并在特斯拉自研硬件上生成高效的执行代码。该编译系统负责分析包含数十万个节点与连接关系的计算图谱,并支持自动驾驶系统中多个关键功能模块的应用开发
2 编译器工作流程
基于前沿的AI技术构建而成的智能编译器系统,在软件开发流程中扮演着关键角色。相较于传统编译器系统而言,该系统通过引入机器学习算法实现代码优化能力,并具备动态分析运行状态的功能特性。其创新性主要体现在两个方面:一是能够实时识别潜在错误并提供修复建议;二是支持多语言程序代码的理解与转换功能。这种系统架构不仅提升了开发效率,并且在复杂程序设计中展现出卓越的表现能力;此外,在资源占用控制方面也表现出了显著优势——它能够在运行过程中自动进行资源分配优化操作,并能根据实际负载情况灵活调整运行频率设置以确保系统的稳定性和可靠性得到有效保障
编译器首先对输入的完整神经网络图进行解析(Parsing),该图可能包含多个并行的任务节点及其相关联的子任务节点。通过应用先进的图划分算法(Algorithm),编译器将复杂的大规模计算图划分为若干个相互独立的小规模子图(Subgraph)。每个子图对应一个相对独立的计算模块(Module),这些模块可以在硬件层面上实现独立运行(Execution)以提高系统的整体效率和并行处理能力。
通过独立优化每个子图来进行子图优化(Subgraph Optimization),这一过程主要根据特斯拉硬件特有的特点进行高度量化的调整。主要涉及的操作包括操作融合、常量折叠以及子图内部的并行化等技术手段。
3)生成高效代码(Code Generation):编译器负责处理优化后的子图并将其转换为适合FSD硬件所需的低级代码。所生成的代码能够充分地利用这些特性。例如通过加速矩阵运算和利用特定的人工智能计算单元来增强性能。
4)链接与调度(Linking and Scheduling):将各个独立的子图代码进行连接,组成一个完整的推理流程。通过高效配置的调度算法安排数据传输路径与计算顺序,在保证数据传输路径合理且计算流程紧凑的基础上实现最小化推理延迟的同时最大化计算效率。
3 常规优化策略
运算融合(Operation Fusion):通过将多个相邻的运算器进行结合优化,在一定程度上降低了中间数据存储与传输的需求。例如,在实际应用中可以采取卷积运算与激活函数相结合的方式,并直接计算激活后的输出结果。
常量折叠(Constant Folding):在编译阶段对所有可能的常量表达式进行预先计算,并通过这种方式从而减少了运算过程中对输入数据依赖的部分。例如将所有不依赖于输入数据的固定运算提前进行处理以提高效率。
3)内存优化(Memory Optimization):通过优化内存分配策略和数据存储布局以提升系统的整体性能。该方法能够有效降低内存访问时间间隔以及带宽利用率的同时实现资源的最佳利用效率。该方案结合内存复用技术实现同一内存区域在不同时间段存储不同数据类型的技术手段,并通过动态资源分配机制进一步提高系统运行效率。
4)并行化(Parallelization):充分运用FSD硬件的多核架构及其并行计算能力,在线将计算任务分解后同时进行处理,并借助专用AI加速单元所具有的快速处理能力,在此过程中显著提升整体运算效率。
5)稀疏计算(Sparse Computation):本节将介绍稀疏计算(Sparse Computation)这一概念及其应用方法。主要采用基于稀疏矩阵乘法和稀疏激活函数的技术框架,在处理大规模神经网络模型时能够显著降低不必要的运算量。具体而言,在实际操作中将重点在于如何通过专注于处理非零元素的操作来降低整体运算负担。
流水线和批量处理(Pipelining and Batching):通过管道式技术将不同计算任务相互衔接并行执行,以提高计算资源的使用效率。采用批量处理技术,则可同时接收大量输入数据,在同一推理过程中完成多数据的分析工作,从而降低单次推理所需的时间成本。
DOJO硬件



1 Dojo Tile
该加速器中的核心计算单元被称为Dojo Tile。其中每个由25个D1芯片构成(负责并行处理大规模矩阵乘法运算)。这些高性能芯片专为高效的矩阵运算及深度学习任务进行了优化设计。该加速器模块的设计着重于高带宽与低延迟特性,在处理大规模计算任务时展现出卓越的性能水平。
2 System Tray
System Tray作为Dojo加速器中的核心组件之一,在系统架构中扮演着关键角色;其独特的功能配置不仅负责机械与热管理的关键任务,并且整合了高效的数据传输机制;每个配置能够支持多达六个Tile的同时,在计算能力方面达到了惊人的54 PetaFLOPS水平;为了进一步提升性能表现,在硬件资源方面进行了全面优化:包括采用模块化布局、经过特殊工艺处理的表面、基于高性能通信网络协议的数据传输、多层次散热架构以及大带宽内存模块具备先进的设计理念;整个系统的整体架构则体现了良好的扩展性和可扩展性
一种高性能的层压母线系统(Laminated Bus Bar)能够在极高的功率密度水平下实现高效的机械性能与优秀的热管理效果。该系统具有显著的高功率密度水平,并且在机械性能和热管理方面表现出色。其高度达到75毫米,并且具备良好的散热性能;能够承载六个Tile单元,并且具有稳定的安装特性;总重量达到135公斤左右
System Tray配备了超带宽的DRAM接口,并专门用于存储训练数据集。该系统采用了TTP协议作为通信手段与训练Tile建立连接,并实现了跨设备的数据传输效率。
3 Exapod
Exapod作为Dojo系统的高级集成模块,在整合多台加速器方面具有显著优势;致力于整合多台加速器以实现更高的计算能力,并配置冗余电源系统;其总计算能力达到了1 ExaFLOP,并能够以高效的方式处理大规模的机器学习任务;同时具备稳定的运行状态应对高功率需求;通过将三相480伏交流电稳定地转换为52伏直流电来保障系统的稳定性
DOJO软件
特斯拉全自动驾驶(FSD)软件系统依托于一套高度优化的软硬件协同机制运行,在其核心架构中包含多个关键组件:基于Just-In-Time技术实现的神经网络编译器、由LLVM平台构建的后端处理系统以及完善的并行数据采集流水线系统等
特斯拉全自动驾驶(FSD)软件系统依赖于高度优化的软硬件协同工作模式,在其核心架构中包含三个主要组成部分:基于Just-In-Time技术实现的神经网络编译器、由LLVM平台构建的后端处理系统以及完善的并行数据采集流水线系统等
JIT NN编译器与LLVM后端系统:JIT NN编译器实时进行神经网络模型的编译工作,并将高层次的神经网络代码转换为低层次的机器指令序列。该系统中的LLVM后端模块利用高级编程语言构建优化的机器指令序列,并通过LLVM优化框架进一步提升指令执行效率。这些优化后的机器指令能够在Dojo硬件平台上实现高效的运行效能。
摄取流水线(Ingest Pipeline):主要负责将数据快速且高效地接收并传输到硬件中以确保保证硬件系统始终拥有充足的数据来进行处理从而有效防止由于数据不足而导致硬件性能下降的问题

1 性能优化
性能的提升依赖于利用率(utilization)和加速器占用率(occupancy)。
硬件表现出极高的性能水平,在编译器的作用下能够实现最大的效率利用率。流水线架构的重点则在于维持足够的数据传输速率以支持高效的运算需求。特斯拉Dojo系统旨在通过高效利用计算资源来处理复杂的大型模型结构,并且能够显著提升计算密集型任务的处理速度。不仅能够显著提升计算密集型任务的处理速度,并且也能有效提升延迟敏感环节的运行效率(包括梯度汇总以及参数聚合过程)。
2 编译器优化策略
1)提取并行性
模型并行:在多个加速器上并行执行不同部分的模型。
数据并行:在多个加速器上并行处理不同批次的数据。
张量并行:在多个加速器上并行处理单个张量的不同部分。
2)SRAM中的张量存储:张量通常在SRAM中分片存储,并在执行层时即时复制。
同时,在传输数据的过程中最大限度利用计算资源
3 性能测试结果
一句话,特斯拉的硬件性能远超行业其它GPU。


