转自:https://zhuanlan.zhihu.com/p/351297472

https://community.arm.com/cn/b/blog/posts/arm-891361032

今天,主要介绍FP32、FP16和BF16的区别及ARM性能优化所带来的收益。

FP32 是单精度浮点数,用8bit 表示指数,23bit 表示小数;FP16半精度浮点数,用5bit 表示指数,10bit 表示小数;BF16是对FP32单精度浮点数截断数据,即用8bit 表示指数,7bit 表示小数。

在数据表示范围上,FP32和BF16 表示的整数范围是一样的,小数部分表示不一样,存在舍入误差;FP32和FP16 表示的数据范围不一样,在大数据计算中,FP16存在溢出风险。

在ARM NEON指令集中,一条指令最多load 128bit 数据,则对FP32数据,一次性最多支持4个数据的并行计算;对FP16/BF16数据,一次性最多支持8个数据的并行计算。那么在计算中,FP16/BF16的性能峰值应该是FP32 的两倍。

调研现有推理框架,当前MNN、Bolt和Mindspore-Lite支持FP16计算,相对于FP32性能,模型性能收益是一半。Mindspore-Lite 在TF-mobilenetv1和TF-mobilenetv2模型的单精度/半精度性能数据,如下图所示:

由上图可知,FP16模型性能比FP32模型性能快约一倍。另外,FP16 指令集只在ARMv8.2 以上的架构支持,即只在部分高端机上,才支持实现FP16计算。

ARMv8.2 架构只提供了ARMv8的neon 指令,故当前的开源框架均只支持ARMv8架构的FP16计算。如果想在ARMv7 架构支持FP16计算,可以将neon 指令翻译为机器码进行实现。SDOT指令也是只有ARMv8的neon 指令,如果想在ARMv7上增加SDOT实现,也是可以通过将neon 指令翻译为机器码进行实现。这个方法在Paddle-Lite(ARMv7 VSDOT实现)已经支持,感兴趣的小伙伴们可以试试哦~

ARM CPU性能优化:FP32 、FP16 和BF16区别相关推荐

  1. 12 | 套路篇:CPU 性能优化的几个思路

    上一节我们一起回顾了常见的 CPU 性能指标,梳理了核心的 CPU 性能观测工具,最后还总结了快速分 析 CPU 性能问题的思路.虽然 CPU 的性能指标很多,相应的性能分析工具也很多,但理解了各种指 ...

  2. 性能计数器驱动_Linux CPU性能优化方法

    在Linux系统中,由于成本的限制,往往会存在资源上的不足,例如 CPU.内存.网络.IO 性能.本文,就对 Linux 进程和 CPU 的原理进行分析,总结出 CPU 性能优化的方法. 1. 分析手 ...

  3. cpu 性能优化思路

    cpu 性能优化思路 文章目录 cpu 性能优化思路 前言 一.性能优化方法论 cpu性能优化工具 性能优化是否有效 多个性能问题同时存在,要怎么选择? 有多种优化方法时,要如何选择? 二.CPU 优 ...

  4. 性能:CPU性能优化的几个思路

    性能优化方法论 找出CPU的性能瓶颈之后,下一步要做的就是优化了,在优化之前,我们应该先看看下面这三个问题: 既然要做性能优化,那要怎么判断它是不是有效的呢?特别是优化后,到底能提升多少性能呢? 性能 ...

  5. CPU性能优化的几个思路?

    性能优化方法论 在我们历经千辛万苦,通过各种性能分析方法,终于找到引发性能问题的瓶颈后,是不是立刻就要开始优化了呢?别急,动手之前,你可以先看看下面这三个问题. 首先,既然要做性能优化,那要怎么判断它 ...

  6. ​Linux CPU 性能优化指南

    本文作者:allenxguo,腾讯 QQ 音乐后台开发工程师 本文主要帮助理解 CPU 相关的性能指标,常见的 CPU 性能问题以及解决方案梳理. 系统平均负载 简介 系统平均负载:是处于可运行或不可 ...

  7. CPU性能优化:Cache

     CPU性能提升:Cache机制 随着半导体工艺和芯片设计技术的发展,CPU的工作频率也越来越高,和CPU进行频繁的数据交换的内存的运行速度却没有相应的提升,于是两者之间产生了带宽问题.进而影响计算机 ...

  8. Linux性能优化-CPU性能优化思路

    目录 CPU性能指标 性能工具 如何迅速的分析CPU性能瓶颈 性能优化方法论 CPU优化 参考 CPU性能指标 CPU使用率 1.CPU使用率描述了非空闲时间占总CPU时间的百分比,根据CPU上运行任 ...

  9. CPU套路篇:cpu性能优化的几个思路???

    性能优化方法论: 找到系统瓶颈后, 怎么判断优化是否有效,并且能提升多少性能?? 如果有多个性能问题,应该先优化哪一个?? 提升性能的方法并不是唯一的,当有多种方法可以选择时,你会选择哪一种?是不是总 ...

最新文章

  1. 金笛邮件分布式邮件设置指南
  2. OpenStack RPM Sample 解析
  3. 谷歌云服务宕机,苹果iCloud也不行了
  4. 雪花算法原理_低照度摄像机原理及影响图像效果因素
  5. Deep Learning运行所需的硬件配置(转)
  6. 腾讯开源手游热更新方案,Unity3D下的Lua编程
  7. 水彩手绘中华美食PNG素材,提高海报设计效率!
  8. Elasticsearch OOM(内存溢出)
  9. Linq实战 之 Linq to Sql及Entity Framework操作详解
  10. 细说BLUETOOTH 5 【4X 远距离】
  11. 怎么完全卸载赛门铁克_symantec卸载方法
  12. 郑州市暂住证办理过程
  13. 多线程+反爬:爬取阿里巴巴国际站物流表现数据到mysql
  14. Windows 写入缓存
  15. Android 获取定位权限,获取位置信息(国家、地区、经纬)
  16. 基于Tensorflow里CNN文本分类
  17. 苹果照片未删却不见了_关于iphone照片分类的问题以及一款照片整理app推荐
  18. C++ Builder开发AutoCAD应用程序的方法
  19. android转 web 开发者,转战 WebApp: 最适合 Android 开发者的 WebApp 框架
  20. Access violation reading location 0xccccccc0运行异常的解决方法

热门文章

  1. MBO目标管理与SMART原则
  2. 计算机磁盘序列号是唯一的吗,磁盘id和硬盘序列号一样吗
  3. 【FinE】在险价值(VaR)计算
  4. 基于android的汽车租赁出租车打车洗车app
  5. 学海无涯!史上最全的《Android面试题及解析》,赶紧收藏!
  6. c3p0的坑导致并发性能问题
  7. Tomcat异常,tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException
  8. pp模块常用表 sap_SAPpp模块内表..doc
  9. Scientific Linux 6(x86_64) 之旅
  10. 微信气泡主题设置_微信气泡主题怎么设置_微信气泡主题怎么设置方法_掌通手游...