news 2026/7/17 21:23:22

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 multiplier1
缩放逐输出通道的缩放和偏置参数
累加器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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 21:18:37

【ChatGPT儿童故事创作黄金法则】:20年教育科技专家亲授——3步生成高互动、零说教、符合发展心理学的AI故事

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT儿童故事创作的底层逻辑与教育伦理边界 ChatGPT在儿童故事生成中并非简单地拼接词汇&#xff0c;而是基于大规模语料中习得的叙事模式、角色关系图谱与情感韵律结构进行概率化重构。其底层逻辑依…

作者头像 李华
网站建设 2026/7/17 21:17:54

5分钟学会HashCalculator:免费文件完整性校验终极指南

5分钟学会HashCalculator&#xff1a;免费文件完整性校验终极指南 【免费下载链接】HashCalculator 哈希值计算工具&#xff0c;批量计算/批量校验/查找重复文件/改变哈希值等&#xff0c;支持集成到系统右键菜单 项目地址: https://gitcode.com/gh_mirrors/ha/HashCalculato…

作者头像 李华
网站建设 2026/7/17 21:16:46

CW32开发板与DFPlayer Mini的MP3播放系统实现

1. CW32饭盒派开发板与MP3模块概述CW32饭盒派是一款基于国产CW32微控制器的开源开发板&#xff0c;因其小巧的尺寸和丰富的接口资源被开发者亲切地称为"饭盒派"。这款开发板特别适合物联网和嵌入式音频应用的快速原型开发&#xff0c;其核心优势在于&#xff1a;采用…

作者头像 李华
网站建设 2026/7/17 21:11:45

Ubuntu软件管理全指南:从APT到Snap安装与卸载

1. Ubuntu软件管理基础认知作为一个长期使用Ubuntu的开发者&#xff0c;我深刻体会到掌握软件安装与卸载技巧对提升工作效率的重要性。与Windows系统不同&#xff0c;Ubuntu采用独特的包管理机制&#xff0c;这套系统既强大又精密&#xff0c;需要我们从底层理解其运作原理。Ub…

作者头像 李华
网站建设 2026/7/17 21:08:27

Ubuntu 24.04下NVIDIA驱动与CUDA安装优化指南

1. Ubuntu 24.04下NVIDIA驱动与CUDA工具包安装指南 刚装完Ubuntu 24.04准备跑深度学习时&#xff0c;最头疼的就是显卡驱动和CUDA环境配置。上周给实验室三台工作站装机时&#xff0c;就遇到NVIDIA-SMI报错"couldnt communicate with the NVIDIA driver"的经典问题。…

作者头像 李华