【发布时间】:2011-10-25 08:47:42
【问题描述】:
我正在为 iphone 构建一个库(speex,但我确信它也适用于许多其他库)并且 make 脚本可以选择使用定点而不是浮点。
由于 iphone ARM 处理器具有 VFP 扩展并且执行非常好的浮点计算,您认为使用定点选项是更好的选择吗?
如果有人已经对此进行了基准测试并想分享,我真的很感谢他。
【问题讨论】:
标签: iphone compilation floating-point arm fixed-point
我正在为 iphone 构建一个库(speex,但我确信它也适用于许多其他库)并且 make 脚本可以选择使用定点而不是浮点。
由于 iphone ARM 处理器具有 VFP 扩展并且执行非常好的浮点计算,您认为使用定点选项是更好的选择吗?
如果有人已经对此进行了基准测试并想分享,我真的很感谢他。
【问题讨论】:
标签: iphone compilation floating-point arm fixed-point
嗯,这取决于您的应用程序的设置,这里有一些指导方针
【讨论】:
如果您要处理大块的顺序数据,NEON 绝对是您的最佳选择。
浮动还是固定,这是个好问题。 NEON 在处理固定问题时要快一些,但我会保留本机输入格式,因为转换需要时间,最终需要额外的内存。
即使 lib 提供不同的输出格式作为选项,它也几乎总是意味着 lib 内部的转换。所以我猜在这种情况下 float 是原生的。坚持下去。
没有人阻止您对更好的算法进行微优化。通常,算法越好,由于现代机器上的流水线,通过微优化可以获得更多的性能增益。
不过,我会远离内在函数。网上有很多帖子抱怨内在函数做了一些疯狂的事情,尤其是在处理直接值时。 它可能并且将会变得非常麻烦,而且您也几乎无法使用内在函数优化任何东西。
【讨论】: