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

简介:
做技术的朋友可能有过类似这样的感觉——每天都会遇到新的问题,或者学到新的知识。然而一个人的时间和精力毕竟有限,不是所有的岗位都能做到总是亲力亲为,每人最擅长的领域也各不相同。为了使工程师自己踩过的坑、那些实用的心得体会也能给大家带来帮助,把经验记录和分享出来就显得尤为可贵,这就是我们开设《工程师笔记》专栏的目的。
 
一项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(转载)
目录
相关文章
|
1月前
|
测试技术 API C#
C#使用Bogus生成测试数据
C#使用Bogus生成测试数据
35 1
|
5天前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
27天前
|
算法
测试工程师的技能升级:LeetCode算法挑战与职业成长
这篇文章通过作者亲身体验LeetCode算法题的过程,探讨了测试工程师学习算法的重要性,并强调了算法技能对于测试职业成长的必要性。
42 1
测试工程师的技能升级:LeetCode算法挑战与职业成长
|
10天前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
10天前
|
人工智能 计算机视觉
AI计算机视觉笔记十五:编写检测的yolov5测试代码
该文为原创文章,如需转载,请注明出处。本文作者在成功运行 `detect.py` 后,因代码难以理解而编写了一个简易测试程序,用于加载YOLOv5模型并检测图像中的对象,特别是“人”类目标。代码实现了从摄像头或图片读取帧、进行颜色转换,并利用YOLOv5进行推理,最后将检测框和置信度绘制在输出图像上,并保存为 `result.jpg`。如果缺少某些模块,可使用 `pip install` 安装。如涉及版权问题或需获取完整代码,请联系作者。
|
10天前
|
机器学习/深度学习 人工智能 文字识别
AI计算机视觉笔记二十:PaddleOCR环境搭建及测试
OCR技术广泛应用于日常生活中,与人脸识别一样常见。PaddleOCR是一个基于飞桨的OCR工具库,具有超轻量级中文OCR模型,支持中英文数字组合、竖排及长文本识别。本文档详细介绍了PaddleOCR的学习过程,包括环境搭建、安装、样本标注及测试步骤。使用AutoDL云平台进行环境创建,并提供了详细的命令行操作指南,帮助用户顺利完成PaddleOCR的部署与测试。
|
18天前
|
机器学习/深度学习 人工智能 数据处理
AI计算机视觉笔记六:mediapipe测试
MediaPipe是由Google Research开发并开源的多媒体机器学习框架,已被集成到YouTube、Google Lens等重要产品中。该框架支持多种功能,如物体检测、自拍分割、头发分割、人脸检测、手部检测及运动追踪等。本文档将指导你通过Python环境搭建与测试MediaPipe,包括创建虚拟环境、安装依赖库,并进行手指骨骼识别测试。具体步骤涵盖环境配置、摄像头数据处理及结果显示。
|
22天前
|
存储 人工智能 自然语言处理
知识库优化增强,支持多种数据类型、多种检索策略、召回测试 | Botnow上新
Botnow近期对其知识库功能进行了全面升级,显著提升了数据处理能力、检索效率及准确性。新版本支持多样化的数据格式,包括PDF、Word、TXT、Excel和CSV等文件,无需额外转换即可直接导入,极大地丰富了知识来源。此外,还新增了细致的文本分片管理和编辑功能,以及表格数据的结构化处理,使知识管理更为精细化。 同时,平台提供了多种检索策略,包括混合检索、语义检索和全文检索等,可根据具体需求灵活选择,有效解决了大模型幻觉问题,增强了专业领域的知识覆盖,从而显著提高了回复的准确性。这些改进广泛适用于客服咨询、知识问答等多种应用场景,极大提升了用户体验和交互质量。
43 4
|
24天前
【Application Insights】使用Powershell命令向Application Insgihts发送测试数据
【Application Insights】使用Powershell命令向Application Insgihts发送测试数据
|
24天前
|
JSON Kubernetes Linux
【Application Insights】使用CURL命令向Application Insgihts发送测试数据
【Application Insights】使用CURL命令向Application Insgihts发送测试数据