1.浮点计算评估:

1.1.采用Whetstone benchmark

Whetstone benchmark(Whetstone: floating-point arithmetic performance)来测试CPU的性能。

Intel Pentium Dual-Core CPU E5300 2.60GHzVSQualcomm Snapdragon S2 MSM8255 1.0GHz强17倍。

IntelC Converted Double Precision Whetstones: 1250.0 MIPS

ArmC Converted Double Precision Whetstones: 67.6 MIPS

1.2.LinPack

Linpack是一款测试处理器浮点运算性能的App,在桌面平台中享有盛名。Linpack通过用高斯消元法求解一元N次方程,来测试处 理器的浮点运算能力。实测小米平板约为633(单线程)-720(多线程)MFLOPS

Intel® Core™ i7-2600K CPU @ 3.40GHz,4 核的机器测试的结果中,93GFlops

LinPack分为单线程测试和多线程测试,单核性能方面,MT6589依然垫底,Atom Z2580表现略好一些,i7-4770K和G1620的优势依然很大。但到了多线程测试中,Exynos 5410内部的四颗Coetex-A15核心开始发威,直接干掉了

奔腾

G1620,骁龙600和APQ8064也能和G1620相提并论了,毕竟G1620只是双核

心而已,再加上优化不一定到位,造成了这一局面,但即便是在优化不足的情况下,ARM距离i7-4770K还有很大差距。

1.3.其它

此前其实已经有专业人士对此进行过测算,理论上1.3GHz主频的四核ARM处理器浮点运算能力在10MFLOPs/s左右,2.5GHz主频的intel四核Q8300在25GFLOPs/s左右,前后差不多相差了2500倍。

注:下面那条为浮点性能,单位为GIPS,就是MIPS╳1000。

2.硬件分析

2.1.cpu

lCore i7 2600K 3.4GHz51.18 GFLOPS

Haswell

架构中拥有2个新的FMA单元(Intel的FMA3指令),每个FMA单元支持8个单精度或4个双精度浮点数。

2个256比特的SIMD单元

lARM Cortex-A9(Tegra 2 双核 1GHz,理论双精度浮点性能2GFLOPS)

lCortex-A15

VFPv4,具备硬件 FMA 指令执行,可以在同频下提供两倍的峰值浮点性能。此外,A15 还具备硬件除法指令,在 A9 上这需要接近 50 个周期来执行。

lCortex-A53(ARMv8  64/32-bit)

n在处理32bit软件也比Cortex-A15快20-30%左右

31个64bit通用寄存器(General Purpose Registers)

32个128bit Registers,用作执行SIMD

ARMv8A除了可执行单精度(Single Precision)FP数据外,新增支持双精度(Double Precision)FP数据

新增了IEEE754-2008 FP指令,如MaxNum/MinNum等等。

2.2.GPU

lNVIDIA官方 宣称k1的浮点性能大约是365GFLOPS

lARM原生的Mali-T700x系列,最高浮点性能是326.4GFLOPS

vOpenCL:

虽然苹果制定OpenCL的私心路人皆知,希望通过OpenGL来让自家的Mac电脑可以顺利的使用两个显卡巨头的产品做GPGPU运算。但是苹果的这一举措却为未来的x86平台异构计算奠定了坚实的基础。因为无论是CUDA还是FireStream,无论是CUDA核心还是流处理器,软件开发人员都可以通过OpenCL来支持。

在android上要开发opencl,手机端要有libopencl.so文件(也就是opencl驱动);但是现在android手机端很少有这个文件;原因是虽然AMD、Intel、NVIDIA、苹果等支持opencl,但是google好像不太支持opencl.

vRenderScript

google有RenderScript(渲染脚本,也是基于异构计算的思想实现的API,优点是跨平台性好,适合各种android操作系统,但是性能比opencl稍差点);google要推广自己的API的可能性大一些;因此大部分android手机支持RenderScript,却很少有支持opencl的(android 4.3后删除了libopencl.so)。

作为移动应用的开发者,可以借助RenderScript开发出强大的Android应用。更可以使用如Adreno SDK、MARE SDK等第一方芯片厂商的方案,轻松为应用做更深层的优化。

vC++ AMP

是微软Visual Studio和C++编程语言的新扩展包,用于辅助开发人员充分适应现在和未来的高度并行和异构计算环境。

3.名语解析

