做技术的朋友可能有过类似这样的感觉——每天都会遇到新的问题,或者学到新的知识。然而一个人的时间和精力毕竟有限,不是所有的岗位都能做到总是亲力亲为,每人最擅长的领域也各不相同。为了使工程师自己踩过的坑、那些实用的心得体会也能给大家带来帮助,把经验记录和分享出来就显得尤为可贵,这就是我们开设《工程师笔记》专栏的目的。

一项Xeon E5-2600 v4测试数据的背后
Intel新一代服务器处理器Xeon E5-2637 v4标称的内存带宽76.8GB/s,达到了该系列的最高水平,不过在实测中它与有的同门兄弟相比却有一些差距。类似的情况也出现在E5-2623 v4几款上面,这是为什么呢?
从Pentium III Xeon 933 PK Pentium III 933说起
在准备撰写本文的过程中,我想起10多年前的一个故事,也是与Intel Xeon(至强)CPU相关的
Pentium III Xeon 733-933,Slot-2、133MHz前端总线、256KB全速L2 Cache
搞服务器比较早的朋友可能还记得,Intel第一代服务器专用处理器是Pentium Pro,当年我见过单Socket 8插槽的Pentium Pro主板(华硕P6NP5)。当桌面产品线升级到Pentium II和Pentium III时,开始出现相对应采用Slot 2插槽的Xeon产品线。Pentium II Xeon和早期的Pentium III Xeon L2 Cache容量有1-2MB,当时CPU的工艺还难以将如此大容量SRAM和CPU内核集成到一个Die上面。
从133MHz前端总线的Pentium III Xeon开始,Intel直接将on-die 256KB二级缓存的Pentium III设计拿过来用。不过当时的用户也不傻,比如Pentium III Xeon 700 2MB的价格高达1万多,而Pentium III Xeon 866/933 256KB大约在5-6千元。
相比之下,同样256KB 缓存的Pentium III 933只有2千多。那时候我还真碰上一位用户就要选择Xeon 933,理由是他了解到性能比普通Pentium III高出5%。
从那往后到Pentium 4与Intel Xeon的一段时间内,除了单双路和CPU封装/主板不同之外,服务器与桌面CPU规格上差别确实不大。一对一的性能差距,有时就是Intel将L2 Cache时序设置不同这样的原因。
内存带宽测试及实际应用价值
硬件设计上的不同,会反映在有些性能测试中。CPU Cache会影响到处理器访问内存的效率,包括缓存命中率等。在本文中我们讨论内存带宽测试,目的就是分析影响到该性能的CPU参数,由于今天的CPU比当初要复杂很多,所以得出结论不会那么简单。
引用自《Performance and Energy Efficiency of Dell PowerEdge Servers with E5-2600 v4》
在4月1日那天,Intel正式发布了新一代双路服务器处理器Intel Xeon E5-2600 v4,随之而来的有更先进的工艺、更多的核心、更高的处理能力和能效比等。当然若干项基准测试纪录又一次被刷新了。
各种漂亮的数据我不想一一列举,上图来自一份戴尔文档的“Memory subsystem performance”部分,可以看到在相同的PowerEdge 13G服务器平台上v4处理器测出的内存带宽比v3更高。这一点倒是不意外,因为Xeon E5-2600 v4内存支持到DDR4 2400,而v3只能到DDR4 2133。
而我也听不少用户反映过,说他们的应用对内存带宽不敏感,只要配置的容量够了就行。这个确实与应用类型有关,哪些用户需要更多在意这个指标呢?
上图的Linpack浮点计算性能测试,是HPC(高性能计算)行业所公认的。我们看到,在相同主频、核心数、内存频率以及功耗的情况下,BDW(Broadwell,Xeon E5-2667 v4)的核心效率比上一代Xeon E5-2667 v3提高了13%。
而在将Xeon E5v4的内存频率提高到DDR4 2400之后,性能又有进一步提高。初步结论就是高内存带宽对高性能计算应用是有价值的。
性能不完全符合理论值,原因何在?
2016年2月SPA lab使用Dell PowerEdge R730服务器测试
真正引发我们撰写本文的,是上面这个对比图表。首先我标出了一个小错误,E5-2630 v4是10核心而不是8核,它与大部分型号的L3 Cache配置都是2.5MB per Core。而在这一代产品中也有一个例外,E5-2667 v4、E5-2643 v4和E5-2637 v4这三款频率优化型CPU的L3 Cache大于这个比例。
我最初看到这个对比时有些不解之处:测试结果并不完全按照理论内存带宽排列,而是有些意外之处(红圈部分)。同时我们也注意到图中还有关于内存控制器数量的描述,从最左边的E5-2699 v4到E5-2650(L) v4这些12核及以上的CPU都是2个内存控制器,右边的10核及以下的只有1个内存控制器。
上图截自http://ark.intel.com网站,正如我们在本文开头所述,单内存控制器(同样支持4通道DDR4 2400)的E5-2667 v4、E5-2643 v4和E5-2637 v4,标称内存带宽与双内存控制器的型号同为76.8GB/s。
接下来我们就想探究影响这一测试结果的原因,先列出几种可能性(多选):
a.内存频率
b.内存控制器数量?
c.QPI带宽?
d.L3 Cache容量?
e.环形总线(Ring bus)瓶颈?
f.CPU核心数量 or 主频?
首先第1点不用问了,第2点根据对比数字和戴尔文档中的标识也可以基本确认;接下来就是看下列几个疑点与c/d/e/f中的哪些项目相关:
1.E5-2637 v4(4核心)测试内存带宽落后于另外2款DDR4 2400单内存控制器的CPU;
2.E5-2623 v4(4核心)测试内存带宽落后于另外3款DDR4 2133单内存控制器的CPU;
3.E5-2603 v4(6核心)测试内存带宽落后于同为DDR4 1866单内存控制器的E5-2609 v4。
注:Xeon E5-2623 v4官网标称的内存带宽,与其它DDR4 2133单内存控制器的CPU同为68.3GB/s。
STREAM测试工具、OSB+DIR snoop新特性
由于要分析性能瓶颈,我们就需要对测试工具及其产生的压力负载进行了解。为此我请教了一位朋友——戴尔解决方案顾问杨小雷,下面是他发的一条微博。
通过与这位朋友的交流我还得知:STREAM工具测出来的带宽要在BIOS里设置本地访问的模式,就是它下面标的OSB+DIR snoop。所以理论上的内存带宽是每个CPU理论最大带宽的2倍。这是Broadwell的默认模式,Xeon E5-2600 v4的新特性,以前没有的。
这样一来QPI带宽的因素也可以排除了。关于“snoop”,让我回想起2008年撰写过的Intel Xeon 5400服务器/工作站平台:
“Snoop Filter(探听过滤器)是一种特殊的缓存,用于存储CPU二级缓存的索引信息(只是包括其标签和状态,不包括数据),有助于减少处理器的前端总线发生数据堵塞的情况,提高前端总线的效率。Snoop Filter的容量要大于或等于每个CPU二级缓存容量之和才能发挥最佳的作用,5400系列处理器的二级缓存从5300系列的8MB增加到12MB,相应的5400芯片组中Snoop Filter也由5000X的16MB增加到24MB。”
如今发生了一些变化,CPU整合了内存控制器(IMC),多处理器Xeon平台也从SMP变成了NUMA架构。如果我没理解错的话,类似于Snoop Filter的功能现放在CPU上实现,而L3 Cache的部分功能就是包含每个Core的L1 Cache和L2 Cache数据,以保证缓存的全局一致性访问。
上表引用自《Measuring Performance of Intel Broadwell Processors with High Performance Computing Benchmarks》
Xeon E5v4架构:L3 Cache容量影响内存带宽发挥
这结论看似顺理成章,但并不是每一次拍脑袋都能正确,所以我们才要建立在实测数据分析的基础上。另外,还有没有读者不了解为什么Xeon E5会有单/双两种不同的内存控制器数量?
上图(点击放大)来自国外网站,其中红框标出的部分与最终发布的产品规格有少量出入
Broadwell EP即Xeon E5-2600 v4的代号,其实从v2开始Intel超过10核心就采用2个(对)环形总线和双内存控制器(总数还是4通道)的设计。
与上图有所出入的是,最右边的单内存控制器(LCC)也包括10核心的Xeon E5-2640 v4和Xeon E5-2630L v4。前文中我们确认了将内存控制器连接到环形总线的Home Agent在DDR4 2400这样高频率下可能成为瓶颈。
接下来就靠数字分析了,在这里省略掉我思考的过程。根据前面列出的Xeon E5-2600 v4全线内存带宽对比,4核10MB L3 Cache的2623 v4表现最低;另外2款较低的E5-2637 v4(4核心)E5-2603 v4(6核心)都是15MB L3 Cache;而在L3 Cache达到20MB之后,STREAM测试的数值基本上就是内存频率的反映了。
Intel有意为频率优化型CPU补短?
Intel Xeon E5-2600 v4系列中的几款频率优化型CPU,由于减少了核心数量,相应的内存控制器数量和L3 Cache也受到影响,尽管它们仍支持较高的内存频率,但实际带宽性能表现受到一定影响。大多数HPC应用讲究计算的并行度和能耗比,估计不会选择这几款;而在意单线程性能的应用(如:工作站),对内存带宽不见得敏感。
而另一方面,Intel将E5-2667 v4、E5-2643 v4和E5-2637 v4这三款CPU的L3 Cache加大,客观上减少了实际内存带宽下降的幅度。
====================================分割线================================
本文转自d1net(转载)

