2. EyeQ硬件架构与视觉流水线
EyeQ系列SoC(以EyeQ4、EyeQ5为代表)是Mobileye为ADAS与自动驾驶感知任务专门设计的异构计算平台。理解它的硬件架构,关键不是记住某个具体型号的核数,而是理解它为什么这样组织:视觉感知任务具有“高带宽、低延迟、强数据局部性、计算模式高度重复”的特征,EyeQ的CPU、加速器与内存层次正是围绕这些特征来分工的。
一、异构计算单元的分工
EyeQ SoC内部大致可分为四类计算资源:
- 通用CPU集群(MIPS/ARM):负责控制流、任务调度、传感器管理、与整车CAN/以太网通信、以及不适合硬件加速的稀疏逻辑。EyeQ4采用MIPS I-class多核,EyeQ5转向ARM A76八核。CPU不承担主要像素级运算,它的价值在于“决策与协调”。
- 向量加速器(VMP/PM):Mobileye自研的SIMD向量处理器,是视觉流水线的核心算力来源。它擅长对整幅图像或特征图做规则化的并行运算,例如卷积、归一化、直方图、光流、特征匹配。EyeQ4的VMP与PM(Programmable Macro)配合,可覆盖从低层像素处理到中层特征提取的大部分负载。
- 专用硬件加速器:包括深度/视差计算单元、光流引擎、图像信号处理(ISP)、以及用于深度学习推理的CNN加速器(EyeQ5引入)。这些模块针对固定算法做数据通路固化,能效比远高于通用向量核,但灵活性受限。
- DMA与互连:负责在传感器接口、片上SRAM、外部DRAM和加速器之间搬运数据。视觉流水线的性能瓶颈往往不在算力,而在数据搬运是否与计算重叠。
二、内存层次与数据流
EyeQ的内存层次是理解其性能表现的关键。典型结构自下而上为:
- 寄存器/局部存储:每个向量核私有的小容量高速存储,用于暂存当前处理的像素块或卷积窗口。
- 片上SRAM(如EyeQ4约2.5MB,EyeQ5更大):多核共享,存放中间特征图、查找表、模型权重片段。SRAM带宽高、延迟低,是视觉流水线“热数据”的主要驻留区。
- 外部LPDDR4/5:容量大但带宽和延迟代价高,通常只存放输入帧、最终输出、以及无法放入SRAM的大模型权重。
数据流的基本模式是:摄像头通过MIPI CSI-2输入原始Bayer帧 → ISP做去马赛克、降噪、色调映射 → 写入SRAM → 向量加速器分块读取并处理 → 中间结果回写SRAM供下一级使用 → 最终感知结果经CPU打包输出。整个链路中,DMA与计算的重叠程度直接决定帧率能否达标。
三、视觉感知任务到硬件的映射
把感知任务映射到EyeQ硬件,核心原则是“让合适的数据待在合适的内存层,让合适的运算跑在合适的单元上”。以典型的单目前视感知为例:
- 低层像素处理(去马赛克、降噪、边缘检测)→ ISP + 向量加速器,数据在SRAM内完成,避免回写DRAM。
- 中层特征提取(卷积、梯度直方图、光流)→ VMP/PM,按图像分块(tile)处理,每块处理完立即被下一级消费,减少中间结果驻留。
- 高层语义推理(目标检测、语义分割)→ CNN加速器或向量核上的量化推理,权重尽量常驻SRAM,输入特征图按行/列分块流式送入。
- 后处理与融合(非极大值抑制、目标跟踪、多传感器融合)→ CPU,因为这类逻辑分支多、数据稀疏,不适合SIMD。
一个常见的性能陷阱是:开发者把本应在SRAM内闭环的中间结果写回了DRAM,导致带宽被DMA占满、向量核空转等待。判断依据可以看两个指标——DMA通道占用率与向量核利用率。如果DMA长期接近饱和而向量核利用率低于60%,通常说明数据局部性设计有问题。
四、实操视角:一次分块处理的参数示例
假设在EyeQ4上处理一帧1280×960的灰度图,做3×3卷积。若整帧一次性处理,中间特征图需要约1.2MB,接近SRAM容量上限,容易挤占其他任务。更合理的做法是分块:
块大小:128×128 像素
每块输入:130×130(含1像素halo)
每块输出:128×128
块数:10×8 = 80 块
单块输入字节:130×130×1 = 16,900 B
单块输出字节:128×128×1 = 16,384 B
双缓冲需求:2 × (16,900 + 16,384) ≈ 66.6 KB
这样每块处理时,DMA预取下一块、向量核计算当前块,两者重叠。80块的总计算量不变,但SRAM占用从1.2MB降到约67KB,释放出的SRAM可以给CNN权重或其他任务使用。实际调优时,块大小需要根据SRAM余量、DMA突发长度和向量核的SIMD宽度共同决定,通常以“块内数据能全部放入局部存储、且DMA传输时间略小于计算时间”为佳。
五、架构视角下的优化切入点
从硬件架构出发,EyeQ上的视觉性能优化可以归纳为三个方向:减少数据搬运(提高SRAM命中率、合并DMA请求)、提高并行度(让向量核的SIMD通道填满、让多个加速器流水起来)、匹配计算模式(规则运算交给向量核或专用加速器,稀疏逻辑交给CPU)。这三者不是孤立的:减少搬运往往能释放带宽给并行计算,而匹配计算模式又能反过来降低对内存层次的压力。理解EyeQ的CPU、加速器、SRAM与DRAM之间的数据流关系,是后续所有性能调优工作的基础。