4. 中央计算平台设计:高性能计算平台(HPC)的硬件选型与资源调度

中央计算平台,说白了就是整车的“大脑”。它要处理来自四面八方——摄像头、雷达、激光雷达、车身传感器——的海量数据,还要实时做出决策。这个平台选不好,后面的软件架构再牛也跑不起来。

我个人习惯把中央计算平台的设计拆成三个核心问题:选什么芯片、怎么调度算力、怎么跟区域控制器配合。咱们一个一个聊。

4.1 高性能计算平台(HPC)的硬件选型

目前市面上主流的车规级高性能 SoC,基本就是三家争霸:NVIDIA、高通、英飞凌。它们定位不太一样,我分别说说我的看法。

4.1.1 NVIDIA Orin 系列

NVIDIA Orin 是我在项目中用得最多的芯片。它主打的是高算力和完善的生态。Orin 系列从 Orin NX(70 TOPS)到 Orin AGX(254 TOPS),覆盖了从入门到旗舰的需求。

核心优势:

  • CUDA 生态成熟,算法迁移成本低。我在一个 L2+ 项目中,直接把 PC 上的感知模型跑在 Orin 上,几乎没改代码。
  • 硬件级安全岛(Safety Island)符合 ASIL-D 要求,可以跑监控和降级逻辑。
  • 支持多芯片级联,适合做超大算力平台。

注意: Orin 的功耗不低。AGX 版本峰值功耗能到 60W+,散热设计一定要跟上。我曾经在一个项目中因为散热器选型保守,导致芯片降频,感知帧率直接掉了一半。嗯,后来换了均温板才解决。

4.1.2 高通 Snapdragon Ride 系列

高通的 Ride 平台,我最早接触是在 2021 年。它的特点是CPU 性能强、AI 引擎效率高,而且跟座舱芯片同源,容易做舱驾融合。

特性 NVIDIA Orin 高通 Snapdragon Ride
AI 算力 70-254 TOPS 30-700+ TOPS(Flex 架构)
CPU 核心 Cortex-A78AE(12核) Kryo(最多 16 核)
GPU Ampere 架构(2048 CUDA) Adreno 架构
安全等级 ASIL-D(Safety Island) ASIL-D(安全微控制器)
典型功耗 15W-60W 5W-65W
生态成熟度 高(CUDA) 中(QNX/Android Automotive)

高通的优势在于CPU 单核性能。你想想看,很多逻辑决策、路径规划还是跑在 CPU 上的,CPU 强了,整个系统的响应速度就快。我在一个项目中对比过,同样跑 A* 路径规划,高通的 Kryo 比 Orin 的 A78AE 快了大约 15%。

4.1.3 英飞凌 TC4xx 系列

英飞凌 TC4xx 跟上面两家不太一样。它不是用来跑 AI 的,而是做实时控制和功能安全的。TC4xx 系列是 TC3xx 的升级版,增加了 PPU(并行处理单元),可以分担一些轻量级的 AI 推理任务。

我一般把 TC4xx 放在中央计算平台里做安全协处理器。比如,Orin 跑感知和规划,TC4xx 负责车辆控制、故障诊断、降级策略。这样分工明确,安全等级也容易满足。

我的选型建议:

  • 如果项目追求极致算力和生态,选 Orin。
  • 如果项目注重 CPU 性能和舱驾融合,选高通 Ride。
  • 如果项目对功能安全要求极高,或者需要独立的实时控制单元,加一颗 TC4xx。

4.2 异构计算:CPU + GPU + NPU 的资源调度

选好了芯片,下一步就是怎么用好它。中央计算平台里,CPU、GPU、NPU 各司其职,但资源是有限的。怎么调度才能不打架?

4.2.1 各单元的分工

  • CPU:跑操作系统、逻辑决策、路径规划、通信协议栈。它适合处理串行、分支多的任务。
  • GPU:做图像渲染、传统视觉算法、并行计算。它适合处理大规模并行、数据密集的任务。
  • NPU:专门跑深度学习推理,比如目标检测、语义分割。它比 GPU 更省电,效率更高。

