2. 自动驾驶计算平台与推理挑战
自动驾驶系统本质上是一个“移动的实时数据中心”。摄像头、激光雷达、毫米波雷达、超声波与IMU/GNSS持续产生数据,感知、定位、预测、规划、控制等模块必须在毫秒级完成闭环。与云端推理不同,车载推理面对的是算力、功耗、实时性、功能安全与成本五重约束的联合挤压。理解车载SoC的异构架构,是后续TensorRT部署与推理优化的前提。
一、车载SoC架构:从单芯片到异构计算平台
现代自动驾驶计算平台通常以一颗或多颗车规级SoC为核心。以NVIDIA Orin、Xavier系列为例,其内部并非单一GPU,而是由多个异构单元组成:CPU集群负责通用逻辑与任务调度,GPU负责高吞吐并行计算,DLA(Deep Learning Accelerator)负责固定算子模式的低功耗推理,PVA(Programmable Vision Accelerator)处理传统视觉与光流,ISP处理图像信号,还有安全岛、MCU、CAN/Ethernet接口等。各单元通过片上总线与共享内存交换数据。
这种架构的核心思想是让合适的任务跑在合适的单元上。GPU擅长卷积、矩阵乘、注意力等大规模并行算子;DLA擅长INT8量化后的卷积、池化、激活等固定模式;CPU则处理控制流、后处理、坐标变换等串行逻辑。若把所有模型都塞给GPU,功耗和延迟都会迅速恶化。
二、GPU与DLA异构计算:分工与协同
GPU与DLA的协同是车载推理优化的关键。GPU的优势在于灵活性和峰值算力,但功耗较高;DLA的优势在于能效比,但只支持有限的算子集合和量化格式。实际部署中,常见策略是:
- GPU承担主感知网络:如BEVFormer、CenterPoint、YOLO系列,算子复杂、动态shape多,适合GPU。
- DLA承担固定子网:如分类头、分割头、轻量级检测网络,量化到INT8后交给DLA,释放GPU资源。
- CPU承担后处理:NMS、坐标变换、卡尔曼滤波、任务调度,避免占用GPU计算单元。
TensorRT支持将部分层显式指定给DLA执行,但需要注意DLA对算子、量化、动态shape的限制。若某层不被DLA支持,TensorRT会自动回退到GPU,造成额外的数据搬运开销。因此,DLA的收益取决于模型与DLA算子集的匹配度,而非简单地把模型丢给DLA。
三、实时性、功耗与功能安全的三角约束
自动驾驶推理不是“跑得越快越好”,而是在功耗和功能安全边界内满足实时性。三者构成一个难以同时最优的三角:
| 约束维度 | 典型指标 | 对推理的影响 | 优化手段 |
|---|---|---|---|
| 实时性 | 感知 ≤ 50ms,端到端 ≤ 100ms | 决定batch size、精度、模型规模 | 层融合、INT8量化、CUDA Graph |
| 功耗 | SoC 10~60W,整车热设计受限 | 限制GPU持续满载,需动态调频 | DLA卸载、动态电压频率调节 |
| 功能安全 | ASIL-B/D,故障检测与降级 | 要求确定性延迟与冗余路径 | 安全岛监控、双通道推理、超时检测 |
| 算力 | Orin 254 TOPS,Xavier 32 TOPS | 决定可部署模型上限 | 剪枝、蒸馏、算子替换 |
常见误区:把“峰值TOPS”直接等同于“可部署模型算力”。实际有效算力受内存带宽、算子支持度、量化精度、调度开销影响,通常只有峰值的30%~60%。例如某模型在GPU上FP16推理需80ms,量化到INT8并层融合后可降至25ms,但若强行放到DLA,因算子回退反而可能变成120ms。
四、典型场景:城市NOA推理流水线
以城市NOA为例,一帧推理流水线大致如下:
# 伪代码:城市NOA单帧推理流水线
1. 多路摄像头采集 → ISP → 去畸变/归一化
2. GPU: BEV特征提取 + 时序融合(FP16)
3. GPU: 检测头 / 分割头(INT8)
4. DLA: 轻量分类子网(INT8,与GPU并行)
5. CPU: NMS + 跟踪 + 坐标变换
6. CPU/GPU: 预测 + 规划
7. 安全岛: 超时检测、输出校验、降级触发
该流水线中,GPU与DLA可并行执行不同子网,CPU负责串行后处理。若某一级超时,安全岛会触发降级策略,例如切换到备用轻量模型或限制车速。这正是功能安全对推理系统的硬性要求:不仅要快,还要可预测、可监控、可降级。
部署建议:在TensorRT优化前,先做“算子-硬件映射分析”:统计模型中各算子的类型、频率、量化敏感度,判断哪些适合GPU、哪些适合DLA、哪些必须留在CPU。再结合功耗预算和延迟目标,决定量化策略与并行方案。盲目全GPU或全DLA,往往不是最优解。
总结来看,车载推理优化的本质是在异构SoC上做“任务-硬件”匹配。理解CPU、GPU、DLA、PVA、安全岛的分工,理解实时性、功耗、功能安全与算力的相互制约,才能在后续TensorRT部署中做出正确的量化、层融合、并行与回退决策。