惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
博客园_首页
博客园 - 聂微东
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
The Cloudflare Blog
aimingoo的专栏
aimingoo的专栏
Martin Fowler
Martin Fowler
D
Docker
人人都是产品经理
人人都是产品经理
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
B
Blog RSS Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
Jina AI
Jina AI
博客园 - Franky
D
DataBreaches.Net

博客园 - 蓝天上的云℡

简洁低消耗字节内存池设计 ARM崩溃堆栈报错寄存器分析定位 事件编程之eventfd 事件驱动编程模式之EventLoop syslog日志查看器GUI图形界面,支持Windows/Linux/Macos开箱即用 ERRNO链条分析 ARM AMBA总线之AXI系 Linux Kernel Init Bootstrap 内核初始化启动 RK芯片平台GPIO控制 Linux USB子系统之Gadget设备端驱动 远程调试桥接-网络-ADB-GDB 斐讯N1盒子安装飞牛FNOS NAS 安卓以太网链路检测 安卓原生开发-Recovery使用minui绘制图形 蓝牙音频协议——安卓开发 RKxx系列的RK628摄像头配置影响HDMI出图 usb储存之BOT/UAS内核驱动 现代操作系统-音频处理技术1 Linux驱动底层 Linux驱动适配I2C/SPI例子 模块编译的pr_debug Linux内核/GKI内核主线更新-usb网卡名称变更引出的BUG 为Kernel代码生成VSCODE索引,快速跳转 安卓开机时间/性能优化 Linux/Golang/glibC系统调用 SGDMA与普通DMA Linux内核源码-存储驱动之 QSPI Flash golang数据转换技巧
ARM NEON&Thumb加速指令集
蓝天上的云℡ · 2026-07-17 · via 博客园 - 蓝天上的云℡

SIMD, Single-Instruction Multiple-Data 单指令多数据

Thumb 指令集

关于ARMv8-M

https://www.arm.com/architecture/learn-the-architecture/m-profile
https://developer.arm.com/architectures/m-profile-architecture
image

v8-M系架构主要面向低功耗低成本嵌入式设备,提供了可选DSP拓展、可选FPU、可定制指令等特性,支持T32指令集子集 (Thumb-2等)
v8.1-M引入了Helium – M-Profile Vector Extension (MVE) 来支持矩阵加速计算。

About T32:

The T32 instruction set, known as Thumb in pre-Armv8 architectures, is a mixed 32- and 16-bit length instruction set that offers the designer excellent code density for minimal system memory size and cost.

T32 provides enhanced levels of performance, energy efficiency, and code density for a wide range of embedded applications. Designers can use both T32 and A32 instructions sets and therefore have the flexibility to emphasize performance or code size on a subroutine level as their applications require. T32 is supported across all architecture profiles, and is the only instruction set supported by the M-Profile architecture.

SIMD32之smlad

__ARM_FEATURE_SIMD32
指令

un = __smlad(*(xn++), *(hn++), un);

smladDual 16-bit Signed Multiply with Addition of products and 32-bit accumulation.

用法:
image

适用架构:ARMv6及其以上 v7仅限于ARMv7E-M

This ARM instruction is available in ARMv6 and above.
This 32-bit Thumb instruction is available in ARMv6T2 and above. For the ARMv7-M architecture, it is only available in an ARMv7E-M implementation.
There is no 16-bit version of this instruction in Thumb.

文档 https://developer.arm.com/documentation/dui0473/m/arm-and-thumb-instructions/smlad

NEON 指令集

NEON主要面向高性能A系R系处理器,是高级SIMD拓展指令集,还提供了矩阵计算。
Arm Neon technology is an advanced Single Instruction Multiple Data (SIMD) architecture extension for the A-profile and R-profile processors.
文档:
https://developer.arm.com/documentation/dui0472/m/Using-NEON-Support/NEON-intrinsics-for-multiplication

使用:
如 vmlal_s16 矩阵乘法指令搭配行列向量类型 int32x4_t
image

Processor

Cortex-M33 https://developer.arm.com/documentation/100230/latest