快速反平方根iPhone上

SGI / 3dfx使用的快速反平方函数,最常见的是在Quake中引用速度快于汇编指令的速度,但声称看起来相当过时。 我很好奇它在更现代化的硬件上的表现,尤其是在像iPhone这样的移动设备上。 如果Quake sqrt不再是桌面系统上的有价值优化,我不会感到惊讶,但对于涉及大量3D数学的iPhone项目,该怎么办? 这是否值得包含?


没有。

NEON指令集(与其他矢量ISA *类似)具有硬件近似倒数平方根指令,其速度远远超过引用的“技巧”。 如果倒数平方根实际上是代码中的性能瓶颈(如往常一样,首先是基准;如果没有确凿证据表明它的性能很重要,则不要花时间优化某些东西)。

您可以通过使用vrsqrte.f32指令编写您自己的程序集(内联或其他方式),或者通过包含<arm_neon.h>头文件和使用vrsqrte_f32( )内部函数从C,Objective-C或C ++编写自己的程序集。

[*]在SSE上是rsqrtss / rsqrtps ; 在Altivec上它是frsqrte / vrsqrte

链接地址: http://www.djcxy.com/p/85727.html

上一篇: Fast inverse square root on the iPhone

下一篇: Optimize sum of powers with constant double exponent