우분투가 하이퍼 스레딩을 활성화했는지 어떻게 테스트 할 수 있습니까?


13

PC에서 하이퍼 스레딩이 활성화되지 않은 느낌이 있습니다. 나는 살펴 보았고 /proc/cpuinfo형제는 CPU 코어와 같은 수를 가지고 있다고 설명했다. 이는 하이퍼 스레딩이 활성화되지 않았 음을 의미합니다. 어떻게 활성화합니까?

의 항목 /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

답변:


15

/ sys / bus / cpu / devices / cpu * / topology / thread_siblings_list는 코어 및 하이퍼 스레드의 레이아웃을 보여줍니다. 보다 쉽게 ​​시각화하려면 lstopo 명령을 사용하여 다음을 설치하는 것이 좋습니다.

sudo apt-get install hwloc

다음을 실행하십시오.

lstopo

내 ivybridge 데스크톱에는 4 개의 CPU가 있습니다. 각각 하이퍼 스레드가 있으므로 Cores P # 0..3의 다이어그램이 있고 각각 PU가 2 개 있습니다 (이 중 하나는 하이퍼 스레드 임).

여기에 이미지 설명을 입력하십시오

이 출력의 텍스트 버전 만 원하면 다음을 사용하십시오.

lstopo -

아직 아무도이 문제를 제기하지 않은 이유는 확실하지 않습니다 ... 이것은 정말 유용한 유틸리티입니다.
uck 베넷

이것은 정말 멋지다. 1 개의 이미지로 전체 캐시, 코어, 하이퍼 스레드를 볼 수 있습니다
Silver Moon

9

top터미널에서 실행 하고 1키보드의 숫자 를 눌러 헤더에 CPU 당로드를 표시하십시오. CPU는 몇 개입니까?

CPU 하이퍼 스레딩에서 실제 코어의 두 배인 경우 제대로 작동합니다.


7

하이퍼 스레딩 (일명 Intel 하이퍼 스레딩 기술)을 사용 중인지 감지하려면 dmidecode 를 사용할 수 있습니다 .

터미널에서 :

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

Populated, Enabled 상태 값을 찾으십시오 (아래에 * ... * 사이에 표시됨). "Enabled"는 하이퍼 스레딩이 활성화되어 있음을 의미합니다.

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

하이퍼 스레드 논리 CPU에서 상태 값이 채워지지 않음 (아래에 * * * 사이에 표시됨)이 표시됩니다.

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

출처


Linux 커널은 BIOS 구성 DMI 데이터를 사용하지 않고 CPU (CPUID 토폴로지 열거 사용)에서 CPU 및 형제 수를 결정합니다. 부팅시 DMI 데이터가 커널이 사용하는 것과 동일한 CPUID 데이터로 구성되어 있다고 생각되지만 DMI 데이터가 아닌 Linux 커널이 결정한 내용을 신뢰하는 것이 가장 좋습니다. 이런 상황이 발생하면 대부분의 경우 BIOS가 올바르게 작동 할 수 있습니다.
Colin Ian King

하이퍼 스레딩이 비활성화 된 경우 dmicode 출력은 변경되지 않습니다. CPU가 하이퍼 스레딩을 지원하는지 여부 만 나타냅니다. 예를 들어, 하이퍼 스레딩이 비활성화 된 i7-6600U CPU 시스템에서는 dmidecode | grep -i popula또한 인쇄합니다 Status: Populated, Enabled. 내 답변 도 참조하십시오 .
maxschlepzig

2

dmidecode의 결과로 다음과 같은 것을 얻을 수 있습니다

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

하이퍼 스레드가 ON으로 설정된 서버에서

또는

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

OFF로 설정된 경우


작동하지 않습니다. 는 Thread Count하이퍼 스레딩을 사용하지 하이퍼 스레딩와 i7-6600U 시스템의 예를 들어, 사용하지 않으면 변경되지 않습니다 dmidecode | grep '\(Core\|Thread\).*:'인쇄 Core Count: 2 Core Enabled: 2 Thread Count: 4.
maxschlepzig

0

스포일러 : CPU 는 하이퍼 스레딩을 지원하지 않습니다 .

CPU 벤더의 데이터베이스를 참조하는 대안 /proc/cpuinfoht플래그 를 확인 하는 것 입니다.

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

BIOS에서 하이퍼 스레딩이 비활성화되어 있어도 플래그는 해당 출력에 포함되어야합니다.

하이퍼 스레딩이 실제로 활성화되어 있는지 확인하려면 다른 의사 파일을 참조하십시오 .

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

가능한 값은 다음과 같습니다. on|off|forceoff|notsupported|notimplemented

해당 의사 파일에 on/ off를 쓰면 하이퍼 스레딩을 활성화 / 비활성화 할 수 있습니다 . 예 :

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

물론 cat이전에 인쇄 된 중 하나가 작동하면 작동하지 않습니다 forceoff|notsupported|notimplemented.

일반적으로 하이퍼 스레딩은 기본적으로 사용됩니다. 비활성화되어 있으면 일반적으로 BIOS에서 수행됩니다. 의사 파일에 포함되어있을 가능성이있는 BIOS에서 BIOS가 비활성화되어 있으면 BIOS forceoff에서 설정을 변경해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.