iPhone编译优化:浮点还是定点?
我正在为iphone构建一个库(speex,但我相信它也会应用于许多其他lib),make脚本可以选择使用定点而不是浮点 由于iphone ARM处理器具有VFP扩展,并且执行非常好的浮点计算,您认为使用定点选项是更好的选择吗iPhone编译优化:浮点还是定点?,iphone,compilation,floating-point,arm,fixed-point,Iphone,Compilation,Floating Point,Arm,Fixed Point,我正在为iphone构建一个库(speex,但我相信它也会应用于许多其他lib),make脚本可以选择使用定点而不是浮点 由于iphone ARM处理器具有VFP扩展,并且执行非常好的浮点计算,您认为使用定点选项是更好的选择吗 如果有人已经对此进行了基准测试并希望与大家分享,我将非常感谢他。好吧,这取决于应用程序的设置,这里有一些指导原则 首先尝试将优化设置为0(最快最小) 启用“放松IEEE遵从性” 如果您的应用程序可以轻松地独立处理连续内存位置中的浮点数,那么您应该查看ARM和汇编指令,它们
如果有人已经对此进行了基准测试并希望与大家分享,我将非常感谢他。好吧,这取决于应用程序的设置,这里有一些指导原则
如果您处理的是大数据块的顺序数据,NEON无疑是一种方法 浮动还是固定,这是个好问题。NEON处理fixed的速度要快一些,但我会保留本机输入格式,因为转换需要时间,最终需要额外的内存 即使lib提供不同的输出格式作为选项,它几乎总是意味着lib内部转换。所以我猜在这种情况下,float是本地的。坚持下去 没有人阻止你微观优化更好的算法。通常,由于现代机器上的流水线,算法越好,通过微观优化可以获得更多的性能增益 不过我还是会远离内在的。网上有很多帖子抱怨内在论者做了一些疯狂的事情,特别是在处理直接价值观的时候。 它可以而且将会变得非常麻烦,而且你也很难用intrinsic优化任何东西