[转帖]超线程SMT究竟可以快多少?(AMD Ryzen版 )
https://www.modb.pro/db/139224
昨天我们用Intel I9的10核,每个核2个threads的机器跑了内核的编译:
今天,我换一台机器,采用AMD Ryzen。
默认情况16核,每个核2个threads,共32个CPUs:

下面编译内核:

大约需要53秒。记得昨天用Intel I9 10核20线程需要2分钟30秒左右。
再来一遍:

这说明make clean, drop_caches后时间也差不多。51秒,53秒左右的正常抖动范围。
现在我们关闭smt,只保留16个CPU:

具体的关闭方法就是:
sudo sh -c 'echo off > /sys/devices/system/cpu/smt/control'
这样只剩下16个CPU,下面来编译:

时间57秒,相对于51、53秒,速度下降不到10%。
这说明超线程SMT对编译内核这个workload的性能的提升绝对没有达到100%,甚至都没有达到10%。
我们现在重新开启超线程:
sudo sh -c 'echo on > /sys/devices/system/cpu/smt/control
看一下哪个CPU和哪个CPU是thread sibling:

看起来CPU0和CPU16是一对,CPU1和CPU17是一对,依次类推。
刚才我们关闭SMT是把CPU16-CPU31全关了,只留下每对里面的1个CPU,也就是留下了CPU0-CPU15。
在开启SMT的时候(假设蓝色和红色是一个CORE里面的两个CPU):

在关闭SMT的时候,等于每对里面只留1个CPU:

现在我们换一种关法,一对对关,只留下8对,也就是8个core:

指令如下:

实现效果如下:

