3. Ethos-U55与U85架构详解:核心架构、计算单元、内存层次、MAC阵列、激活函数支持等关键特性

Ethos-U55与Ethos-U85是Arm面向Cortex-M与Cortex-A系列处理器推出的两代NPU(神经网络处理单元),专为边缘推理场景设计。两者虽同属Ethos-U家族,但在设计哲学、计算密度、内存带宽和系统集成方式上存在显著代差。理解这两款NPU的架构差异,是进行算子映射、性能调优和功耗优化的前提。本章将从核心架构、计算单元、内存层次、MAC阵列、激活函数支持五个维度展开,并结合实际部署案例说明如何根据硬件特性调整网络结构。

Ethos-U55 vs U85 架构对比与数据流 Ethos-U55 子系统 MAC阵列 (4x8x8) 激活引擎 (Tanh/ReLU) 权重解压器 SRAM (≤1MB) 命令队列 DMA控制器 AHB5 AXI 中断 调试 Ethos-U85 子系统 MAC阵列 (4x16x16) 激活引擎 (SiLU/GELU) 权重解压器 (2x) SRAM (≤4MB) 命令队列 (双) DMA (多通道) AXI (64-bit) ACE-Lite 中断 (多路) 调试 (ETM) 系统互连 (AHB5 / AXI Crossbar) Cortex-M55/M85 或 Cortex-A32/A35 主机处理器 片内SRAM (紧耦合) U55: 0.5-1MB / U85: 1-4MB 外部Flash (代码/权重) QSPI / OSPI 接口 外部DDR (可选) U85支持 / U55不支持 数据流方向: 主机→命令队列→DMA→SRAM→MAC阵列→激活引擎→输出回写 U85新增: 双命令队列、多通道DMA、64-bit AXI、SiLU/GELU支持

上图展示了Ethos-U55与U85在系统集成层面的核心差异。U55作为入门级NPU,采用精简的AHB5/AXI接口,SRAM容量通常不超过1MB,适合在Cortex-M系列MCU中部署轻量级CNN模型。而U85面向更高性能场景,支持64-bit AXI与ACE-Lite缓存一致性接口,SRAM可扩展至4MB,并引入多通道DMA与双命令队列,能够与Cortex-A系列应用处理器协同工作,处理更大规模的视觉与语音模型。下面逐一拆解各关键子系统的设计细节。

3.1 核心架构与计算单元

Ethos-U55的架构设计遵循“专用化、低功耗、确定性延迟”原则。其计算单元由三部分组成:MAC阵列、激活引擎和权重解压器。MAC阵列负责卷积与全连接层的乘累加运算,U55采用4x8x8的MAC结构,即4个并行处理单元,每个单元包含8x8的乘累加矩阵,单周期可完成256次MAC操作。激活引擎支持ReLU、ReLU6、Tanh、Sigmoid等常见激活函数,但所有激活操作均需在MAC运算完成后通过专用硬件流水线执行,不支持在卷积过程中融合激活。

Ethos-U85在计算单元上进行了全面升级。MAC阵列扩展为4x16x16结构,单周期MAC数提升至1024次,是U55的4倍。更重要的是,U85引入了可变MAC利用率机制——当卷积核尺寸为3x3或1x1时,MAC阵列可保持接近100%的利用率;而对于5x5或7x7的大卷积核,硬件会自动拆分计算,利用率仍可维持在85%以上。U85的激活引擎增加了SiLU(Sigmoid Linear Unit)和GELU(Gaussian Error Linear Unit)支持,这两种激活函数在Transformer和EfficientNet等现代模型中广泛使用。

核心原理:NPU的MAC阵列利用率取决于数据复用策略。U55采用“权重固定、输入滑动”的经典脉动阵列设计,权重在片上SRAM中保持不动,输入特征图按行滑动进入MAC单元。U85则引入了“双缓冲权重”机制,允许在计算当前层的同时预加载下一层权重,消除了权重加载的流水线气泡。

3.2 内存层次与数据流管理

内存层次设计直接决定了NPU的实际吞吐量。U55的内存层次分为三级:寄存器文件(每个MAC单元内部)、片上SRAM(用于存储输入特征图、权重和输出特征图)、外部Flash(存储模型参数)。U55的DMA控制器支持从外部Flash直接搬运数据到SRAM,但仅支持单通道传输,且地址对齐要求严格(32字节对齐)。这意味着如果输入特征图的宽度不是32的倍数,会产生内存碎片,降低有效带宽。

U85的内存层次增加了第四级——外部DDR支持。通过64-bit AXI接口,U85可以直接访问DDR中的大尺寸特征图,无需全部拷贝到SRAM。其多通道DMA支持同时进行输入加载、权重预取和输出回写三个操作,配合双命令队列,可实现“计算-搬运”完全重叠。下表对比了两代NPU的内存关键参数:

特性Ethos-U55Ethos-U85
SRAM容量0.5 - 1 MB1 - 4 MB
外部存储接口AHB5 (32-bit)AXI (64-bit) + ACE-Lite
DMA通道数14 (可并行)
命令队列深度8条32条 (双队列)
权重解压率2x (仅稀疏)4x (稀疏+剪枝)
DDR支持不支持支持 (LPDDR4/4X)

在实际部署中,内存带宽往往是瓶颈。例如,一个输入为224x224x3的MobileNetV2模型,第一层卷积的输入特征图大小为150KB,U55的SRAM可以完全容纳;但到了第14层,特征图尺寸变为14x14x320,约250KB,加上权重和中间变量,U55的1MB SRAM已接近极限。此时需要频繁进行SRAM与Flash之间的数据交换,导致推理延迟增加。U85的4MB SRAM和DDR支持则能有效缓解这一问题。