3.1.VFP(Vector Floating Point,向量浮点)

是ARM架构的浮点单元协处理器扩展,提供了完全遵循IEEE 754-1985的低成本单精度和双精度浮点支持。

虽然VFP打着向量的名头,不过这些“向量”指令的各个向量是串列方式执行(或者需要单精度搭配双精度才能实现并行执行)的,并不能提供真正的SIMD向量并行,因此这个向量模式被拿掉了。

3.2.NEON

ARM®NEON™ 通用SIMD

引擎可有效处理当前和将来的多媒体格式,从而改善用户体验。

NEON技术可加速多媒体和信号处理算法(如视频编码/解码、2D/3D图形、游戏、音频和语音处理、图像处理技术、电话和声音合成),其性能至少为ARMv5性能的3倍,为

ARMv6

SIMD性能的2倍。

Advanced SIMD扩展在微架构实现中被称作MPE(媒体处理引擎),是一个64-bit和128-bit SIMD指令集扩展,支持8/16/32/64位整数和32-bit单精度浮点数,共享使用VFP的寄存器。从ARMv8开始,NEON在AArch 64-bit模式下提供完全遵循IEEE 754和双精度支持并且透过VFPv4具备32个128-bit寄存器。

通过干净方式构建的 NEON 技术可无缝用于其本身的独立管道和寄存器文件。

NEON技术是ARM

Cortex™-A系列

处理器的128位SIMD(单指令,多数据)架构扩展,旨在为消费性多媒体应用程序提供灵活、强大的加速功能,从而显著改善用户体验。它具有32个寄存器,64位宽(双倍视图为16个寄存器,128位宽。)

NEON指令可执行“打包的SIMD”处理:

·寄存器被视为同一数据类型的元素的矢量

·数据类型可为:签名/未签名的8位、16位、32位、64位单精度

浮点

·指令在所有通道中执行同一操作

使用NEON技术的ARM

Cortex™-A系列

处理器,以及ARM的

Mali多媒体硬件

解决方案可用于多媒体应用

,范围从智能手机

和移动计算

设备到HDTV

Advanced SIMD扩展在微架构实现中被称作MPE(媒体处理引擎),是一个64-bit和128-bit SIMD指令集扩展,支持8/16/32/64位整数和32-bit单精度浮点数,共享使用VFP的寄存器。从ARMv8开始,NEON在AArch 64-bit模式下提供完全遵循IEEE 754和双精度支持并且透过VFPv4具备32个128-bit寄存器。

3.3.SIMD(Single Instruction Multiple Data)

单指令多数据流,能够复制多个操作数

,并把它们打包在大型寄存器

的一组指令集

3.4.Linpack

是一款测试处理器浮点运算性能的App,在桌面平台中享有盛名。Linpack通过用高斯消元法求解一元N次方程,来测试处 理器的浮点运算能力。The LINPACK Benchmarks are a measure of a system’s floating point computing power. Introduced by Jack Dongarra, they measure how fast a computer solves a dense N by N system of linear equations Ax = b, which is a common task in engineering. The solution is obtained by Gaussian elimination with partial pivoting, with 2/3*N3+ 2*N2floating point operations. The result is reported in Millions of FLoating-point Operations Per Second (MFLOP/s, sometimes simply calledFLOPS

).

Android上的Linpack可以测试单线程也可以测试多线程(但好像只支持到双线程),测试的成绩越高越好。这意味着可以使用Linpack来测试单线程和多线程的浮点运算性能,也可以用以测试多个核心协作的效率。

