2. EyeQ硬件与计算平台
EyeQ系列是Mobileye为ADAS与自动驾驶感知任务定制的SoC家族,从早期EyeQ1到EyeQ6,其设计哲学始终围绕一个核心矛盾展开:在车规级功耗与散热条件下,持续提供足够的多路摄像头实时感知算力。理解这一矛盾,是理解Mobileye检测跟踪算法为何采用特定结构、特定数据流和特定精度策略的前提。
一、EyeQ的异构架构:不是通用GPU,而是感知专用流水线
EyeQ芯片内部并非单一处理器,而是由多种计算单元组成的异构架构。以EyeQ4和EyeQ5为代表,典型组成包括:
- 多核MIPS/ARM CPU集群:负责任务调度、目标管理、跟踪逻辑、CAN通信与功能安全监控,不承担大规模卷积计算。
- 向量加速器(如EyeQ4的VMP、EyeQ5的XNN/VPU):面向卷积、池化、激活等神经网络算子做定点/浮点混合加速,是检测网络的主力。
- 专用视觉加速器(如EyeQ4的PMA、EyeQ5的VMP):处理光流、立体匹配、特征点提取、图像金字塔等传统视觉任务,支撑跟踪与深度估计。
- 图像信号处理器(ISP)与DMA:完成去马赛克、畸变校正、多路摄像头同步与零拷贝搬运。
这种架构决定了算法设计不能像在桌面GPU上那样“先堆网络再优化”,而必须按加速器能力反向设计网络:卷积层通道数、卷积核尺寸、激活函数类型都要考虑目标加速器的吞吐特性。例如,EyeQ4的VMP对3×3卷积和深度可分离卷积有较高利用率,而对大核卷积和动态shape支持有限,因此Mobileye的检测网络大量采用小核堆叠与固定分辨率输入。
二、算力分配:检测与跟踪如何共享有限资源
EyeQ的算力不是“无限池”,而是按任务类型划分到不同加速器。以EyeQ4为例,其整体算力约2.5 TOPS(定点),但其中可用于卷积的向量算力、可用于光流的视觉算力、以及CPU的通用算力是分开的。这意味着检测网络和跟踪算法不能随意抢占同一资源。
实际工程中,算力分配遵循以下原则:
- 检测网络放在向量加速器上,且网络结构需固定输入分辨率(如1/2或1/4缩放后的图像),避免动态shape导致加速器利用率下降。
- 跟踪算法放在CPU和视觉加速器上,因为跟踪涉及数据关联、卡尔曼滤波、匈牙利匹配等逻辑控制,不适合向量加速器;而光流、特征点匹配可交给视觉加速器。
- ISP和DMA不占用可编程算力,但它们的带宽消耗会间接影响加速器效率。
一个常见的教学示例参数:前视摄像头输入为1280×960@30fps,检测网络输入缩放至512×384,网络推理耗时约15ms;跟踪模块每帧处理约50个目标,CPU耗时约3ms;光流计算耗时约5ms。三者合计约23ms,小于33ms帧周期,留有约10ms余量用于调度抖动和功能安全监控。若检测网络输入提升至768×576,推理耗时可能升至28ms,加上跟踪和光流,总耗时超过帧周期,导致丢帧。这就是算力分配对算法设计的直接约束。
三、内存带宽:比算力更隐蔽的瓶颈
在EyeQ这类嵌入式SoC中,内存带宽往往比峰值算力更容易成为瓶颈。原因在于:卷积计算需要频繁读写特征图,若特征图无法全部驻留在片上缓存,就会产生大量DDR访问。EyeQ4的DDR带宽约为12.8 GB/s,EyeQ5提升至约51.2 GB/s,但多路摄像头同时工作时,ISP写入、加速器读写、CPU访问会共同竞争带宽。
对检测跟踪算法设计的影响体现在:
- 特征图通道数不宜过大:通道数增加会线性增加特征图内存占用和带宽需求。Mobileye网络常采用较窄的通道配置,配合深度可分离卷积降低带宽。
- 层间融合减少中间写回:将卷积、BN、激活融合为一个算子,避免中间结果写回DDR,可显著降低带宽。
- 跟踪模块尽量复用检测输出:避免在跟踪阶段重新访问原始图像或高分辨率特征图,减少额外带宽开销。
四、功耗约束:从芯片到算法的反向传导
车规级EyeQ芯片的封装功耗通常在3–10W范围,具体取决于型号和散热条件。功耗约束通过两条路径影响算法设计:
- 持续算力受限:芯片不能长时间跑在峰值频率,否则结温超标。因此算法必须保证平均算力需求低于持续算力上限,而非仅满足峰值。
- 精度策略受限:浮点运算功耗高于定点运算,EyeQ系列大量采用INT8甚至更低精度。检测网络需在训练阶段就考虑量化友好性,例如避免极端激活值分布、使用可量化友好的激活函数。
实际设计中,工程师会先根据散热条件确定持续功耗预算,再反推可用的持续算力,最后决定检测网络的分辨率、通道数和跟踪算法的复杂度。例如,若持续功耗预算为5W,向量加速器持续算力约为峰值的60%,则检测网络推理时间需按持续算力估算,而非峰值算力。
五、对检测跟踪算法设计的综合影响
综合以上约束,EyeQ平台上的检测跟踪算法设计形成了一套相对固定的工程范式:
| 约束维度 | 典型限制 | 算法设计应对 |
|---|---|---|
| 算力分配 | 向量/视觉/CPU算力分离 | 检测走向量加速器,跟踪走CPU+视觉加速器 |
| 内存带宽 | DDR带宽有限,多路竞争 | 窄通道、深度可分离卷积、层融合、复用检测输出 |
| 功耗 | 持续功耗3–10W | INT8量化、固定分辨率、控制网络规模 |
| 实时性 | 帧周期33ms | 检测+跟踪+光流总耗时留有余量 |
这些约束并非孤立存在,而是相互耦合。例如,降低功耗需要量化,量化可能影响检测精度,精度下降又需要跟踪算法更鲁棒地补偿;而更鲁棒的跟踪算法可能增加CPU负载,反过来影响整体实时性。因此,EyeQ平台上的算法设计本质上是一个多约束联合优化问题,而非单纯追求某一指标的最优。
理解EyeQ的硬件与计算平台约束,是后续学习Mobileye检测网络结构、跟踪算法实现和工程调优的基础。只有清楚“芯片能做什么、不能做什么”,才能在算法设计中做出合理的取舍。