引言
自动驾驶系统是一个典型的多任务实时嵌入式系统。它需要在毫秒级的时间内完成环境感知(目标检测、语义分割、跟踪)、行为预测、路径规划、车辆控制等一系列复杂算法。这些算法具有不同的计算特性:
- 深度学习推理任务(如图像分类、点云分割)需要高吞吐的矩阵运算,对并行计算能力要求极高。
- 传统视觉处理(如图像预处理、特征提取)需要大量定点或浮点运算,但并行性相对规则。
- 传感器数据处理(如毫米波雷达信号处理)涉及快速傅里叶变换、滤波等信号处理算法。
- 规划与控制算法(如模型预测控制、优化求解)多为串行逻辑控制,对实时性要求苛刻。
单一类型的处理器无法同时满足所有任务的性能与功耗需求。异构计算应运而生——在一个系统中集成多种类型的计算单元(CPU、GPU、NPU、DSP、FPGA 等),使每个任务都能运行在最合适的处理器上,从而实现整体性能最优、能效最高、实时性有保障。
本文将深入探讨自动驾驶异构计算平台的设计方法,从资源特性、任务划分、调度策略、工程实践到未来趋势,为开发者提供系统性的参考。
第一章 异构处理单元的特性分析
1.1 CPU(中央处理器)
特性:
- 擅长复杂逻辑控制、分支预测、串行计算。
- 拥有大容量缓存,适合执行操作系统、调度任务、控制流程。
- 单核性能强,但并行能力有限(通常 4-16 核)。
- 功耗较高,但通用性强。
在自动驾驶中的典型任务:
- 运行实时操作系统(RTOS)或 Linux,进行任务调度。
- 执行规划算法(如 A*搜索、Lattice 规划、MPC 求解)。
- 执行融合算法(卡尔曼滤波、目标关联)。
- 处理高精地图数据、V2X 通信协议。
- 运行诊断与安全监控模块。
1.2 GPU(图形处理器)
特性:
- 包含成百上千个小型计算核心,适合大规模并行计算。
- 擅长矩阵运算、卷积等 SIMD(单指令多数据)任务。
- 浮点运算能力强,尤其适合深度学习训练和推理。
- 功耗较高,需主动散热。
在自动驾驶中的典型任务:
- 深度学习模型推理(目标检测、语义分割、BEV 感知)。
- 图像处理(畸变校正、图像增强、光流计算)。
- 点云处理(滤波、聚类、特征提取)的并行部分。
- 占用网络预测。
1.3 NPU(神经网络处理器)
特性:
- 专为神经网络推理设计的 ASIC(专用集成电路)。
- 相比 GPU,能效比更高(TOPS/W 通常高 5-10 倍)。
- 对卷积、矩阵乘、激活函数等运算深度优化。
- 灵活性低于 GPU,但对特定模型高效。
在自动驾驶中的典型任务:
- 运行量化的 CNN、Transformer 模型(如目标检测、BEV 编码)。
- 执行模型推理的前向传播,常与 CPU 协同(CPU 负责预处理和后处理)。
1.4 DSP(数字信号处理器)
特性:
- 专为数字信号处理优化,擅长滤波、FFT、矩阵运算。
- 低功耗,适合连续流式数据处理。
- 指令集针对循环、乘法累加等操作优化。
在自动驾驶中的典型任务:
- 毫米波雷达原始信号处理(距离 - 多普勒 FFT、CFAR 检测)。
- 惯性测量单元(IMU)数据滤波与姿态解算。
- 音频处理(如紧急车辆警笛识别)。
- 图像传感器的预处理(去马赛克、白平衡)。