neon浮点运算_ARM 浮点计算测试与分析相关推荐

  1. neon浮点运算_ARM 浮点运算详解

    原标题:ARM 浮点运算详解 一:早期 上的浮点模拟器: 早期的ARM没有协处理器,所以是由CPU来模拟的,即所需浮点运算均在浮点运算模拟器(float math emulation)上进行,需要的浮 ...

  2. neon浮点运算_ARM NEON指令集优化理论与实践

    ARM NEON指令集优化理论与实践 一.简介 NEON就是一种基于SIMD思想的ARM技术,相比于ARMv6或之前的架构,NEON结合了64-bit和128-bit的SIMD指令集,提供128-bi ...

  3. Google Test(GTest)使用方法和源码解析——死亡测试技术分析和应用

    死亡测试是为了判断一段逻辑是否会导致进程退出而设计的.这种场景并不常见,但是GTest依然为我们设计了这个功能.我们先看下其应用实例.(转载请指明出于breaksoftware的csdn博客) 死亡测 ...

  4. 独家 | 115个A/B测试的分析结果︰平均提升为4%,大部分缺乏统计检定力

    作者 : Georgi Georgiev 翻译:Gabriel Ng 校对:张玲本文约6400字,建议阅读10分钟 本文讨论初始数据必要的修剪,然后分享元分析的详细结果,最后作出一个简短的总结. 从1 ...

  5. LoadRunner测试结果分析

    原文:http://blog.sina.com.cn/s/blog_8216ada70100tyx3.html LoadRunner生成测试结果并不代表着这次测试结果的结束,相反,这次测试结果的重头戏 ...

  6. http_load安装与测试参数分析

    http_load安装与测试参数分析 http_load以并行复用的方式运行,用以测试 web 服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死. ...

  7. 测试缺陷分析务实篇-转

    测试缺陷分析务实篇 2008-08-28 作者:罗耀秋 来源:网络   摘要: 测试活动作为IT项目和产品开发一个重要的环节,通过发现产品或组件的缺陷,并反馈给开发组修复验证这些缺陷,从而在一定程度上 ...

  8. 量化延时法时间测量_「交易技术前沿」交易系统低延时测试与分析

    本文选自 <交易技术前沿>总第三十三期文章(2018年12月) 证券期货行业测试中心(中金所) 魏畅 陈冬严 张鸿晔 摘要:订单延时(Latency)是衡量交易系统性能的重要指标.本文利用 ...

  9. 以太网口差分电平_以太网物理层信号测试与分析

    1 物理层信号特点 以太网对应 OSI 七层模型的数据链路层和物理层,对应数据链路层的部分又分为逻辑 链路控制子层 (LLC) 和介质访问控制子层 (MAC) . MAC 与物理层连接的接口称作介质无 ...

  10. intp适合学计算机吗,⑨MBTI测试,分析INTP型人格的专业选择和职业选择

    原标题:⑨MBTI测试,分析INTP型人格的专业选择和职业选择 在MBTI职业性格测试中,INTP型人格,沉默.自主.思维敏捷.自主性强,对理论和科学有自己的追求.喜欢提出新主张,也爱用逻辑去分析问题 ...

最新文章

  1. Delphi使程序的窗口出现在最前面并激活
  2. Linux系统配置kvm+vlan
  3. [Java] 蓝桥杯ADV-175 算法提高 三个整数的排序
  4. Google的“那些事”
  5. 弱小目标检测领域下图像的信噪比(SNR)计算方法
  6. 特斯拉又遇致命车祸:车主严重烧伤无法辨认 事故一天后电池复燃
  7. 学术-几何-维:超级立方体 (五维超级超立方体)
  8. 对接支付宝、微信、第三方支付,超详细讲解+demo演示
  9. vim 基本够用的操作命令
  10. win7桌面上的计算机图标不见了怎么办,win7桌面图标不见了怎么办 五种解决方法分享...
  11. java实现svm svm的java实现
  12. Galahad tutorial与虚拟筛选--sybyl
  13. pikachu Over permission 越权(皮卡丘漏洞平台通关系列)
  14. python 计算股票保本卖出价格
  15. Verilog中的parameter
  16. 基于Linux平台的TCP通信并发服务器---在线英语词典项目
  17. python import turtle as t_Python turtle库的学习笔记
  18. hbase日志报java.lang.ClassNotFoundException: org.apache.htrace.SamplerBuilder的错
  19. 敢用这张图片做“壁纸”手机秒变砖!
  20. 读懂python中的self

热门文章

  1. python四分位数_四分位数计算以及使用pandas计算
  2. 从几个简单例子聊聊Verilog的参数化设计(parameter、localparam和`define)
  3. Drillbeach---第一章 Drillbench 5.1发行说明
  4. 计算机网络拨号,个人拨号上网宽带连接设置图文方法
  5. 小结——scanf和scanf_s的区别以及最近练习的一些习题
  6. 医疗健康大数据:应用实例与系统分析
  7. win10双显卡怎么切换amd和英特尔_手把手给你细说win10系统双显卡设置只使用独立显卡的流程...
  8. ValueError: Duplicate plugins for name projector
  9. 仿苹果官网产品页面效果特效
  10. uni-app app-plus