0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ntel I9的多核scalability是真的吗

Linux阅码场 来源:Linux阅码场 作者:宋宝华 2021-10-20 11:25 次阅读

昨天我们用Intel I9的10核,每个核2个threads的机器跑了内核的编译:

超线程SMT究竟可以快多少?

今天,我换一台机器,采用AMD Ryzen。

默认情况16核,每个核2个threads,共32个CPUs:

8d9e0e28-3101-11ec-82a8-dac502259ad0.png

下面编译内核:

8df6755e-3101-11ec-82a8-dac502259ad0.png

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

再来一遍:

8e5dca56-3101-11ec-82a8-dac502259ad0.png

这说明make clean, drop_caches后时间也差不多。51秒,53秒左右的正常抖动范围。

现在我们关闭smt,只保留16个CPU:

8eda8b0e-3101-11ec-82a8-dac502259ad0.png

具体的关闭方法就是:

sudo sh -c ‘echo off 》 /sys/devices/system/cpu/smt/control’

这样只剩下16个CPU,下面来编译:

8f52ff44-3101-11ec-82a8-dac502259ad0.png

时间57秒,相对于51、53秒,速度下降不到10%。

这说明超线程SMT对编译内核这个workload的性能的提升绝对没有达到100%,甚至都没有达到10%。

我们现在重新开启超线程:

sudo sh -c ‘echo on 》 /sys/devices/system/cpu/smt/control

看一下哪个CPU和哪个CPU是thread sibling:

8fd104d4-3101-11ec-82a8-dac502259ad0.png

看起来CPU0和CPU16是一对,CPU1和CPU17是一对,依次类推。

刚才我们关闭SMT是把CPU16-CPU31全关了,只留下每对里面的1个CPU,也就是留下了CPU0-CPU15。

在开启SMT的时候(假设蓝色和红色是一个CORE里面的两个CPU):

9085d2f6-3101-11ec-82a8-dac502259ad0.png

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

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

指令如下:

918b663e-3101-11ec-82a8-dac502259ad0.png

实现效果如下:

92315648-3101-11ec-82a8-dac502259ad0.png

再重新编译内核:

926acc0c-3101-11ec-82a8-dac502259ad0.png

现在耗时是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一些究竟是为什么。

这到底是为什么?牙膏厂的多核scalability究竟是不是骗纸?还是按摩店的部分核没有Intel部分核的威猛模式?「元芳,你怎么看?」

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • amd
    amd
    +关注

    关注

    25

    文章

    5197

    浏览量

    132632
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39846
  • intel
    +关注

    关注

    19

    文章

    3452

    浏览量

    184775

