ubuntu aktif hiper iş parçacığı olup olmadığını nasıl test edebilirim?


13

Hiper iş parçacığı benim pc aktif değil duygu var. Bir göz attım /proc/cpuinfove kardeşlerin cpu çekirdekleri ile aynı sayıda olduğu açıklandı. Bu, hiper iş parçacığın etkinleştirilmediği anlamına gelir. Nasıl etkinleştirebilirim?

Parça girişleri /proc/cpuinfo:

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
stepping    : 6
cpu MHz     : 2997.000
cache size  : 6144 KB
physical id : 0
siblings    : 2
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes

Yanıtlar:


15

/ sys / bus / cpu / aygıtlar / cpu * / topoloji / thread_siblings_list çekirdek ve hipermetin yerleşimini gösterir. Görselleştirmeyi kolaylaştırmak için lstopo komutunu kullanmanızı öneririz:

sudo apt-get install hwloc

ve şununla koş:

lstopo

Ivybridge masaüstümde 4 CPU var; her birinin bir hiper-ipliği vardır, bu yüzden Çekirdekler P # 0..3 ile bir diyagram alırız ve her birinde iki PU bulunur (bunlardan biri hiper-ipliktir):

resim açıklamasını buraya girin

Bu çıktının yalnızca metin sürümünü istiyorsanız, şunu kullanın:

lstopo -

Kimsenin bunu neden iptal etmediğinden emin değilim ... Bu gerçekten güzel bir yardımcı program.
5:12 tarihinde Huck Bennett

bu süper havalı. toplam önbellek, çekirdekler, hyperthreads tüm 1 resimde
Silver Moon

9

topBir terminalde çalıştırın 1, başlıktaki işlemci başına yükü göstermek için klavyenizdeki sayıya basın , orada kaç tane cpus tanımlanmıştır?

CPU'nuzdaki gerçek çekirdeklerin iki katı ise hiper iş parçacığı olması gerektiği gibi çalışıyor.


7

Hiper iş parçacığı (Intel Hyperthreading Teknolojisi olarak da bilinir) kullanıp kullanmadığınızı algılamak için dmidecode kullanabilirsiniz .

Bir terminalde:

sudo dmidecode > /tmp/dmidecode.txt
gksudo gedit /tmp/dmidecode.txt

Doldurulmuş, Etkin (aşağıda * ... * arasında gösterilmektedir) durum değerini arayın , yani "Etkin", hiper iş parçacığının etkin olduğu anlamına gelir

Physical CPU
Handle 0x000C, DMI type 4, 32 bytes
Processor Information
Socket Designation: Socket 1 CPU 1
Type: Central Processor
Family: Xeon
Manufacturer: GenuineIntel
ID: 43 0F 00 00 01 03 00 00
Signature: Type 0, Family 15, Model 4, Stepping 3
Flags:
FPU (Floating-point unit on-chip)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
Version: Intel Xeon
Voltage: 1.5 V
External Clock: 200 MHz
Max Speed: 4000 MHz
Current Speed: 3800 MHz
Status: *Populated, Enabled*
Upgrade: ZIF Socket
L1 Cache Handle: 0x0004
L2 Cache Handle: 0x0005
L3 Cache Handle: Not Provided

Hiper iş parçacıklı mantıksal CPU'da doldurulmamış bir Durum değeri görürsünüz (aşağıda * ... * arasında gösterilmiştir):

Handle 0x000D, DMI type 4, 32 bytes
Processor Information
Socket Designation: Socket 2 CPU 2
Type: Unknown
Family: Unknown
Manufacturer: Not Specified
ID: 00 00 00 00 00 00 00 00
Version: Not Specified
Voltage: 1.5 V
External Clock: 200 MHz
Max Speed: 4000 MHz
Current Speed: 3800 MHz
Status: *Unpopulated*
Upgrade: ZIF Socket
L1 Cache Handle: 0x0006
L2 Cache Handle: 0x0007
L3 Cache Handle: Not Provided

kaynak


Linux çekirdeği, BIOS tarafından yapılandırılmış DMI verilerini kullanmak yerine CPU ve CPU sayısını (CPUID topoloji numaralandırması kullanarak) belirler. DMI verilerinin açılışta çekirdeğin kullandığı CPUID verilerinden yapılandırıldığından şüpheleniyorum, ancak muhtemelen Linux çekirdeğinin DMI verilerinden ziyade belirlediğine güvenmek en iyisidir. Olduğu gibi, çoğu durumda BIOS muhtemelen doğru yapar.
Colin Ian King

Hiper iş parçacığı devre dışı bırakılmışsa dmicode çıkışı değişmez - yalnızca CPU'nun hiper iş parçacığını destekleyip desteklemediğini gösterir. Örneğin, hiper iş parçacığı devre dışı bırakılmış bir i7-6600U CPU sisteminde dmidecode | grep -i populade yazdırılır Status: Populated, Enabled. Ayrıca cevabımı da görün .
maxschlepzig

2

dmidecode sonucunda, böyle bir şey alabilirsiniz

    Core Count: 6
    Core Enabled: 6
    Thread Count: 12

hiper iş parçacığı AÇIK olarak ayarlanmış sunucularda

veya

    Core Count: 6
    Core Enabled: 6
    Thread Count: 6

KAPALI olarak ayarlananlarda


Bu işe yaramıyor. Thread CountHyperthreading engelli hyperthreading ile i7-6600U sistemde örneğin devre dışı bırakılırsa değişmez dmidecode | grep '\(Core\|Thread\).*:'baskılar Core Count: 2 Core Enabled: 2 Thread Count: 4.
maxschlepzig

0

Spoiler: CPU'nuz hiper iş parçacığını desteklemiyor .

CPU satıcısının veritabanına danışmanın bir alternatifi bayrağı kontrol /proc/cpuinfoetmektir ht:

$ grep -o '\<ht\>' /proc/cpuinfo

BIOS'ta hiper iş parçacığı devre dışı bırakılsa bile, bayrak bu çıktıya dahil edilmelidir.

Hiper iş parçacığının gerçekten etkin olup olmadığını kontrol etmek için başka bir sözde dosyaya başvurabilirsiniz :

$ cat /sys/devices/system/cpu/smt/control

Olası değerler: on|off|forceoff|notsupported|notimplemented

Hiper iş parçacığını söz konusu sahte dosyaya on/ yazarak etkinleştirebilir / devre dışı bırakabilirsiniz off, örneğin:

# echo off > /sys/devices/system/cpu/smt/control

Tabii ki, catdaha önce yazdırılmışsa bu işe yaramaz forceoff|notsupported|notimplemented.

Genellikle, hiper iş parçacığı varsayılan olarak etkindir. Devre dışı bırakılmışsa, genellikle BIOS'ta yapılır. Sahte dosya muhtemelen içerdiği BIOS'ta devre dışı bırakılmışsa ve BIOS'taki forceoffayarı değiştirmeniz gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.