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