你知道哪个GCC优化标志最适合构建一个应用程序,它使用双浮点并实时计算很多,它使用 -lm 。目标硬件是两个带有Linux板载的Dual-Xeon。提前谢谢!
答案 0 :(得分:3)
“Dual-Xeon”并不是您所针对的处理器的精确规格 - “Xeon”更像是一个营销品牌而非特定型号。 “Xeon”甚至没有告诉您是否正在瞄准IA32或x86-64架构。
这很重要,因为通过定位特定的CPU系列可以显着改善优化。有很多选项described in the GCC documentation;特别是,从-march
开始为特定指令集生成代码。
如果您没有针对x86-64,那么使用-mfpmath=sse
(如果您的CPU类型支持)使用SSE指令进行浮点运算,而不是387(此选项是x86-64上的默认选项)。同样地,-malign-double
可以提供加速(但仅在x86-64上默认)。
此外,如果您在配置文件中将libmath
中使用的函数显示为热点,则使用更具体的优化标记重新编译该库可能会有所帮助。
答案 1 :(得分:1)
根据您的应用是否安全和适当,您可以考虑-ffast-math
。在使用之前,请阅读手册页上的警告。
我从经验中知道它可以对运行数值模拟的程序产生很大影响。当然,您必须进行一些健全性检查,以确保输出不会改变。