시스템 1: 노트북

시스템 1: 노트북

시스템 1: 노트북

설치된 CPU를 감지합니다.

$ cat /proc/cpuinfo | grep "model name" | head -1
model name  : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz

데이터 시트에 따르면:

  • 아니요. 코어 2개
  • 아니요. 스레드 4

코어 및 스레드 감지:

$ sudo dmidecode -t processor | grep -E '(Core Count|Thread Count)'
Core Count: 2
Thread Count: 4

결론: 코어 수와 스레드 수맞다데이터 시트와 함께.

시스템 2: 데스크탑 PC

설치된 CPU를 감지합니다.

$ cat /proc/cpuinfo | grep "model name" | head -1
model name  : Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz

데이터 시트에 따르면:

  • 아니요. 코어 4개
  • 아니요. 스레드 8

코어 및 스레드 감지:

$ sudo dmidecode -t processor | grep -E '(Core Count|Thread Count)'
Core Count: 4
Thread Count: 2

결론: 코어 수와 스레드 수하지 않습니다데이터 시트에 맞습니다.

질문

  • 인텔 데이터시트와 출력을 읽는 방법은 무엇입니까 dmidecode?
  • 내 코어는 몇 개인가요?
  • 각 코어에는 몇 개의 스레드가 있습니까?
  • 전체 시스템에는 몇 개의 스레드가 있습니까?

[편집] 업데이트 1

데스크탑 컴퓨터

$ lscpu | grep -i -E  "^CPU\(s\):|core|socket"
CPU(s):                8
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             1

아래에서 위로 읽기:

  • 4개의 코어가 있는 1개의 소켓이 있으며 각 소켓에는 2개의 스레드 => 총 8개의 스레드(CPU)가 있습니다.

결론: 코어 수와 스레드 수맞다데이터 시트와 함께.

공책

$lscpu | grep -i -E  "^CPU\(s\):|core|socket"
CPU(s):                4
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1

아래에서 위로 읽기:

  • 2개의 코어가 있는 1개의 소켓이 있으며 각 소켓에는 2개의 스레드 => 총 4개의 스레드(CPU)가 있습니다.

결론: 코어 수와 스레드 수맞다데이터 시트와 함께.

[편집] 업데이트 2

$ sudo dmidecode -t processor
# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x0041, DMI type 4, 42 bytes
Processor Information
    Socket Designation: SOCKET 0
    Type: Central Processor
    Family: Core i7
    Manufacturer: Intel
    ID: C3 06 03 00 FF FB EB BF
    Signature: Type 0, Family 6, Model 60, Stepping 3
    Flags:
        FPU (Floating-point unit on-chip)
        VME (Virtual mode extension)
        DE (Debugging extension)
        PSE (Page size extension)
        TSC (Time stamp counter)
        MSR (Model specific registers)
        PAE (Physical address extension)
        MCE (Machine check exception)
        CX8 (CMPXCHG8 instruction supported)
        APIC (On-chip APIC hardware supported)
        SEP (Fast system call)
        MTRR (Memory type range registers)
        PGE (Page global enable)
        MCA (Machine check architecture)
        CMOV (Conditional move instruction supported)
        PAT (Page attribute table)
        PSE-36 (36-bit page size extension)
        CLFSH (CLFLUSH instruction supported)
        DS (Debug store)
        ACPI (ACPI supported)
        MMX (MMX technology supported)
        FXSR (FXSAVE and FXSTOR instructions supported)
        SSE (Streaming SIMD extensions)
        SSE2 (Streaming SIMD extensions 2)
        SS (Self-snoop)
        HTT (Multi-threading)
        TM (Thermal monitor supported)
        PBE (Pending break enabled)
    Version: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
    Voltage: 1.1 V
    External Clock: 100 MHz
    Max Speed: 7000 MHz
    Current Speed: 3700 MHz
    Status: Populated, Enabled
    Upgrade: Other
    L1 Cache Handle: 0x0004
    L2 Cache Handle: 0x0005
    L3 Cache Handle: 0x0006
    Serial Number: Not Specified
    Asset Tag: Fill By OEM
    Part Number: Fill By OEM
    Core Count: 4
    Core Enabled: 1
    Thread Count: 2
    Characteristics:
        64-bit capable

답변1

  • 항상 데이터시트를 참조하세요
  • 나는 동일한 CPU(K 버전, 때로는 여가 시간에 CPU를 오버클럭함)를 가지고 있었고 4개의 코어와 8개의 스레드를 가지고 있으며 100% 보장됩니다.
  • 일반적으로 각 코어에는 2개의 스레드가 있습니다.
  • 오늘 이전에는 dmidecode를 몰랐습니다 :/

귀하의 질문에 제가 댓글로 쓴 내용입니다. 또한 링크를 공유했는데 해당 페이지의 지침에 따라 문제를 해결하셨다니 다행입니다.

링크는 다음과 같습니다. http://fibrevillage.com/sysadmin/155-how-to-tell-if-cpu-hyperthreading-enabled-on-linux

나는 그것을 읽었다

참고: 이전 시스템에서는 dmidecode가 코어 수, 스레드 수 등과 같은 CPU 세부 정보를 제공하지 않을 수 있습니다.

하지만 4770은 그렇게 오래된 것은 아니며 여전히 훌륭한 CPU입니다.

어쨌든, 다른 솔루션이 있으며 그 중 하나가 귀하에게 도움이 되어 기쁩니다!

구체적인 내용은 다음과 같습니다. lscpu | grep -i -E "^CPU\(s\):|core|socket"

물론 나는 이것에 대한 공로를 인정하지 않습니다! 문제가 해결되었다고 믿으신다면 답을 작성하고 닫는 것이 더 낫다고 생각합니다!

답변2

우선, HTT가 활성화된다는 것은 코어당 스레드가 2개 있다는 의미입니다.

이제 dmidecode출력과 관련하여 처음 인용한 대로 4개의 코어, 2개의 스레드 출력이 나열되어 있으므로 뭔가 문제가 있습니다.

그러나 전체 dmidecode출력은 다음과 같은 것을 암시합니다.~할 수 있었다말이 되네요.

Core Count: 4
Core Enabled: 1
Thread Count: 2

그런데 왜 코어가 1개만 활성화되어 있다고 말하는 걸까요? 두 가지 주요 옵션이 있습니다.

  • 하나의 코어만 활성화됨(가장 확실한 원인)
    모든 코어가 실제로 활성화되어 있는지 확인할 수도 있지만(UEFI/BIOS 설정 설정), 다른 도구의 결과에 따르면 코어가 활성화된 것으로 나타납니다.
  • 시스템의 DMI 데이터에 문제가 있습니다

출력 dmidecode은 도구 이름에서 알 수 있듯이 시스템 DMI 데이터를 읽고 디코딩하는 것을 기반으로 합니다. 따라서 잘못된 데이터는 dmidecode도구 자체로 인해 발생하는 것이 아니라 잘못된 값이 포함된 시스템의 DMI/SMBIOS 테이블로 인해 발생했을 가능성이 높습니다 .

데이터시트의 경우 칩 자체의 기능과 관련하여 신뢰할 수 있지만 해당 환경에서 사용할 수 있는 것과는 약간 다른 질문에 대답할 수 있습니다(일부 기능을 활성화/비활성화할 수 있는 구성 옵션이 있기 때문).

관련 정보