Intel至强可扩展处理器 Skylake-SP购买指南

blob.png

前言

Intel Purley平台,Skylake-SP,至强可扩展处理器(铂金、黄金、白银、青铜)发售了,共58颗处理器。

这些处理器里哪些值得购买?哪些是骗小白的?它们各自的定位如何?本文将帮助你解决问题。

本文将会按照使用场景将这58颗处理器分类,并通过不同处理器在各自应用场景的性价比剔除一些坑爹玩意。

那至强处理器有哪些使用场景呢?


处理器的使用场景

不同的软件对处理器的要求各有侧重,这取决于这个软件处理的问题类型、算法的选择、是不是适合并行运算、内存I/O性能、开发者的水平、选择的程序库、编译工具等等等等。

这些对处理器运算性能的影响因素综合起来大致可分为以下几类:

  • 串行运算(单线程)

串行运算是软件中常见的一种运算方式。没有多线程,没有向量化。这种运算方式大多运用于脚本语言,如Python。使用串行运算的程序也通常是不强调运算性能的或者是古董程序,没人去优化它们。

(但是脚本语言,如Python通常只是用来写一些前端代码,需要大计算量的话会调用高度并行化的程序库。就像numpy调用MKL库。)

运行这类程序的CPU主要看重最大加速频率。如果要同时跑好几个这类实例的话,也要看Non-AVX全核加速频率。(比如典型的“商业”服务器应用,web app,e-mail等)

  • 非向量化多线程运算

用到了多线程但没有用到向量化运算的程序很多。这类程序通常实现了“多任务”但并不涉及大量矩阵向量计算。这类程序除非机械地增加并行运算数量,不然扩展性有限。

对于极度并行化并需要长时间运算的程序,核心数量多占优势。在选择CPU时主要考虑核心数量和Non-AVX全核加速频率。

很多这类程序扩展性堪忧。有些甚至对线程数量有限制,太多的线程用不上。这时,我们需要考虑恰当的CPU核心数量、高全核加速频率和高Non-AVX全核加速频率。

  • 向量化多线程运算

这类运算是最适合至强处理器的运算。在这个情景下选择CPU需要一颗核心数量较多、AVX-512 全核加速频率高(对于不能使用AVX-512的旧软件,那就看AVX2全核加速频率)。

这类软件通常是HPC负载,用于仿真和机器学习。程序涉及大量的矩阵向量运算,且对AVX-512和FMA有针对性优化。程序使用的库叫做Intel MKL库(Mathe Kernel Library)或者DAAL库(Data Analytics Acceleration Library),这是至强处理器的最佳舞台。

  • 内存I/O性能

这在选择CPU时是一个重要,但常常被忽略的参数。经常遇到这么个问题,买了最新、最好、最贵的电脑硬件但是程序没有跑得更快。如果程序本身的I/O性能低下、软件作者水平不行、存储器布局不合理,存在大量缓存缺失等情况,那么使用更好硬件可能不会提高性能。

在一些情况下,每个核心配更大的缓存可能会让烂I/O性能的程序提速。当然,L3缓存是所有CPU核心共享的,那么一个大L3缓存的多核CPU能提高性能。

如果你的程序需要大量的内存,那至强提供了一个M系列,这个系列单个CPU支持1.5T的内存。

  • 不关心CPU

必须承认,现在有很多重要的程序、框架和库是用GPU加速的。这些程序更需要在Tesla或GeForce显卡上跑NVIDIA CUDA,它们拥有的处理器单元比CPU高一个量级。

但要注意这些GPU加速的程序中有些任务仍需要CPU计算来完成,这就参考上面几种CPU运行工况。对于那些只用GPU来运算的程序,你只需要一个CPU来亮机罢了。

现在让我们开始按照不同工况来分类新款至强吧。

初选

这一代至强总共58个处理器。

Intel将它们按照金属分成四类:铂金(81XX),黄金(61XX),白银(51XX),青铜(31XX)。

对于大多数用户,这58个CPU中很多是不需要考虑的。

首先是那些带后缀的CPU(M,F,T),这些后缀代表:

  • M:大内存,最高可达1.5TB(普通版是768GB)。

  • F:Intel Omni-Path架构(Intel新一代高速网络架构,用于超算通讯)

  • T:低发热(适用于那些买来要用10年的用户)

M系列可能有时候还用得上,但F和T系列那是完全不用考虑了。带M的至强要比不带M的至强贵不少,但是除了能配置更大的内存之外其他方面的性能完全一样,因此除非真的需要超过768GB内存,不然不考虑M。

2个青铜组的成员也不用看了。它们只有1.7GHz,没有Turbo-Boost,没有超线程。

就这样先去掉25个CPU。

还有两个CPU重复了。8156,8158和5122,6136参数完全相同,除了8开头的CPU支持8个CPU插在同个主板上,5122、6136只能插4个。8156、8158卖$7007,5122卖$1221,6136卖$2460。多花$6000只为了能插8个。。。。除非你真的买8个CPU插同一台电脑上。

Non-AVX全核加速频率低于2.5GHz也去了,它们是4108,4110,4116和8153。它们的工作频率只有1.6GHz,开启AVX-512的时候还要更低,属于残废。

现在只剩27个CPU供选择,这还是太多了但已经可以用来按照使用场景分类了。

下面是这些CPU的编号:

性能评价标准

先按照下面的公式来估算CPU的理论性能。

