炼数成金 门户 大数据 数据中心 查看内容

从CPU到GPU,8路互联都是终极目标

2018-1-3 10:40| 发布者: 炼数成金_小数| 查看: 18198| 评论: 0|原作者: 李献|来自: 企事录

摘要: 8路互联架构作为目前开放架构下的最强体系,在x86的服务器和GPU领域都是顶尖的存在。CPU和GPU面对的是不同的工作负载,CPU面对的依然是通用计算,而8路CPU服务器更是直接面对高性能主机领域;而GPU则是随着AI热潮快 ...

服务器 架构 GPU 高性能 并行计算

8路互联架构作为目前开放架构下的最强体系,在x86的服务器和GPU领域都是顶尖的存在。CPU和GPU面对的是不同的工作负载,CPU面对的依然是通用计算,而8路CPU服务器更是直接面对高性能主机领域;而GPU则是随着AI热潮快速发展起来的大规模并行计算领域,通过海量算法模拟行为的计算。

有这么一个比喻:
CPU是数学教授,可以进行复杂的公式计算;GPU是小学生,加减计算都很熟练;

一名教授算1000道加法题,需要一道一道的算;1000名小学生算1000道加法题,一人一道,瞬间完成。

当需要更多公式计算的复杂数学问题时,小学生就比不上教授了,而教授也不能像1000名小学生那样刷海量的题库。

这样的比喻对CPU和GPU的特点一目了然。

CPU奠定计算基础
英特尔从2011年推出市场的XeonE7处理器平台开始,就引入了3条总线(QPI)架构,奠定了今天多路服务器的基础,目前市售的4路和8路的x86高性能服务器产品都属于此架构框架。这样的架构随着处理器一代代的发展,虽然计算性能一直在增长,但是并没有改变3条QPI的设计架构,直到的XeonSP(可扩展至强家族)诞生后,QPI(Quick Path Interconnect快速通道互联)变成了UPI(Ultra Path Interconnect,超级通道互连),但是3条总线的设计依然如故。

上图是Skylake处理器的典型架构。旗舰型号Xeon 8180 28核56线程,主频2.5GHz,TDP 205W

新一代的Xeon SP的4路和8路服务器脱胎于同一套架构。铂金版的Xeon SP处理器都有3条UPI通道(每条UPI 10.4GT/s,3条总带宽124.8GB/s总带宽),在4路架构上可以实现四颗处理器交叉互联,形成一个高效的MESH架构,在处理器性能和并行能力上达到了一个最优化的选择;

而8路服务器显然不能再用MESH架构了,毕竟一颗处理器上只有3根UPI通道,8颗处理器的优化连接方式如图所示,英特尔将这样的8路架构称为RING,即环形架构,每4颗处理器组成一个环型总线,两组环形总线间使用4条UPI通道交叉互联,这样能在8颗处理器时,提供最优化的交叉互联架构。

目前已经上市的8路Skylake处理器的典型产品是联想 SR950服务器。它同时具有4路MESH架构和8路RING架构两组配置。SR950最神奇的地方是无论4路OR 8路配置,外形都是一样的4U机架式外观,只是计算密度和扩展能力不同,用户可以根据业务类型选择最适合自己的SR950服务器。

注:
UPI带宽是双向的,也就是说10.4GT/s*(8byte/2)=41.6GB/s,那么两条就是83.2GB/s。三条就是124.8GB/s。而且UPI和PCIe不同,具有更低的延时,因此虽然16X的PCIe3.0能有15.8GB/s的带宽,但是延时和转换的效率显然不能与UPI相比。 

这么珍贵的UPI总线,英特尔4路以上的服务器上都不够用,自然不会开放给第三方,其他的设备就只能在PCIe总线上想办法了,一颗处理器给你提供48条PCIe 3.0,怎么组合使用就看服务器厂商的设计了。

GPU另辟坦途
早期的GPU就是PCIe接口的显卡。一条16X的PCIe 3.0只有15.8GB/s的带宽,GPU间需要更高带宽来进行互联并行计算,如果只是基于PCIe总线,那么GPU的并行计算的带宽和延时上都会受到限制。

2011年时,nVidia引入了CUDA UVA(Unified Virtual Addressing)技术,允许多个GPU节点之间在一定程度上共享彼此的显存,同时允许GPU直接访问并利用系统内存(题外话:实际上单节点本地内存不足的现象在大规模并行计算中相当常见,而且已经成了困扰并行化进程的一大瓶颈,亦即“存储墙”)。

第一代的GPU并行计算是通过PCIe16X总线来实现的。当某个GPU节点在应用中出现本地显存容量不足时,可以通过PCIe总线使用其他GPU的显存。显而易见,GPU单一节点能够获得的有效带宽只能是PCIe 16X的带宽。

翻越存储墙并不是催生NVlink的全部理由,GPU走入高性能、通用计算、AI领域的诱人前景也是NVlink诞生的重要诱因。

NVlink是一个GPU间互联的高速通道,具有20GB/s的单向带宽,40GB/s的双向带宽——敲黑板,注意了——第一代NVlink架构的GPU上有4条NVlink总线,每颗GPU可以直接和另外4颗GPU链接,是互联效率较高的CUBEMesh架构。

一代GPU V100的NVlink(300GB/s,两倍于上一代)总线达到了6条,无限接近了8块GPU相互直接的状态,从连接跳数来看,与4条NVlink的CUBE MESH相似,但是两个交叉互联的4路GPU间的互联带宽增加了一倍,更适合GPU大规模并行计算应用。


nVidia V100 GPU,NVlink版,640个Tensor内核,5120个CUDA内核,16GB内存,TDP 300W

x86家族的4路8路服务器
从x86挑起通用服务器的大梁开始,4路服务器基本都使用英特尔CPU(AMD在Opteron时代有过一些4路服务器,因为中间有较长时间的断档,这里不再累述),如何在x86的平台上搭出更强的单一计算平台,唯有看英特尔的官方技术了。

其实很简单,为了区分高端平台,英特尔只在Xeon E7架构上支持了3通道的QPI(新的Xeon SP升级为UPI)。从某种角度讲,Xeon E7和XeonE5的较大区别就是QPI总线数量。Xeon E7家族是3根QPI,可以实现4路/8路的x86服务器平台,而Xeon E5家族只有两条QPI,基本限定在2路(最多4路RING)服务器。

上图是企事录为Xeon SP发布做的架构解析图,入门级的黄金/白银家族的Xeon SP处理器只支持2根UPI;黄金61xx和白金版81xx处理器才有3条UPI(英特尔官方8路计算平台只有白金版才能支持)

从图中第二个架构可以看出,二条UPI的处理器只能搭建4路RING环形架构服务器(处理器非一对一互联,存在多跳几率,典型的如51XX系列,相对应的是早期的Xeon E5-46XX家族),而三条UPI的处理器就能组件高效的4路Mesh架构服务器(处理器间一对一,效率较高,61XX和81XX均可,相对应的是早期的XeonE7 家族)。

对于较高级的8路服务器平台,只有支持三条UPI的处理器才能搭建出高效的计算环境,这套架构偏向RING体系。如果用只有两条UPI的处理器搭建8路服务器将会形成一个巨大的环状结构,无实用价值,和服务器间的Scale-out架构也没什么不同了。

在英特尔的Skylake家族中,顶配的白金版Xeon 8180提供28核56线程的计算核心,三条UPI总线,6通道DDR4-2666内存。

那么4路Mesh架构服务器就可以提供224线程,24通道内存的服务器平台,已经可以覆盖绝大多数用户对计算性能和内存容量的需求了。

可惜计算和内存容量永远都不能满足所有的用户,这也是8路服务器存在并持续发展的一个重要原因。在8路架构下,用户可以获得最多448线程,48通道内存的服务器平台(单处理器较高支持1.5TB内存,8路可支持较大12TB内存)。8路服务器典型应用就是关键业务虚拟化和内存型数据库。

多路的瓶颈
多路处理器的服务器一方面是需求更高的计算性能,因此通过QPI/UPI总线互联,可以提供给用户更多的计算核心。

从第一代Xeon到今天的Skylake,单处理器的计算性能有了近3倍的提升