原文标题:这到底是为什么?牙膏厂的多核scalability究竟是不是骗纸?还是按摩店的部分核没有Intel部分核的威猛模式?「元芳,你怎么看?」

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是多核多线程?多核多线程如何提高程序的运行效率?

    单线程无法充分利用多核处理器的并行计算能力。
    的头像 发表于 02-20 10:22 370次阅读

    TC397A如何多核调试?

    TC397的开发板,想试一下多核调试,请问有相关历程或者文档吗,现在都默认一个核在跑
    发表于 02-19 08:08

    如何将原单核工程手动转为多核工程

    请问有没有教材指导如何将原单核的开发工程手动更改成多核开发工程?光看生成的例程有点摸不着头脑。
    发表于 12-30 09:24

    为什么有多核处理器?从多核到众核处理器

    其实“多核”这个词已经流行很多年了,世界上第一款商用的非嵌入式多核处理器是2002年IBM推出的POWER4。
    的头像 发表于 11-16 16:25 831次阅读
    为什么有<b class='flag-5'>多核</b>处理器?从<b class='flag-5'>多核</b>到众核处理器

    AUTOSAR架构下的多核通信介绍

    随着汽车ECU迅速的往域控制器方向发展,ECU要处理的任务越来越多,单核CPU的负载越来越大,多核ECU势在必行。AUTOSAR架构下OS支持多核处理,本系列文章将详细介绍AUTOSAR架构下的多核机制。本文介绍AUTOSAR架
    的头像 发表于 11-13 09:24 786次阅读
    AUTOSAR架构下的<b class='flag-5'>多核</b>通信介绍

    多核异构中A核与M核通信过程

    目前域控项目有的采用S32G这类多核异构的芯片,转载一篇分析下多核异构中A核与M核通信过程的文章。
    的头像 发表于 10-31 11:09 525次阅读
    <b class='flag-5'>多核</b>异构中A核与M核通信过程

    基于Tricore芯片的AUTOSAR架构下的多核启动

    随着汽车ECU迅速的往域控制器方向发展,ECU要出来任务越来越多,单核CPU的负载越来越大,多核ECU势在必行。AUTOSAR架构下OS支持多核处理,本系列文章将详细介绍AUTOSAR架构下的多核机制。本文介绍基于Tricore
    的头像 发表于 10-23 10:15 1211次阅读
    基于Tricore芯片的AUTOSAR架构下的<b class='flag-5'>多核</b>启动

    基于Tricore架构的RTThread多核实现

    在《基于Hightec+TC375TP的RT-Thread移植详解 》一文中,基于Tricore实现了单核RTThread的移植。最近,花了些时间完成遗留的任务:基于Tricore的多核移植。目前
    的头像 发表于 09-12 18:40 501次阅读

    服务器多核处理器有何优点和缺点?

    什么是多核处理器?多核处理器是包含两个或多个处理器的芯片。每个处理器能够同时执行不同的任务。例如,如果一个处理器被分配了数据处理的任务,另一个处理器将负责数据存储。 为什么使用多核处理器?该设置
    的头像 发表于 07-13 17:08 1606次阅读

    多核同构SMP--调度算法分析

    随着智能化产品的需求不断提高,慢慢的单芯片单核处理器已经不能满足我们的需求,于是就在一个芯片上集成两个或多个核心,进而转向了多核处理器的发展,多核处理器具有更高的计算密度和更强的并行处理能力,所以它也是大趋势。多核处理器从硬件的
    的头像 发表于 07-10 11:10 1330次阅读
    <b class='flag-5'>多核</b>同构SMP--调度算法分析

    多核CPU的启动方式

    工作中遇到的多核 ARM CPU 越来越多,总结分享一些多核启动的知识,希望能帮助更多小伙伴。 在 ARM64 架构下如果想要启动多核,有 spin-table 和 psci 两种方式,下面针对
    的头像 发表于 06-22 10:04 1145次阅读

    航顺芯片提供ARM+RISC-V异构多核MCU

    航顺芯片作为IAR System合作伙伴,提供了ARM+RISC-V异构多核MCU硬件平台。“嵌入式多核系统可分为同构多核和异构多核,航顺芯片HK32U3009采用ARM+RISC-V
    发表于 06-20 12:48 340次阅读
    航顺芯片提供ARM+RISC-V异构<b class='flag-5'>多核</b>MCU

    在 IAR Embedded Workbench中进行ARM+RISC-V多核调试

    当前IAR Embedded Workbench for Arm多核调试功能只支持I-jet和CMSIS-DAP,IAR Embedded Workbench for RISC-V多核调试功能只支持
    发表于 06-14 16:55

    多核CPU的SoC缓存一致性设计概述

    玄铁C910处理器是同构多核架构,支持双核;(开源版本为双核,预留四核接口),主要特征有。
    的头像 发表于 06-08 15:58 727次阅读
    <b class='flag-5'>多核</b>CPU的SoC缓存一致性设计概述

    K32L3A60多核看门狗及调试问题如何解决?

    我在定制板上使用 K32L3A60 MCU。在 AN12673 双核项目应用说明之后,我们能够创建一个多核项目并可以使用 MCUXpresso 调试两个核。 作为一个增量步骤,我现在已经初始化
    发表于 05-24 07:48