Arm Ethos-U65 介绍(1) 架构、数据格式与算子

概述

产品定位

Arm Ethos-U 系列是 Arm 为微处理器系统实现边缘计算设计的 NPU IP 核,旨在以极低的功耗和芯片面积高效加速机器学习推理任务,推荐和Cortex-M处理器搭配,当前包括U55、U65、U85三款产品。

本文以U65进行介绍,U65 支持最高 1TOP/s 算力,支持 TensorFlow Lite架构,要求权重 8bit 量化,可以部署在裸机或 RTOS 系统。官方提供 Vela 编译器可以将模型转化为指令流高效在 NPU 上部署,同时可以使用CMSIS-NN 库简化开发流程。

应用场景

官方针对U65提供了 Corstone-315 物联网参考设计平台,方案是 Cortex M85+Ethos U65+Mali C55,M85 是专门面向机器学习的 MCU,支持最新的 Helium 技术,C55 是 ISP。以目标检测为例,U65 只能计算中间过程,前处理 resize 和格式转换还需要 ISP 实现,后处理排序和 NMS 还需要处理器实现,甚至对于网络中一些 U65 不支持的算子也需要处理器实现。

成熟产品可以参考恩智浦 i.MX 93 处理器,整体方案为 Cortex A55+M33+Ethos-U65异构架构。

硬件架构

功能模块

NPU包含Central Control(CC)、DMA controller、Weight decoder、MAC unit和Output unit等子模块,下面分别介绍。

• Central Control :解析命令流为具体任务,排队并分派给 DMA 、权重解码器、MAC单元和输出单元

• DMA controller :通过AXI主接口进行数据搬运,包括读命令流、读写权重和偏置、读输入特征图(IFM)、写输出特征图(OFM)和内存到内存搬运(用于优化加速运算)

• Weight decoder :权重解码器,u65 输入权重为压缩编码格式,经DMA搬运到IP内部解码再分发至MAC单元待参与运算。

• MAC unit :读取特征图(IFM)执行点积和累加运算,对应卷积、深度卷积、向量乘等算子。

• Output unit:对输出特征图(OFM)执行缩放、偏置和激活函数处理,然后写到外部存储,激活函数支持ReLU、ReLU1、ReLU6、Leaky ReLU、tanh、sigmoid、LUT(实际后几个都是LUT实现的);输出运算支持加/减/乘、最值、绝对值、左/右移前导零计数。

外部接口

• 时钟复位 :模块为单一时钟域。

• APB 4 从接口 :用于寄存器配置。

• AXI 5 主接口x2 :用于读取指令块、读取权重、读写中间数据,可以通过寄存器配置哪些区域通过哪个AXI接口实现。

• Q-Channel :低功耗握手接口,参见 amba spec。

• IRQ:中断,指示运算完成。

数据类型

特征图格式

IP在外部采用NHWC(批次、高、宽、通道)格式,也就是TensorFlow Lite的标准格式,内部采用NHCWB16格式,将每16个通道打包为Block以提升访问效率。

对于NHWC,要求N=1,每个元素大小1字节或2字节,元素 (y, x, c) 的地址为 BASE + ySTRIDE_Y + x*STRIDE_X + c*ElemSize,BASE是基地址,STRIDE是偏移,BASE和STRIDE在命令流中可以看到定义。

数据类型与精度

支持如下数据类型

数据类型 范围/取值
支持的激活与权重组合 • 无符号8位激活 + 无符号8位权重:支持按tensor配置激活和权重的无符号零点,范围 0--255 • 有符号8位激活 + 有符号8位权重:支持按tensor配置激活的有符号零点,范围 -128 至 +127; • 有符号16位激活 + 有符号8位权重:激活和权重均为对称
逐输出通道偏置与缩放激活值 • 8位激活值:支持逐输出通道偏置和缩放 • 16位激活值:支持逐输出通道偏置和缩放
累加器格式 32位累加器, 40位累加器, 16位浮点累加器(s5.10)
位宽 8×16位操作的运行速度是 8×8 位操作的一半
Tensor维度 • 高度范围:1--65536 • 宽度范围:1--65536 • 深度(通道数)范围:1--65536

算子支持

算子支持如下,在支持的基础上还有额外约束条件。

ABS、ADD、ARG_MAX、AVERAGE_POOL_2D、BATCH_MATMUL、CONCATENATION、CONV_2D、DEPTHWISE_CONV_2D、EXP、EXPAND_DIMS、FULLY_CONNECTED、HARD_SWISH、LEAKY_RELU、LOG、LOGISTIC、MAXIMUM、MAX_POOL_2D、MEAN、MINIMUM、MIRROR_PAD、MUL、NEG、PACK、PAD、PADV2、PRELU、QUANTIZE、REDUCE_MAX、REDUCE_MIN、RELU、RELU6、RELU_0_TO_1、RELU_N1_TO_1、RESHAPE、RESIZE_BILINEAR、RESIZE_NEAREST_NEIGHBOR、REVERSE_V2、RSQRT、SLICE、SOFTMAX、SPLIT、SPLIT_V、SQUARED_DIFFERENCE、SQUEEZE、STRIDED_SLICE、SUB、SUM、TANH、TILE、TRANSPOSE、TRANSPOSE_CONV、UNIDIRECTIONAL_SEQUENCE_LSTM、UNPACK

卷积

NPU允许最大 64x64 的 2D 卷积和 1x4096 的 1D 卷积,所以实际网络需要拆成若干Block再进行计算,对于 8 位激活值,32 位累加器不会溢出;对于 16 位激活值,40 位累加器不会溢出。

参数 要求
卷积核 1 <= kernel_x*kernel_y <= 64*64 1 <= kernel_y <= 64
精度 权重类型: {int8, uint8}
步长 1 <= stride_x <= 3 1 <= stride_y <= 3
膨胀卷积 1x1, 1x2, 2x1, 2x2
上采样限制 2x2
pad填充 顶部/左侧 0--31, 底部/右侧 0--32
融合激活函数 {int8, uint8, int16}: ReLU, ReLUX, tanh, sigmoid, LUT
权重顺序 按深度优先、按部分核优先
缩放 逐输出通道的缩放和偏置参数
累加器 fp(s5.10), int32, int40

深度卷积

深度卷积有一个 H×W×C 的矩阵,其中大小为 H×W 的卷积核独立地应用于每个通道。每一层只应用一个卷积核(depth_multiplier=1)。

参数 要求
卷积核 1 <= kernel_x*kernel_y <= 64*64 1 <= kernel_y <= 64
Precision 权重类型: {int8, uint8}
步长 1 <= stride_x <= 3 1 <= stride_y <= 3
膨胀卷积 1x1, 1x2, 2x1, 2x2
上采样限制 2x2
pad填充 顶部/左侧 0--31, 底部/右侧 0--32
融合激活函数 {int8, uint8, int16}: ReLU, ReLUX, tanh, sigmoid, LUT
Depth multiplier 1
缩放 逐输出通道的缩放和偏置参数
累加器 fp(s5.10), int32, int40

池化

参数 要求
卷积核 带填充的平均池化: 1 <= kernel_x <= 8 1 <= kernel_y <= 8 不带填充的平均池化 和 最大池化: 1 <= kernel_x * kernel_y <= 256*256 1 <=kernel_y <= 256
精度 不带填充的平均池化: {uint8, int8, int16} → {uint8, int8, int16},任意配对均可 带填充的平均池化 或 最大池化: 输出特征图类型必须等于输入特征图类型 支持类型:{int8, uint8, int16}
步长 1 <= stride_x <= 3 1 <= stride_y <= 3
输入上采样 平均池化:2×2 最近邻插值, 或 2×2 零插入 最大池化:2×2 最近邻插值
pad填充 平均池化:顶部/左侧 0--3, 底部/右侧 0--4 最大池化:顶部/左侧 0--127, 底部/右侧 0--128
融合激活函数 {int8, uint8, int16}: ReLU, ReLUX, tanh, sigmoid, LUT
缩放 带pad的平均池化 或 最大池化:无缩放 不带pad的平均池化:可选择逐通道缩放+偏置,或全局缩放
累加器 所有池化: int32 不带填充的平均池化: int32, int40
相关推荐
秦先生在广东10 小时前
Kali配这本笔记,白嫖600种工具
人工智能
博谷10 小时前
GEO 的技术机制:RAG 链路、信源归因与内容工程
人工智能
合尘猫10 小时前
词元涨价近一倍后,我把 AI 客服的成本拆成了四个可优化的变量
人工智能·后端·架构
长不大的杨瑞杰10 小时前
OpenCode v2 MCP 与插件体系实战:把数据库、工单和内部 API 安全接入 Agent
人工智能·安全·语言模型·软件工程·1024程序员节
自养Agent10 小时前
AI 私有化实战:一张卡能扛几个并发,答案不在显卡参数里
人工智能
用户3600555790010 小时前
Kestrel_VLLM - 21 · 收益区间实测界定:KV 分页与 L3 驻留为何被判「不做」
人工智能
长弓三石10 小时前
企业级开源Harness平台BizBuddy 0.9.9 发布:知识库混合检索与长期记忆托管
人工智能
一线数智10 小时前
来腾讯云AI开放日 加入人类职业进化计划
大数据·人工智能·腾讯云
桦说编程10 小时前
别再追“最强模型”了,先想清楚你要什么
人工智能·llm·agent
loulanyue_10 小时前
机器换人不是终点,混合智能体重塑制造范式:从自主四要素到组织扁平化破局——读周济李培根院士2026东湖论坛国际智能制造创新论坛演讲实录
大数据·人工智能·制造