【问题标题】:.Net code slower on AMD Opteron CPU than Intel XeonAMD Opteron CPU 上的 .Net 代码比 Intel Xeon 慢
【发布时间】:2013-09-29 10:32:14
【问题描述】:

我遇到过这样一种情况,即简单的 .net fibonnacci 代码在一组特定的服务器上速度较慢,唯一明显不同的是 CPU:

  • AMD Opteron 处理器 6276 - 11 秒
  • 英特尔至强 CPU E7 - 4850 - 7 秒

代码针对 x86 编译并使用 .NET Framework 4.0。

  • 两者之间的时钟速度相似,实际上 PassMark 基准测试为 AMD 提供了更高的分数。
  • 已在场中的其他 AMD 服务器上尝试过此操作,但时间较慢。
  • 即使是我的本地 I7 机器也能更快地运行代码。

斐波纳契码:

class Program
{
    static void Main(string[] args)
    {
        const int ITERATIONS = 10000;
        const int FIBONACCI = 100000;

        var watch = new Stopwatch();
        watch.Start();


        DoFibonnacci(ITERATIONS, FIBONACCI);

        watch.Stop();

        Console.WriteLine("Total fibonacci time: {0}ms", watch.ElapsedMilliseconds);
        Console.ReadLine();
    }

    private static void DoFibonnacci(int ITERATIONS, int FIBONACCI)
    {
        for (int i = 0; i < ITERATIONS; i++)
        {
            Fibonacci(FIBONACCI);
        }
    }

    private static int Fibonacci(int x)
    {
        var previousValue = -1;
        var currentResult = 1;

        for (var i = 0; i <= x; ++i)
        {
            var sum = currentResult + previousValue;
            previousValue = currentResult;
            currentResult = sum;
        }

        return currentResult;
    }

}

有什么想法吗?

【问题讨论】:

  • 你看多核PassMark分数了吗?对于内核数量较多但内核相对较弱的新型 AMD 而言,它通常看似高。
  • 如果我将 CPU 亲和性设置为进程的单个 CPU,那么我确实会得到 7 秒,这很有趣。
  • 您可以以 一个 Xeon 处理器的价格购买 四个 这些 Opteron 处理器。你领先了,它不会慢四倍。 Bulldozer 微架构在 2011 年发布时并没有给任何人留下深刻印象,你听起来同样不知所措。永远不要相信你自己没有伪造过的基准。
  • @HansPassant - 开始感觉和你一样
  • 差不多了。 AMD 主要用推土机搞砸了——从来没有达到他们想要的速度。 AMD 今天以便宜但速度慢的处理器而闻名。他们的希望? 2016....新架构。所以,是的,AMD 很慢。已知事实。此处没有与 .NET 相关的内容。

标签: .net cpu x86-64 amd-processor


【解决方案1】:

这是正常的 - 不同的 CPU 型号可以具有不同的架构,并且在相同频率下执行特定任务时具有不同的性能。您所指的基准测试由一组不同的计算任务组成,可能与您的具体任务无关。

【讨论】:

  • 这就是我最初的想法,但后来我运行的特定代码也慢了 3-4 秒,这似乎是瓶颈,结果似乎与上面的简单斐波那契测试有关。
  • @Rubans:这只是意味着您的特定代码会像您的测试代码一样受到架构差异的影响。
  • 这就是我得到的有趣的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-16
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 2021-07-24
相关资源
最近更新 更多