但是,在Xeon SP之前的四代处理器都只提供4通道/单CPU的内存设计,随着计算核心密度的提升,内存带宽容易出现瓶颈,和前文中高性能HPC领域中的“内存墙”问题非常相似。所以这一代Xeon SP处理器的6通道内存是非常重大的技术升级,相比上一代Xeon E7 v4的4通道内存,内存综合性能提升了115%。这样巨大的提升也让8路服务器在x86计算领域有了更强大的性能。

以下公式源于英特尔官方网站:
英特尔Xeon理论内存带宽峰值可通过下列公式进行计算:
理论峰值 (GB/s) [每插座] = (MT/s) * 8 字节/时钟* <通道数量> / 1000
2016年的X86旗舰处理器Xeon E7-8890 V4,具有4通道内存,较高支持DDR4-1866规格,其理论内存带宽为:

1866*8*4*8/1000=59.7*8=477.7GB/s

2017年的X86旗舰处理器为Xeon 8180,具有6通道内存,较高支持DDR4-2666规格,其理论内存带宽为:

2666*8*6*8/1000=128*8=1024GB/s。 

8路服务器标杆
企业用户需要更多的计算核心/内存容量时,8路服务器就具有天然的优势,的Skylake铂金版处理器Xeon 8180具有28核56线程的计算能力,当用户需要200个计算核心时,4路服务器就够了,配合价格合理的32GB内存,可以提供单机224核(线程),1.5TB内存的强性能主机;但是用户如果需要400个计算核心时,就必须使用8路的服务器了,在配置Xeon 8180处理器后,可以为用户提供448核(线程),3TB内存的高端服务器,这对于内存型数据库、关键业务虚拟化等企业业务有更好的支持。

这是企事录测试的联想SR950 8路服务器的一块系统板实拍照片,4路型号有2块系统板,8路型号有4块系统板。每块系统板上有2颗CPU,24条DIMM插槽,支持6通道DDR4-2666内存(每通道两条,全频设计。上一代E7家族虽然支持每通道3条,但是以降低内存工作频率来实现的)。联想SR950是目前市售的4路/8路服务器在内存容量/密度/性能等方面都具有领先地位的产品

目前Skylake处理器支持的DDR4-2666LRDIMM内存常用规格是16GB和32GB两种,市场价格约1500元和3000元,基本线性增长。但是64GB(10000)元和128GB(26500元)LRDIMM价格就开始翻倍增长,性价比上非常不合算。企事录测试的联想SR950 8路服务器配置了96条32GBDDR4-2666内存,共3TB内存,是目前追求大容量内存配置中,性价比较高的选择。

支持更多的PCIe 设备是新一代服务器的重要特点,联想SR950支持13条16X PCIe(8路型号),对新一代的高性能扩展设备可以提供全面的支持。

典型的新时代高性能扩展设备

只有全面支持高性能的PCIe接口才能满足未来用户在存储、网络等环节的高性能需求。相比某些服务器提供更多数量的PCIe 8X插槽,联想SR950的外部扩展能力可谓良心设计。

关公VS秦雄
其实CPU和GPU在台式机领域可能还是并肩作战的战友,但是在服务器端,使用GPU的服务器显然是看不上CPU的,即便GPU还要基于x86平台承载,NVlink就是为了甩开CPU的桎梏,AI、大数据分析等GPU擅长的领域暂时没有CPU太多机会;而4路和8路服务器这样单一高性能主机领域,CPU也捍卫了关键业务的领地,没有谁能夺走CPU在这个市场上的份额。

让适合的设备做适合的事儿,8路CPU大战8路GPU,就像关公战秦雄,不一样的世界,各自为战较好。

欢迎加入本站公开兴趣群
软件开发技术群
兴趣范围包括:Java,C/C++,Python,PHP,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流
QQ群:26931708

Hadoop源代码研究群
兴趣范围包括:Hadoop源代码解读,改进,优化,分布式系统场景定制,与Hadoop有关的各种开源项目,总之就是玩转Hadoop
QQ群:288410967 

鲜花

握手

雷人
1

路过

鸡蛋

刚表态过的朋友 (1 人)

相关阅读

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

热门文章

     

    GMT+8, 2018-11-16 22:01 , Processed in 0.111218 second(s), 24 queries .