Die*_*ego 2 iphone floating-point android fpu ipad
我听说iPhone 4和iPad有一个名为VFP的fpu,它在某种程度上优化了浮点运算,甚至允许SIMD(尽管GCC是否利用了这一点是值得怀疑的).但是,我已经读到,对于某些Android设备,使用定点浮点数的加速可以导致性能提高20倍.
在这些设备中使用浮点算法实现我的代码的浮点密集部分的优点是什么.
iPhone 3G armv6 CPU有一个VFP流水线浮点单元,其吞吐量高于整数计算相同的吞吐量.GCC支持生成计划用于流水线操作的VFP指令.iPhone 3GS和iPhone 4 armv7 CPU没有流水线VFP单元,因此在某些浮点序列上实际上比iPhone 3G略慢; 但是armv7处理器在可矢量化的短浮点处更快,因为它具有NEON并行向量单元.有些Android设备CPU根本没有任何硬件浮点单元,因此操作系统使用FP的软件仿真,这可能比整数或定点慢一个数量级.
一般的经验法则可能是,如果您的算法只能处理24位尾数精度,并且不在float和integer之间进行大量转换,请在iOS上使用短浮点.它几乎总是更快.
但是,如果您想使用C代码(使用NDK)支持较旧的Android设备,请使用缩放整数.
如果你的应用程序没有进行大量的数字运算,对于一个低于0.1%的典型应用程序,以上都不会产生明显的差异.
| 归档时间: |
|
| 查看次数: |
1688 次 |
| 最近记录: |