【工程师笔记】第六期:一项Xeon E5-2600 v4测试数据的背后相关推荐

  1. OPPO技术开放日第六期丨OPPO安全解析“应用与数据安全防护”背后的技术

    ​11月29日,OPPO技术开放日第六期在成都1906创意工厂-A11举行.本期活动以"应用与数据安全防护"为主题,聚焦密钥.恶意行为检测等移动应用背后的安全技术,分享OPPO在安 ...

  2. 【第六期】拿不到offer全额退款 人工智能工程师培养计划招生

    前 言 学院第四期课程在2019年10月结课,第一至第四期具有求职意向的同学中,目前已经有80%的同学拿到了国内外名企的AI算法岗位offer,或者国外名校的AI 硕士.全奖博士录取 offer.在大 ...

  3. 【第六期】拿不到offer全额退款 !人工智能工程师培养计划招生

    前 言 学院第四期课程在2019年10月结课,第一至第四期具有求职意向的同学中,目前已经有80%的同学拿到了国内外名企的AI算法岗位offer,或者国外名校的AI 硕士.全奖博士录取 offer.在大 ...

  4. linux安装旧版硬件驱动,【工程师笔记】第四期:老版Linux不用愁 ——使用DKMS轻松制作RAID卡驱动...

    做技术的朋友可能有过类似这样的感觉--每天都会遇到新的问题,或者学到新的知识.然而一个人的时间和精力毕竟有限,不是所有的岗位都能做到总是亲力亲为,每人最擅长的领域也各不相同.为了使工程师自己踩过的坑. ...

  5. 四级网络工程师笔记-操作系统(下)

    操作系统-六-八章 前言: 系列博文 第六章 文件管理 1. 文件的定义 2. 文件的分类 3. 文件逻辑结构分类 4. 文件物理结构分类 5. 外存储设备 6. 磁盘计算 7. 文件存取方式 8. ...

  6. 启智社区“我为开源狂”第六期活动小白教程之基础活跃榜

    一.写在前面 春天来啦~启智社区第六期活动也来啦! 有奖金的哦~~ 基础活跃榜奖金根据用户活跃程度进行100-300元的激励. 挑战升级榜需要用户完成相应任务,达标者可获得300-1000元的激励. ...

  7. 2019微生物组—宏基因组分析技术研讨会第六期

    在广大粉丝的期待下,<生信宝典>联合<宏基因组>在2019年11月1-3日,北京鼓楼推出<宏基因组分析>专题培训第六期,为大家提供一条走进生信大门的捷径.为同行提供 ...

  8. 飞谷云六期第三组——基于Spark的机器学习

    项目正式开始时间:2015.10.15. 随笔内容:本次项目的主题是基于Spark的ML.对于ML的学习有大概半年了,正好在网上关注到了由上海交通大学所主办的这个飞谷云的大数据项目,我所报名的这期已经 ...

  9. main 函数解析(二)—— Linux-0.11 学习笔记(六)

    main函数解析(二)--Linux-0.11 学习笔记(六) 4.6 blk_dev_init函数 void blk_dev_init(void) {int i;for (i=0 ; i<NR ...

最新文章

  1. 《基于场景的工程方法》作者问答录
  2. Linux性能测试 sar命令
  3. 推荐一个在线json数据格式化网站
  4. [转]关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决...
  5. sleep函数_MySQL中的sleep函数介绍
  6. 手把手教你安装Navicat——靠谱的Navicat安装教程
  7. python调参工作都是干啥的_xgboost原理及调参方法-通俗易懂版本
  8. oracle 10gchuanjianyonghu,管理Oracle 10g Dataguard归档缺口问题
  9. PageHelper.cs(20170223)
  10. 下面这些是什么意思:@classmethod, @staticmethod, @property?
  11. sketch软件_UI设计师必定需要了解的sketch素材
  12. c语言程序设计黄保和第二章,c语言程序设计答案(选择题+编程)黄保和、江戈版...
  13. LaTeX 学位论文排版 章节目录设置
  14. Guass-newton
  15. 解读LED灯具中国能效认证
  16. Flask+ZUI 开发小型工具网站(二)——ZUI
  17. pyinstaller打包有pandas和numpy库过程中遇到的bug及处理
  18. SQL查询表结构相同的两张表中数据的差异
  19. GStreamer基础教程10——GStreamer工具
  20. 头歌C++面向对象 - 类的多态性与虚函数

热门文章

  1. php 国际标准时间_关于时区:PHP date_default_timezone_set()东部标准时间(EST)
  2. oracle enlisttransaction,WAS运行时抛出的两种异常,经过google找到解决方案,记录以备案...
  3. PMSG类型究竟是什么意思?
  4. 有关H5第六章的背景与阴影介绍
  5. 浅谈如何做好督查督办工作?
  6. 关于IDEA控制台中文乱码问题的解决
  7. Unity分屏显示效果
  8. FX5u plc 如何实现网络远程通讯
  9. 设计字体时字体性格的分类表现(二)
  10. 基于功能的差异化战略