4.2.2 调度策略

我在项目中总结了一套“三级调度”策略,你可以参考一下:

  1. 任务级调度:在应用层,把任务按类型分配到不同的计算单元。比如,感知任务绑到 NPU,路径规划绑到 CPU,可视化绑到 GPU。
  2. 帧级调度:在中间件层,用时间触发的方式,确保每个计算单元在固定时间窗口内完成工作。比如,NPU 每 33ms 出一帧感知结果,CPU 每 10ms 做一次控制计算。
  3. 硬件级调度:在驱动层,利用硬件虚拟化或硬件隔离,确保安全任务不受干扰。比如,把 TC4xx 的实时任务放在独立核心上,跟 Orin 的 Linux 系统完全隔离。

一个实际案例:

我曾经在一个项目中,NPU 跑 YOLOv5 做目标检测,GPU 跑 BEV 融合,CPU 跑规划和控制。结果发现 GPU 和 NPU 抢内存带宽,导致 NPU 推理时间从 20ms 涨到 35ms。

解决办法是:在硬件层面,给 NPU 分配独立的内存通道;在软件层面,把 GPU 的 BEV 融合任务优先级降低,错峰执行。调整后,NPU 推理时间稳定在 22ms 以内。

4.3 中央网关与区域控制器(Zonal)的协同

中央计算平台不是孤岛。它要跟区域控制器(Zonal)配合,才能控制整车的执行器。

4.3.1 架构分层

我习惯把协同架构分成三层:

  • 中央层:中央计算平台(HPC),负责感知、决策、全局规划。
  • 区域层:区域控制器(Zonal),负责区域内的传感器/执行器接入、电源管理、数据转发。
  • 边缘层:智能传感器/执行器,比如摄像头、雷达、电机控制器。
中央计算平台与区域控制器协同架构 中央计算平台(HPC) 感知 · 决策 · 全局规划 区域控制器 A 左前/左后区域 区域控制器 B 右前/右后区域 区域控制器 C 车身/底盘区域 摄像头 · 雷达 激光雷达 · 超声波 电机控制器 灯光 · 门控 中央层通过千兆以太网(1000BASE-T1)与区域层通信,区域层通过 CAN-FD / LIN 与边缘层通信 区域控制器负责电源管理、数据汇聚、故障隔离,减轻中央计算平台的负载

4.3.2 协同的关键点

中央网关和区域控制器怎么协同?我总结了三个关键点:

  • 数据路由:区域控制器把传感器数据打包,通过千兆以太网发给中央计算平台。中央计算平台处理完后,把控制指令发回区域控制器,由区域控制器转发给执行器。
  • 电源管理:区域控制器可以独立控制区域内的设备供电。比如,车辆休眠时,区域控制器可以关掉摄像头和雷达的电源,只保留 CAN 唤醒电路。这个功能我在项目中用过,整车静态电流从 50mA 降到了 5mA。
  • 故障隔离:如果某个区域内的传感器坏了,区域控制器可以本地诊断并上报,不影响其他区域。中央计算平台收到故障信息后,可以降级运行,比如关闭自动泊车功能,但保留自适应巡航。

避坑指南: 我曾经在一个项目中,中央计算平台和区域控制器之间的通信协议没对齐。中央平台发的是 SOME/IP 服务发现,区域控制器只认 DDS。结果两边互相收不到数据,车机直接黑屏。后来统一用了 SOME/IP + DDS 桥接才解决。所以,通信协议一定要在架构设计阶段就定死。

4.4 小结

中央计算平台的设计,说白了就是选对芯片、用好算力、管好通信。NVIDIA Orin 适合高算力场景,高通 Ride 适合舱驾融合,英飞凌 TC4xx 适合安全控制。异构计算的关键是让 CPU、GPU、NPU 各司其职,别抢资源。跟区域控制器的协同,核心是数据路由、电源管理和故障隔离。

嗯,这些经验都是我在项目里一点点踩坑踩出来的。你设计的时候,多想想实际场景,别光看参数表。