3.3 MAC阵列与算子映射策略

MAC阵列的物理结构决定了哪些算子可以高效执行。U55的8x8 MAC子阵列针对3x3卷积进行了优化——一个3x3卷积核正好映射到9个MAC单元,剩余55个单元可同时处理其他通道的数据。但对于1x1卷积(如MobileNet中的逐点卷积),U55的利用率仅为12.5%(8x8阵列中只有8个单元参与计算),这是U55在深度可分离卷积网络上性能不佳的根本原因。

U85的16x16 MAC子阵列则完全不同。其内部采用可重构数据通路,支持将16x16阵列动态拆分为4个8x8子阵列或2个16x8子阵列。这意味着:

  • 对于1x1卷积,可将16x16阵列拆分为4个8x8子阵列,并行处理4个不同输出通道,利用率提升至100%。
  • 对于3x3卷积,使用完整的16x16阵列,一次可处理16个输入通道和16个输出通道的卷积计算。
  • 对于全连接层,可将阵列视为一个大的向量点积单元,支持批量矩阵乘法。

这种灵活性使得U85在运行EfficientNet-Lite、MobileNetV3等混合算子网络时,平均MAC利用率可达92%以上,而U55通常只能达到60-70%。

实战建议:在将模型部署到U55时,应优先将1x1卷积替换为3x3卷积(通过空间填充),或使用TensorFlow Lite的“折叠批量归一化”功能减少逐点卷积层数。对于U85,则无需此类转换,直接使用原始网络结构即可获得良好性能。

3.4 激活函数支持与量化感知

激活函数的硬件实现方式影响推理精度和延迟。U55的激活引擎采用查找表(LUT)方式实现,支持ReLU、ReLU6、Tanh、Sigmoid四种函数。LUT大小为256项,对应8位量化输入。这意味着对于Sigmoid这类非线性函数,U55使用256个离散点进行近似,最大误差约为0.4%。对于大多数分类任务,这种精度损失可以接受,但对于语义分割或目标检测等像素级任务,可能会产生边界伪影。

U85的激活引擎升级为混合LUT+多项式逼近架构。对于ReLU系列函数,直接使用硬件比较器实现,零精度损失;对于SiLU和GELU,采用分段二次多项式逼近,误差控制在0.1%以内。此外,U85支持激活函数融合——在MAC阵列输出阶段直接应用激活,无需将中间结果写回SRAM再读取,减少了内存访问次数。

量化感知训练(QAT)在U85上变得更加重要。由于U85支持更丰富的激活函数,模型在训练时就需要模拟硬件行为。Arm提供的Vela编译器会自动将TensorFlow Lite模型中的激活函数映射到硬件支持的版本。例如,如果模型使用Hard-Swish激活,Vela会将其转换为ReLU6变体或SiLU,具体取决于目标NPU型号。

3.5 案例拆解:人脸检测模型在两代NPU上的部署对比

我们以一个实际项目为例:在Cortex-M55+Ethos-U55和Cortex-A32+Ethos-U85两套平台上部署相同的FaceNet人脸检测模型(输入尺寸112x112,模型大小约4.2MB,包含32个卷积层和2个全连接层)。

初始现象:U55平台推理延迟为87ms/帧,功耗45mW;U85平台延迟为12ms/帧,功耗120mW。虽然U85延迟显著降低,但功耗增加了近3倍,且U55的SRAM占用已达98%,存在溢出风险。

分析过程:通过Vela编译器的性能报告发现,U55的MAC利用率仅为58%,瓶颈在于模型中的12个1x1卷积层(占MAC总量的40%)。U85的MAC利用率达到91%,但DDR访问次数较多,导致功耗上升。进一步分析发现,U55的SRAM溢出是因为模型中间特征图总大小超过1MB,需要频繁从Flash重新加载权重。

优化操作:

  1. 对U55平台:使用TensorFlow Lite的剪枝工具,将1x1卷积的通道数减少30%,模型大小降至2.8MB,MAC利用率提升至74%,延迟降至61ms。
  2. 对U85平台:启用Vela的“内存规划”优化,将部分特征图直接存储在DDR中,减少SRAM压力;同时将批归一化层折叠到卷积中,减少4个额外层。
  3. 对两平台均使用INT8量化,并采用量化感知训练微调模型,精度损失控制在0.5%以内。

结果对比:优化后U55延迟降至61ms,功耗降至38mW;U85延迟降至9ms,功耗降至95mW。U85的功耗下降主要得益于减少了DDR访问次数(通过更好的数据复用)。

复盘经验:U55适合模型大小<3MB、MAC利用率>70%的场景;U85则适合更大模型或需要低延迟的场景。在部署前,务必使用Vela编译器生成详细的性能报告,识别MAC利用率和内存瓶颈。

常见误区:不要仅根据MAC阵列大小判断NPU性能。U85的4倍MAC数并不等于4倍实际性能,因为内存带宽、激活函数延迟和DMA调度都会影响最终吞吐量。在项目初期,应使用Arm的Cycle Model进行架构探索,而不是直接购买硬件。

3.6 总结与选型建议

Ethos-U55与U85的架构差异可归纳为:U55是“够用、低功耗、简单集成”的MCU级NPU,适合智能传感器、TWS耳机、健康监测等场景;U85是“高性能、可扩展、复杂系统”的应用处理器级NPU,适合智能家居中枢、工业视觉、边缘AI盒子等场景。选型时需综合考虑模型复杂度、功耗预算、系统内存带宽和开发工具链成熟度。无论选择哪款,都必须使用Arm Vela编译器进行算子映射和内存规划,并配合Cycle Model进行性能验证。