代码之家  ›  专栏  ›  技术社区  ›  mahmood

用于并行执行的cpu性能分析

  •  1
  • mahmood  · 技术社区  · 7 年前

    最近,我对两台不同规格的计算机进行了“并行加速”比较

    here ).

    2-双Xeon 2695 v3(Haswell),在一块主板上以2.3GHz的频率运行。每个cpu有14个物理内核。因此,物理核总数为28,逻辑核总数为56( here

    speedup = (time of one thread on that CPU) / (time of N threads on that CPU)
    

    因此,对于1个线程,Ryzen和Xeon都将缩放为1。

    enter image description here

    如果有人看这张图表,他可能会说Xeon的加速比Ryzen好。例如,对于8核,Ryzen的加速比为3.4,而Xeon的加速比为4.69。

    但是,如果我们检查时间数据,我们将看到8个线程的执行时间相同。此外,Ryzen的性能优于Xeon。显然

    S_ryzen = 900/263        <        S_xeon = 1188/253
    

    enter image description here

    所以,只看加速数据,听起来是误导。另一方面,我确实希望8线程ryzen的执行时间应该比Xeon少,例如200秒,因为它具有更好的单核性能。

    关于这两个处理器的性能比较,可以得出什么结论?我知道xeon提供了更多的内核,但以8个内核(两者都有)为例,哪个处理器的性能更高?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Hadi Brais    7 年前

    设S(U,N)表示在系统U上获得的加速,其中基线程序(加速公式中的分子)使用1个线程,而改进程序使用N个线程。即:

    S(U,N)=时间 U (1) /次 (N)

    因此:

    这意味着:

    时间 至强 (1) /次 至强 瑞森 (1) /次 瑞森

    缩放 表演 至强 (8) >时间 (8).

    S(Xeon,8)>S(Xeon,4)

    时间 至强 (1) /次 (8) >时间 至强

    两次 至强

    时间 至强 (8)

    现在是关键的观察。为什么我们能够从两个给定的加速中推断出两个执行时间在同一个CPU上但在两个不同的CPU上是如何相关的?因为在同一个CPU上,两个加速的基线是相同的,这使我们能够相互抵消它们。

    s 裁判 威拉米特 (1) /次 U (N)

    基本上,时间 威拉米特 (U,N)如下:

    S(U,N)=S 裁判 裁判 (U,1)

    那么如果 裁判 (至强,8)>s (Xeon,4),那么从数学上来说,推断时间是有效的 至强 至强 (4). 如果S (至强,8)>s (8) <时间 (8). 两个S之间的给定关系 裁判 (U,N)与使用S(U,N)相比,相同或不同CPU上的加速比包含更多信息。

    这个 SPEC CPU benchmark suite uses a machine from 1997 :

    SPEC使用了一个历史悠久的Sun系统,即“Ultra Enterprise 2” 1997年推出,作为参考机器。参考机器 对于CPU2000。但这两个套件的参考机器不是 相同:CPU2006参考机具有更好的性能 缓存,CPU2000参考机器无法容纳足够的内存

    规格CPU 2017使用 a more modern machine from 2006 :

    使用2100 MHz UltraSPARC IV+芯片发射V490。UltraSPARC IV+被激活 CPU2006参考机器(300 MHz 1997 UltraSPARC II)。

    无论是来自同一系统还是不同系统,都可以对规范化的数字进行相互比较。

    因此,参考系统应该是最现代的系统,它比所有感兴趣的系统(即,可以相互比较的系统)都要古老(尤其慢)。