曲径通幽论坛
标题:
优化浮点运算
[打印本页]
作者:
beyes
时间:
2010-3-14 12:25
标题:
优化浮点运算
浮点运算可能是汇编语言程序中最为耗时的部分。一定要常识优化浮点代码,尽可能地提高运算的性能。
Intel 提供了编写浮点程序的一些简单技巧:
确保浮点值不会上溢或者下溢出数据。
把精度控制位设置为单精度
使用查表实现简单的三角函数
在可能的情况下,断开以来链。例如,不计算 z=a+b+c+d,而是计算 x=a+b; y=c+d; z=x+y。
在 FPU 寄存器中尽可能多地保留方程式的值(避免重复计算)。
在处理整数和浮点值时,把整数加载到 FPU 寄存器中并且执行运算,这样比对整数直接使用浮点指令要快。例如,不使用 FIDIV,而是使用 FILD 加载整数,然后对FPU 寄存器中的值进行 FDIVP 指令。
尽可能使用 FCOMI 指令,不使用 FCOM 指令(因为 FCOMI 集成了 FSTSW 和 SAHF 的指令组合)。
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/)
Powered by Discuz! X3.2