默認情況下是Intel I9,10核,每個核2個threads,共20個CPUs:

下面編譯內核:

需要2分鐘30秒左右。
再來一遍:

這說明make clean, drop_caches后時間也差不多。
現在我們關閉smt,只保留10個CPU:

具體的關閉方法就是:
sudo sh -c ‘echo off 》 /sys/devices/system/cpu/smt/control’
這樣只剩下10個CPU,下面來編譯:

時間2分51秒,相對于2分30秒,速度下降僅僅14%。
這說明超線程SMT對性能的提升絕對沒有達到100%,甚至都沒有達到20%。
我們現在重新開啟超線程:
sudo sh -c ‘echo on 》 /sys/devices/system/cpu/smt/control’
看一下哪個CPU和哪個CPU是thread sibling:

看起來CPU0和CPU10是一對,CPU1和CPU11是一對,依次類推。
剛才我們關閉SMT是把CPU10-CPU19全關了,只留下每對里面的1個CPU,也就是留下了CPU0-CPU9。
在開啟SMT的時候(假設藍色和紅色是一個CORE里面的兩個CPU):

在關閉SMT的時候,等于每對里面只留1個CPU:

現在我們換一種關法,一對對關,只留下五對:

指令如下:

實現效果如下:

再重新編譯內核:

現在耗時是3分10秒,想對于所有CPU全開,下降27%。相對于每個core里面只關一個線程,下降12%。
這就比較神奇了?為什么我關了5個core,性能沒有下降100%呢?這至少說明一個問題,從5core到10core,Intel I9編譯內核性能并沒有線性地scale。只是從3分10秒,提升到2分30秒。
責任編輯:haq
-
處理器
+關注
關注
68文章
20255瀏覽量
252400 -
intel
+關注
關注
19文章
3508瀏覽量
191315
原文標題:這到底是為什么?「元芳,你怎么看?」
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
探索TDA54x Jacinto?處理器:高性能與安全的完美融合
深入解析ADM13307:高性能三重處理器監控器的全面指南
探索MAX6316 - MAX6322:5引腳微處理器監控電路的卓越性能
TDA7718B:高性能車載音頻處理器的卓越之選
AMD銳龍AI嵌入式P100系列處理器產品簡介
探索MAX6316–MAX6322:5引腳微處理器監控電路的卓越性能
TDA7418:高性能3頻段汽車音頻處理器的深度解析
TDA7418:高性能3頻段汽車音頻處理器的深度剖析
TDA7419:高性能車載音頻處理器的卓越之選
S32Z2:安全可靠的高性能實時處理器
S32E2:引領電動汽車控制與智能驅動的高性能實時處理器
MD5信息摘要算法實現二(基于蜂鳥E203協處理器)
云拼接處理器的性能如何?
德承新款工控機P2302系列全面搭載新一代 Intel? Meteor Lake-PS Core? Ultra 7/5/3 處理器
處理器關了5個core為什么性能沒有下降100%
評論