极术读书是极术社区推出的读书栏目。极术读书专栏定期推荐嵌入式,人工智能,物联网,云计算,安全,半导体等智能计算领域的图书及技术管理类图书,同时策划社区赠书活动和作者webinar方便读者交流互动,欢迎关注极术读书。
本期极术读书要推荐的是Arm处理器Jon Marsh专家所著,安谋科技工程师参与翻译的新书《Arm Helium技术指南:Cortex-M系列处理器的矢量运算扩展》。该书由机械工业出版社出版,为安谋科技教育计划合作图书,是学习Arm Helium MVE技术的理想指南。
书籍简介
Arm Helium技术为微控制器带来了令人兴奋的新功能,使复杂的数字信号处理或机器学习应用程序能够在廉价、低功耗的设备上运行。本书首先从易于理解的层面介绍了Helium的基本概念,包括单指令多数据(SIMD)、矢量处理、浮点和定点数据表示以及饱和运算等。然后,将指令集分解为几个部分进行详细探讨,包括流水线结构、预测和分支处理、数据处理及内存访问等主题。此外,还介绍了Cortex-M55等Helium核心技术的编码机制,包括编译、调试和优化。本书的结尾是重要部分,介绍了如何实现DSP和ML工作负载。
注意阅读本书的前提是具备Cortex-M处理器和基本DSP理论知识以及C语言和Arm汇编语言基础。
书籍特色
- Arm Helium技术专业参考书。书籍为Arm处理器专家所著,为读者提供专业的Arm Hulium技术理论学习。
- 主题清晰,实用性强。全书主题清晰,让读者方便学习。同时介绍了如Arm Cortex-M55等具有Helium功能处理器核的编码机制以及如何实现DSP和ML工作负载。
作者简介
乔恩·马什(Jon Marsh)拥有超过25年的从业经验,一直为Arm及其半导体合作伙伴工作。他曾参与多款Arm CPU的开发,从Arm2到现在的高端64位处理器都有涉及。他曾在世界大多数顶级半导体和消费类公司从事有关Arm处理器的咨询工作并提供培训课程,并在亚洲、欧洲及北美等地区的会议和大学发表演讲。
译者简介
张湘楠
安谋科技(Arm China)软件工程师,参与多款商业化产品的开发工作,主要负责Arm Cortex-M系列CPU的系统级验证和软件开发,熟悉ArmCor-tex-M系列处理器特性及其软件开发,对 CPU 底层技术有浓厚的兴趣。
曹 凯
安谋科技高级软件开发工程师,致力于为不同芯片架构提供性能评估、CoreSight 调试以及性能优化,也是 AloT ( TinyML )的爱好者,曾就职于华为 LiteOS 物联网项目团队。
常玲浩
安谋科技高级软件开发工程师,专注于 CPU 底层软件和操作系统的研究与开发,熟悉多种操作系统在系统内核的 Arm 架构适配和系统优化方面经验丰富。
梅济东
安谋科技CPU部门高级软件工程师,专注于CPU底层软件的研究和开发,主要负责CPU IP产品的软件系统验证及硬件性能验证。
目录简介
第1章 绪论
- 1.1 Helium简介
- 1.2 Armv8.1-M架构
1.3 对比其他Arm SIMD/DSP特性
- 1.3.1 Helium对比Neon
- 1.3.2 Helium对比可伸缩矢量扩展
- 1.3.3 Helium对比Cortex-M的DSP特性
- 1.3.4 Helium对比专用DSP
- 1.4 Helium用例
- 1.5 问题
第2章 SIMD/矢量处理器概论
- 2.1 SIMD/矢量处理
2.2 浮点数和定点数
- 2.2.1 饱和运算
- 2.2.2 定点和浮点DSP
- 2.2.3 Helium浮点格式
- 2.2.4 C数据类型和原语
- 2.3 问题
第3章 Helium架构
3.1 Helium基础概念
- 3.1.1 Helium寄存器
- 3.1.2 通道
- 3.1.3 矢令块和节拍
- 3.1.4 指令示例
- 3.2 Helium矢量处理
- 3.3 低开销分支扩展
- 3.4 尾部预测
3.5 Helium指令集
- 3.5.1 指令集基础
- 3.5.2 指令修饰符
- 3.5.3 指令形态
- 3.6 问题
第4章 数据处理指令
4.1 算术运算
- 4.1.1 加法和减法
- 4.1.2 绝对值
- 4.1.3 移位
- 4.1.4 逻辑操作
- 4.1.5 最小值和大值
- 4.1.6 格式转换和舍入
- 4.1.7 位计数
- 4.1.8 元素反转
4.2 乘法运算
- 4.2.1 乘法指令
- 4.2.2 乘加指令
- 4.2.3 复数运算指令
- 4.2.4 定点复数乘法运算
- 4.3 数据移动
- 4.4 比较和预测
- 4.5 问题
第5章 内存访问指令
- 5.1 矢量加载和存储
- 5.2 离散-聚合
- 5.3 交织和解交织加载/存储
- 5.4 问题
第6章 Helium分支、标量和其他指令
- 6.1 低开销分支扩展
6.2 Armv8.1-M标量指令
- 6.2.1 条件执行
- 6.2.2 通用寄存器移位
- 6.3 其他指令
第7章 Helium编程
7.1 编译器和工具
- 7.1.1 Arm Compiler 6
- 7.1.2 GCC Helium功能
- 7.1.3 Helium CPU内核的调试、跟踪、剖析
- 7.2 Helium编程方式
- 7.3 矢量库
7.4 自动矢量化
- 7.4.1 使用矢量化编译器
- 7.4.2 面向自动矢量化编程
- 7.4.3 自动矢量化示例
7.5 Helium原语函数
- 7.5.1 原语编程
- 7.5.2 原语预测
- 7.5.3 原语点积示例
- 7.5.4 原语离散-聚合示例
- 7.5.5 原语尾部处理
- 7.5.6 原语函数工作流
7.6 Helium汇编代码
- 7.6.1 内联汇编代码
- 7.6.2 内联汇编示例
- 7.6.3 原生汇编语言函数
- 7.7 从其他架构移植DSP代码
7.8 Helium底层代码
- 7.8.1 使能Helium
- 7.8.2 检测Helium
- 7.8.3 异常处理
- 7.9 问题
第8章 性能和优化
8.1 代码剖析和性能评估
- 8.1.1 Helium性能计数器和比率
- 8.1.2 嵌入式跟踪宏单元
- 8.2 性能考量
8.3 性能和Cortex-M内存系统
- 8.3.1 缓存
- 8.3.2 紧耦合内存
- 8.4 双矢令块微架构的性能考量
- 8.5 性能示例
- 8.6 问题
第9章 DSP基础
9.1 矩阵运算
- 9.1.1 矩阵乘法
- 9.1.2 矩阵转置
9.2 傅里叶变换
- 9.2.1 傅里叶变换简介
- 9.2.2 快速傅里叶变换
- 9.2.3 FFT示例
第10章 DSP滤波
- 10.1 卷积
10.2 滤波器
- 10.2.1 FIR滤波器简介
- 10.2.2 FIR滤波器示例
第11章 应用示例
- 11.1 图像处理
11.2 加密
- 11.2.1 大数算术
- 11.2.2 多项式乘法
第12章 神经网络和机器学习
12.1 神经网络简介
- 12.1.1 卷积神经网络
- 12.1.2 循环神经网络
12.2 CMSIS-NN
- 12.2.1 CMSIS-NN优化
- 12.2.2 CMSIS-NN Helium优化
12.3 微控制器TensorFlow Lite
- 12.3.1 用于微控制器和CMSIS-NN的TensorFlow Lite
- 12.3.2 模型转换
- 12.3.3 在Helium Cortex-M CPU上部署模型
- 12.3.4 关键字检测示例
- 12.4 针对Helium转换神经网络
- 12.5 经典机器学习
书籍购买
1.京东旗舰店
https://item.jd.com/10092254496951.html
2.英文电子版免费申请:免费申请电子版|技术大牛力作,Arm Helium技术参考书新鲜出炉!
Arm Helium扩展技术学堂
- Helium 技术讲堂 | 克服 Amdahl 定律的影响
- Helium 技术讲堂 | 循环缓冲区的使用
- Helium 技术讲堂 | 数独、寄存器和相信的力量
- Helium 技术讲堂 | 为何不直接采用 Neon?
更多书籍推荐及赠书活动请关注极术读书页面。