我正在研究某些涉及大量计算的基于DSP的算法。我使用了gcc库以及所有选项(-O3,-ftreevectorize ...)。整个代码的执行时间是43毫秒。我使用ICC编译器运行相同的代码,但代码的执行时间没有显着减少。如何在不修改现有代码的情况下减少ICC中的代码执行时间? (不使用SIMD / S和asm)
答案 0 :(得分:0)
如果您对浮点数学的要求不严格,最简单的优化将来自icc -fast file.c
但是,这也会打开-no-prec-div
,这可能是您不想要的。在这种情况下,请尝试传递icc -03 -axSSE4.1 -ipo file.c
如果您愿意花更多时间进行编译,您可以从分析中获得实质性的速度优势。 icc -03 -axSSE4.1 -ipo -prof_gen file.c
会设置您生成个人资料。然后运行几次代码,执行最常见的用例,并使用icc -03 -axSSE4.1 -ipo -prof_use file.c