做技术的朋友可能有过类似这样的感觉——每天都会遇到新的问题,或者学到新的知识。然而一个人的时间和精力毕竟有限,不是所有的岗位都能做到总是亲力亲为,每人最擅长的领域也各不相同。为了使工程师自己踩过的坑、那些实用的心得体会也能给大家带来帮助,把经验记录和分享出来就显得尤为可贵,这就是我们开设《工程师笔记》专栏的目的。
xeon phi要自我互连,cpu靠边站
在《从260核异构申威看hpc top500缩影》一文中,我给大家介绍过在最新的超算榜单上为国争光的“神威太湖之光”。而在同一次大会上,intel也正式发布了代号为knights landing的新一代xeon phi processor x200(注意:不再是coprocessor/协处理器了)。

我们知道此前的xeon phi(至强融核)协处理器家族包括3100、5100和7100系列,都是像gpu那样通过pcie x16插槽安装在x86服务器上。xeon phi x100有板载内存(类似于nvidia/amd的显存),但访问系统主内存就要绕道cpu的内存控制器,从而影响到效率。
而在上图中间的服务器节点里,我们已经看不到传统的xeon cpu,取而代之的就是“bootable”(可独立运行)的xeon phi processor。左右两边是两种不同的xeon phi x200,其中右边的多伸出一个金手指,整合了intel omni-path fabric(opa,又称硅光互连)高速网络。
xeon phi 7200系列的核心数有64、68和72三种,主频1.3-1.5ghz,拥有16gb 高带宽mcdram片上高速内存(类似于hbm、hcm),并支持最大384gb ddr4内存。xeon phi 7200的基础功耗有215w和245w两种,如果是结尾带“f”支持omni-path的型号会增加15w fabric功耗。
这个照片应该是intel的参考平台,尺寸上大致符合2u 4节点的密度,在xeon phi processor两侧有6个ddr4内存插槽。用红圈标出的部分应该就是将omni-path网络引出机箱的连接器件。
至本文截稿之时,官网上我还没找到关于xeon phi x200的详细资料,不过早在去年底翻译自国外的新闻中已经有过不错的介绍。
如上图,“self boot socket”的knights landing除了ddr4内存控制器之外,还可以提供36个pcie gen3 lane,感觉是移植了xeon cpu的uncore部分设计。不过,提供2个omni-path 100gb/s网口的型号就少了2个pcie x16,让我觉得这一代产品的片上opa互连控制器走的还是pcie?最右边的pcie插卡形态,去掉了ddr内存通道,能不能不要那个pch南桥呢?
xeon-phi-processor-block-diagram——来自intel网站
上下两张图可以结合起来看。我数了一下红色processing tile的数量是38个,如此则该架构设计应该支持最多76个核心,目前限制在72个可能是为了保证良品率,或者功耗考虑?
根据右边的解释,每个“tile”中有2个core共享1mb l2 cache,每个core支持4线程并包含2个avx-512矢量单元(浮点计算应该就是靠它来进行的)。intel还提到了这些core是基于atom处理器内核,记得之前还有一种说法是p54c。p54c即当年intel pentium 75-166的核心代号,1997年我自己的第一台电脑用的就是奔腾133。
在2011年春季北京idf上,我曾经看到这套由微服务器厂商seamicro打造的高密度系统,展板上介绍在10u机箱内容纳了256个双核atom,当时负责展台的朋友也提到了p54c。不知大家有没有觉得神威太湖之光的节点布局有点像这个?
我猜测这个系统很早就开始用于预研今天的xeon phi processor,当然此时它还谈不上芯片集成度和成本效益。从照片中看每颗atom旁边应该都有一颗南桥(当时还不是soc),内存等可能在pcb背面,4颗印着seamicro的芯片估计是用于互连。
不同的avx boost频率与整数/浮点单元配比
撰写上一篇《工程师笔记:一项xeon e5-2600 v4测试数据的背后》的过程中,在dell的solutions performance analysis文档中我看到了以上规格表,其中有non-avx和avx单元不同的turboboost超频频率。让我们放大来看一下:
对于所有核心一起工作时的turboboost,non-avx的频率比avx要高,而最大(少数核心工作)turboboost频率有些型号的cpu也存在差别。
上图来自intel资料,描述了xeon e5v4(broadwell)的一点改进。在此之前如果avx和non-avx负载在不同core上混合运行,只能统一跑在两者中较低的turboboost频率上。而在xeon e5v4上,则运行avx的core频率不会降低到其它core的turboboost水平。
我有个理解不知是否准确:由于用途的原因,整数/浮点单元的设计偏重与配比是xeon phi processor与xeon cpu的重要区别。至于intel为什么没有进一步像申威26010那样“将mpe(管理单元)减少到4个来搭配256个cpe(计算单元)”?我觉得是考虑到通用性,毕竟xeon phi仍属于x86指令集的一个扩展。
服务器平台——supermicro
目前正式发布支持xeon phi processor x200服务器产品的公司还不多,其中包括supermicro的主板和准系统(就是加个塔式机箱),或许只是先出个通用平台还没有太多特点。
supermicro k1spa/e (-t) 主板示意图,可以看到“巨大”的lga-3647 cpu插座,据了解下一代xeon e5可能也会用这个socket。
上面是supermicro这款主板的结构图。涉及pch 612的部分与传统xeon服务器并没有明显的不同;除了内存通道之外,从处理器引出的pcie x16 gen3插槽也许不再支持拆分成x8或者x4,因为xeon phi的定位就是hpc,除了高速网络互连应该啥也不缺了。
dell poweredge c6320p:可选ib和omni-path
戴尔的这款poweredge c6320p,可以理解为是在2u 4节点机箱基础上将c6320 xeon e5计算节点换成了xeon phi processor节点。它比较接近前面我们列出的intel参考平台,具备计算密度并适合大规模部署。
可能是由于初版资料,规格表中xeon phi processor 72xx不支持的qpi还没来得及修改彻底。c6320p有几种硬盘/闪存支持选项,提供戴尔统一的idrac8服务器管理,听说可以直接安装red hat企业版linux,具体注意事项有待后续确认。不过为了发挥avx-512计算单元的能力,还是需要运行相应的编译好的程序。
关于集成单端口mellanox connectx-4 100gbe网卡这个可选项,为什么不是infiniband edr呢?其实该公司近几年对以太网的支持也不错,可以在同样的硬件上实现两种网络支持,比如eoib这样的方式。
上图来自戴尔网站,可见这个100gb网口应该是支持ib的。据了解poweredge c6320p也做好了支持omni-path的准备,除了现在可以使用intel omni-path host fabric adapter 100 series pcie网卡之外,等今年四季度xeon phi processor 72xxf推出之后,像intel参考平台中那样将omni-path引出机箱的连接器件也可以使用。
infiniband和omni-path谁会胜出?
自从intel收购了qlogic ib业务和cray的部分hpc互连技术之后,就开始酝酿着后续的战略。他们认为ib网络的成本在hpc系统中占比过高,在用户投资不变的情况下会影响到intel cpu等的出货量。不过问题是,intel到底是想卖cpu送网络呢,还是将cpu卖得更贵?
来自mellanox的反击大概是这样说的:“omni-path缺乏像ib那样的硬件卸载能力,使网络对cpu的占用率提高,变相导致需要买更高端的cpu,而从用户tco的角度来看反而不划算。”下面是他们给出的一些对比数字。
以上图表仅供参考,因为在intel的宣传资料中您很可能会看到另外一些不同的测试数字。
true scale就是当初qlogic的40gb/s infiniband产品线,可以看出100gb/s的intel omni-path在端口延时、发包速率上的优势。既然是在ib技术上发展而来,omni-path可能需要一个成熟的过程,但我不认为有太大的困难。
intel还列出了交换机方面的一些优势。比如edge(边缘)交换机48口比ib的36口多,服务器节点可以不通过边缘交换机直连director(导向器)等。
关于hpc网络方面的最终战局,我觉得要看intel omni-path怎么个卖法。如果未来某一代cpu/xeon phi processor无论你用不用全都集成的话……
====================================分割线================================
本文转自d1net(转载)