再重新编译内核:
现在耗时是1分21秒,相对于所有CPU全开,下降了很多,时间增大了59%,当然没有达到2倍。
再想想昨天的Intel I9,关闭5个完整核耗时是3分10秒,全开10核是2分30秒,Intel一半核工作和所有核同时工作的差距远不如AMD那么明显。
所以可以看出,就内核编译这个workload而言,AMD的16core相对于8core,性能的scale会更加成正比。当然AMD开关SMT,对内核编译这个workload而言,影响小于10%,而Intel I9的影响有14%。
很多童鞋昨天留言,说编译内核有一定的IO bound,另外提到link阶段是单线程,还有的童鞋说是Intel Turbo的影响,这些我们都认为是有一定道理的。但是,我始终坚信,profiling是检验猜想的唯一标准,后面有空再写一篇文章来profiling一些究竟是为什么。
[转帖]超线程SMT究竟可以快多少?(AMD Ryzen版 )的更多相关文章
- [转帖]5G网速那么快,基站辐射会很大吗?
5G网速那么快,基站辐射会很大吗? 鲜枣课堂 2019-04-20 21:19收藏55评论6社交通讯 题图来自东方IC,本文来自微信公众号:鲜枣课堂(ID:xzclasscom),作者:小枣君 ...
- 快排算法Java版-每次以最左边的值为基准值手写QuickSort
如题 手写一份快排算法. 注意, 两边双向找值的时候, 先从最右边起找严格小于基准值的值,再从最左边查找严格大于基准base的值; 并且先右后左的顺序不能反!!这个bug改了好久,233~ https ...
- 金山快盘有Linux版了
似乎是2013-09-29最早发出的新闻. 怎么会没有一点传播呢,难道这么不招待见吗? 出品方是中科麒麟. http://www.ubuntukylin.com/applications/showim ...
- CSS 和 JS 动画哪个更快
基于Javascript的动画暗中同CSS过渡效果一样,甚至更加快,这怎么可能呢?而Adobe和Google持续发布的富媒体移动网站的性能可媲美本地应用,这又怎么可能呢? 本文逐一遍览了基于Javas ...
- CSS VS JS动画,哪个更快[译]
英文原文:https://davidwalsh.name/css-js-animation 原作者Julian Shapiro是Velocity.js的作者,Velocity.js是一个高效易用的js ...
- SMT实用工艺
第一章 SMT概述 SMT(表面组装技术)是新一代电子组装技术.经过20世纪80年代和90年代的迅速发展,已进入成熟期.SMT已经成为一个涉及面广,内容丰富,跨多学科的综合性高新技术.最新几年,SMT ...
- CSS vs. JS Animation: 哪个更快
CSS vs. JS Animation: 哪个更快? CSS vs. JS Animation: 哪个更快? 基于JavaScript的动画竟然已经默默地比CSS的transition动画快了?而且 ...
- CSS3动画 相比JS Animation 哪个更快?
CSS vs. JS Animation: 哪个更快? 基于JavaScript的动画竟然已经默默地比CSS的transition动画快了?而且,Adobe和 Google竟然一直在发布可以媲美原生应 ...
- ThinkPad告别蓝快,自己使用VHD安 WIN8.1并成功激活
写在前面:本文WIN8.1激活适合于中国大陆地区国行预装WIN8系统(bios写入WIN8授权)是可激活的,享受正版WIN8系统(同样可以安装WIN8.1系统).比如联想的Y400.Y500.Y480 ...
- 探索C/C++大数快(自然数)模板
本文fcbruce个人原创整理.转载请注明出处http://blog.csdn.net/u012965890/article/details/40432511,谢谢. 我们知道在C/C++中int型可 ...
随机推荐
- GaussDB(for MySQL)新特性TDE发布:支持透明数据加密
本文分享自华为云社区<GaussDB(for MySQL)新特性TDE发布:支持透明数据加密>,作者: GaussDB 数据库. 技术背景 为了保护数据的安全,我们可能通过防火墙.身份认证 ...
- Ascend CL两种数据预处理的方式:AIPP和DVPP
摘要:本文介绍了昇腾CANN提供的两种数据预处理的方式:DVPP和AIPP,介绍了两者的功能.差别及联系,并以具体代码示例介绍了如何使用DVPP和AIPP的功能. 本文分享自华为云社区<了解As ...
- 一文讲述G6实现流程图绘制的常用方法
摘要:G6 是一个图可视化引擎.它提供了图的绘制.布局.分析.交互.动画等图可视化的基础能力. 本文分享自华为云社区<会用这些的api,轻松绘制流程图--antv.g6流程图入门>,作者: ...
- 保姆级带你深入阅读NAS-BERT
摘要:本文用权重共享的one-shot的NAS方式对BERT做NAS搜索. 本文分享自华为云社区<[NAS论文][Transformer][预训练模型]精读NAS-BERT>,作者:苏道 ...
- 浅谈QUIC协议原理与性能分析及部署方案
之前写过<http1.0 与 http1.1的区别> 与 <再谈HTTP2性能提升之背后原理-HTTP2历史解剖>,QUIC协议,现在nginx官方也即将支持.所以还是得跟上时 ...
- Flutter加固原理及加密处理
引言 为了保护Flutter应用免受潜在的漏洞和攻击威胁,加固是必不可少的措施之一.Flutter加固原理主要包括代码混淆.数据加密.安全存储.反调试与反分析.动态加载和安全通信等多个方面.通过综 ...
- 开心档之MySQL 导入数据
MySQL 导入数据 本章节我们为大家介绍几种简单的 MySQL 导入数据命令. 1.mysql 命令导入 使用 mysql 命令导入语法格式为: mysql -u用户名 -p密码 < 要导入的 ...
- MySQL 事务回滚。在执行删除、更新等操作时,防止误操作
SQL Server 事务执行.回滚 MySQL 事务回滚.在执行删除.更新等操作时,防止误操作 SELECT * FROM TABLE_NAME I WHERE I.TRANS_NO='P-2019 ...
- 微服务网关 —— SpringCloud Netflix Zuul
概述 Spring Cloud Zuul 是 Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的 API 网关使用,有以下用途: 鉴权:对于访问每个服务的请求进行鉴 ...
- Go--字符串函数
示例: package main import ( "fmt" "strings" ) func main() { //strings.Contains(): ...