1. 课程导入
自动驾驶系统本质上是一台“在高速移动中持续做感知、预测、规划与控制决策的实时计算机”。它与传统车载电子控制单元最大的不同在于:输入不再是少量标量信号,而是多路摄像头、激光雷达、毫米波雷达、超声波、IMU、GNSS 与高精地图等异构数据;输出也不再是单一执行指令,而是包含目标检测、语义分割、车道线、Occupancy、轨迹预测、行为决策与横纵向控制的复合结果。要让这些结果在几十毫秒内稳定产生,计算平台必须同时具备高吞吐、低时延、确定性与可扩展性。
一、自动驾驶计算需求的四个维度
理解推理调度工程,首先要看清需求从哪里来。自动驾驶计算需求可以拆成四个维度:算力规模、时延约束、数据吞吐与安全确定性。算力规模决定模型能否跑得动,时延约束决定车辆能否及时反应,数据吞吐决定传感器能否被完整消费,安全确定性决定系统在极端场景下是否仍然可控。
- 算力规模:BEV、Transformer、Occupancy 与端到端模型使单帧推理从数十 GOPS 上升到数百 TOPS 量级,且多模型需并行常驻。
- 时延约束:感知链路通常要求 30~100 ms 端到端闭环,控制周期甚至进入 10 ms 级,抖动比平均值更致命。
- 数据吞吐:8 路 1080p 摄像头原始数据可达数 GB/s,激光雷达点云与多传感器时间同步进一步放大带宽压力。
- 安全确定性:关键任务不能被非关键任务长期抢占,必须可预测、可隔离、可降级、可回滚。
二、异构算力挑战:为什么不能只用一种芯片
车载计算平台通常由 CPU、GPU、NPU、DSP、ISP、MCU 以及专用加速器组成。CPU 擅长逻辑控制、任务编排与不规则计算;GPU 擅长高并行浮点与矩阵运算;NPU 擅长定点/低比特神经网络推理;DSP 擅长信号处理与固定流水线;MCU 负责安全监控与实时控制。它们通过 PCIe、片上网络、共享内存与高速缓存互联,形成典型的异构计算拓扑。
异构带来三类挑战。第一是编程与调度碎片化:不同芯片有不同运行时、内存模型与同步机制,任务迁移成本高。第二是资源竞争与干扰:GPU 上的多个模型会争抢 SM、显存带宽与 L2,NPU 上的多任务会争抢片上缓存与 DMA 通道。第三是确定性与利用率矛盾:为了安全要预留资源,为了性能又要尽量填满流水线,调度策略必须在两者之间取得平衡。
三、推理调度工程的目标
推理调度工程的目标可以概括为一句话:在给定异构硬件与安全约束下,最大化有效算力利用率,同时保证关键任务的时延与确定性。具体可分解为五个可度量目标:
- 时延达标:关键链路 P99 时延满足设计预算,而非仅看平均值。
- 吞吐提升:通过批处理、流水线与内存复用,提高单位时间推理帧数。
- 资源高效:减少空闲等待、重复拷贝与显存碎片,提升 SM/NPU 利用率。
- 确定可控:关键任务具备优先级、隔离与超时保护,抖动可预测。
- 可观测可运维:能定位瓶颈、复现问题、动态调参与安全降级。
四、典型场景:一次城市路口通行中的调度链路
假设车辆以 50 km/h 接近无保护左转路口。此时系统同时运行:8 路摄像头 BEV 感知、激光雷达点云检测、目标跟踪与轨迹预测、Occupancy 网络、规划决策、以及安全监控任务。若调度不当,可能出现以下问题:
- BEV 模型占用 GPU 过久,导致预测模型排队,端到端时延从 60 ms 恶化到 140 ms。
- 多个模型频繁申请释放显存,产生碎片,触发同步等待与重试。
- 非关键日志与数据回传任务抢占 CPU,导致控制周期抖动。
- NPU 上多任务共享 DMA,带宽争抢使单帧推理时间不稳定。
合理的调度策略会为安全关键任务预留资源,将非关键任务放入低优先级队列,并通过流水线让感知、预测、规划在不同硬件上重叠执行。下面是一段简化的调度配置示意:
task: bev_perception
device: gpu0
priority: 90
deadline_ms: 40
batch: 1
memory: reserved 2.0 GB
task: trajectory_prediction
device: gpu0
priority: 80
deadline_ms: 60
depends_on: bev_perception
task: safety_monitor
device: mcu0
priority: 100
period_ms: 10
isolation: true
五、常见误区与复盘
| 误区 | 表现 | 正确做法 |
|---|---|---|
| 只看平均时延 | 平均值达标,P99 超标导致偶发急刹 | 以 P99/P999 与抖动作为核心指标 |
| 把所有任务等同对待 | 日志、回传与感知争抢资源 | 按安全等级划分优先级与隔离域 |
| 静态分配资源 | 场景变化后利用率骤降或排队 | 引入动态调度与反馈调优 |
| 忽视内存与数据搬运 | 算力未满,带宽先满 | 统一内存规划、零拷贝与流水线重叠 |
| 缺少可观测性 | 问题无法定位,只能反复试参 | 建立时延、利用率、队列深度等指标看板 |
六、整体课程框架
本课程围绕“需求—硬件—模型—调度—优化—落地”的主线展开,共 30 章。前段建立自动驾驶计算需求与异构算力认知;中段深入推理运行时、任务编排、内存管理、时延建模与多模型并发;后段覆盖性能剖析、确定性保障、安全降级、工具链与工程落地案例。你将逐步掌握从单模型推理到整车级异构调度系统的完整方法。