AMD Opteron 4280的GCC优化选项:基准

AMD Opteron 4280的GCC优化选项:基准,gcc,x86-64,intel,compiler-optimization,amd-processor,Gcc,X86 64,Intel,Compiler Optimization,Amd Processor,我们正在从一台配备2*Xeon X5650的本地计算服务器转移到另一台配备2*Opteron 4280的本地计算服务器。。。今天我试图在新机器AMD one上启动我出色的C程序,发现性能明显下降>50%,所有可能的参数都保持在随机数生成器的相同种子上。我开始深入研究这个问题:谷歌搜索amd opteron 4200编译器选项给了我一些建议,比如GCC4.6.3编译器的可用标记选项。我玩了这些旗子,总结了我在下面的情节上的发现 我不允许上传图片,所以图表在这里 我想知道是否有人可以给我一些关于这个

我们正在从一台配备2*Xeon X5650的本地计算服务器转移到另一台配备2*Opteron 4280的本地计算服务器。。。今天我试图在新机器AMD one上启动我出色的C程序,发现性能明显下降>50%,所有可能的参数都保持在随机数生成器的相同种子上。我开始深入研究这个问题:谷歌搜索amd opteron 4200编译器选项给了我一些建议,比如GCC4.6.3编译器的可用标记选项。我玩了这些旗子,总结了我在下面的情节上的发现

我不允许上传图片,所以图表在这里

我想知道是否有人可以给我一些关于这个主题的评论,特别是我对以下事实感兴趣-三月=bdver1-fprefetch循环阵列和-fprefetch循环阵列-三月=bdver1在不同运行时的产量? 我也不确定,比如说-funroll所有循环是否已经包含在-O3或-Ofast中,-为什么再添加一次这个标志会有任何不同? 为什么英特尔处理器的任何附加标志会使性能更差,除了-ffast math-这是很明显的,因为它支持精度更低、速度更快的按定义浮点运算,但据我所知

有关机器和我的程序的更多详细信息: 2*Xeon X5650机器是一台带有gcc 4.4.3的Ubuntu服务器,它在主板上是2CPUs,每个*2hyperreading=24线程机器上都有真正的内核,在我的实验或基准测试期间,它运行着一些东西

2*Opteron 4280机器是一台带有gcc 4.6.3的Ubuntu服务器,它是主板上的2CPUs x4real cores per each=推土机模块*2AMD推土机whatever threading=一种core=18线程机器,我使用它仅仅是为了我出色的基准测试


我的基准测试程序只是一个Monte Carlo模拟程序,它在开始时进行了一些IO,然后通过~10^5个Mote Carlo循环给出结果。所以,我假设它是整数和浮点计算程序,时不时地循环,检查随机生成的结果对我来说是否足够好。。。这个程序只是一个单线程程序,我在启动它时,每个基准测试的参数都非常相同。这很明显,但我应该提到它,包括随机生成器种子。因此,结果是100%相同的。。。该程序不是内存密集型的。通过标准的/usr/bin/time命令,生成的运行时只是一个用户时间。

通过探查器运行代码肯定会为您提供很多有用的信息。