性能=核心数量 * 频率 * 向量宽度 * #FMA

其中:

  • 核心数量:CPU核心数量(不考虑超线程)

  • 频率:至强有5种频率标定方式,选相关工况的那种。具体哪5种频率标定方式下面文章会写。

  • 向量宽度:双精度浮点数的AVX向量宽度(AVX2为4,AVX-512为8)

  • #FMA:FMA AVX单元(快速乘加)的数量,少数性能较低的处理器有1个FMA单元,其余的有2个。

这样算出来的数字可以大致评估GFLOP/s计算性能。这不是一个估计浮点计算峰值性能的好方法,但对于比较不同CPU性能来说足够了。

CPU频率

至强有5种不同的CPU频率标定方式!

  • 基本频率:如果在BIOS里禁用Turbo-Boost和power management,那么CPU就跑在这个频率上。CPU标定的TDP就是在这种情况下测的。这个频率对于用户来说没有任何意义。因为它不能反映CPU的真实性能,只是标在那里。

  • 最大加速频率:在只使用2个核心(其他核心都空闲)的情况下,CPU会达到这个频率。这也是CPU能达到的最高频率。在非并行(串行)工作时主要看这个参数,这个参数也能决定系统运行的“顺滑”程度。

  • Non-AVX全核加速频率:这是CPU最重要的频率参数。 当AVX单元没有被使用时,CPU所有核心的工作频率。 这个参数主要适用于那些不使用矩阵向量运算但是多线程优化的程序,也包括那些需要“多开”的用户。

  • AVX2全核加速频率:当使用AVX单元时,CPU的频率会降低,而且两种AVX单元(AVX2和AVX-512)降低的程度不同。新版至强支持SSE4.2, AVX, AVX2和AVX-512向量运算。这些向量运算对于那些使用矩阵向量进行数学运算的程序有巨大的提升。经过实测,在Linpack benchmark(为Intel优化)里,向量单元能提升4-16倍计算性能。但是有代价的,在AVX单元工作时需要大量的能量。这就导致为了保证CPU能在安全的TDP下运行,开启AVX单元时需要降低主频运行。

  • AVX-512全核加速频率:AVX-512单元开启时CPU的频率。

处理器参数

不同等级的芯片可能都是在同一块晶圆上生产出来的。低端芯片可能是高端芯片的阉割得到。Intel这次尽可能利用起各种等级的芯片,从而导致出现了那么多性能差不多的CPU。显然Intel的刀法没有老黄出色,这次至强的CPU多得让人迷惑。

注1:上面的价格单位是美元。

注2:CPU频率单位是GHz。

注3:内存频率单位是MHz。

注4:缓存单位是MB。

注5:TDP单位是W。

这些数字看得让人头晕,下面会有图表来展示它们的性能。先推荐几个适合工作站或台式机的CPU:

  • 4112,上面表里面最便宜的CPU。可以用来配合4或8块GPU使用。

  • 5122,有最高的AVX-512全核加速频率。它只有4核但全部核心都能全速运行。它每个核心分配到的缓存也是最多的,适合对内存I/O有要求的程序。它不适合并行运算但配备了AVX-512单元,也不知道是从哪个边角料阉割来的。

  • 6144和6146,全核加速频率以及最大加速频率很高,同时每个核心分配到的缓存也不小。

  • 8168,核心多,频率高。

性价比分析

这个项目是评价在启用AVX-512单元时各CPU的性价比。

在这个项目里有11个处理器表现不好,我们把它们淘汰,下面不再出现。

淘汰:8180, 8176, 8170, 8164, 8160, 6152, 6150, 8153, 5115, 5118, 5120

这下就清楚很多了。

下一张图里考虑了每个核心缓存的大小。这样对于那些需要内存I/O的应用更有参考价值。

这张图表面,有高主频和大缓存的CPU明显占优。

下面的图时全核加速频率下各CPU的性价比。虽然和AVX-512开启时各CPU的趋势差不多,但仍可以淘汰一些CPU。

最后,获胜者是:8168, 6154, 6148, 6144, 6140, 6134, 6130, 6128, 6126, 5122 4114 4112


按工作情景分类

  • 串行运算(单线程)

6144,6128,5122,它们分别是8、6、4核,有高主频核大缓存。它们的单核能力强大并且多核能力也还行。如果用到的并行计算程序对核心数量有限制的话,它们是不错的选择。

  • 非向量化多线程运算

8168,6154, 6148, 6140, 6130, 6126, 4114,它们各自有24、18、20、18、16、12和10核,全核加速频率高。其中最推荐双路6154,性价比很高。

  • 向量化多线程运算

8168, 6154, 6148, 6140, 6130, 6126,和上面的基本相同。这些CPU AVX-512全核加速频率相对较高,CPU核心数也很多。

  • 内存I/O性能

6144, 6134, 5122或者8168, 6148, 6140,第一组的CPU每个核心的缓存大,第二组是L3缓存总数大。

  • 不关心CPU

6128, 5122, 4114, 4112,前两个非常适合用在GPU和CPU共同工作的平台上。它们CPU计算能力强,也有大缓存来和GPU进行通信。后两个就是因为便宜,用在纯GPU加速计算平台上。


最后要强调的是,这里只比较了最新一代的至强可扩展处理器,至于这新一代比至强E5 V4强了多少,需要大家自己判断啦。


关键词: