Sistema 1: Caderno

Sistema 1: Caderno

Sistema 1: Caderno

Detecte a CPU instalada:

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

A folha de dados diz:

  • não. dos Núcleos 2
  • não. de Tópicos 4

Detectar núcleos e threads:

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

Conclusão: A contagem de núcleos e a contagem de threadsencaixacom a ficha técnica.

Sistema 2: PC de mesa

Detecte a CPU instalada:

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

A folha de dados diz:

  • não. dos Núcleos 4
  • não. de Tópicos 8

Detectar núcleos e threads:

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

Conclusão: A contagem de núcleos e a contagem de threadsnãoajuste com a folha de dados.

Questões

  • Como ler as planilhas de dados da Intel e a saída de dmidecode?
  • Quantos núcleos eu tenho?
  • Quantos threads cada núcleo tem?
  • Quantos threads todo o sistema tem?

[Editar] Atualização 1

Desktop PC

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

Lendo de baixo para cima:

  • Eu tenho 1 soquete com 4 cors, cada um com 2 threads => 8 threads no total (CPUs)

Conclusão: A contagem de núcleos e a contagem de threadsencaixacom a ficha técnica.

Caderno

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

Lendo de baixo para cima:

  • Tenho 1 soquete com 2 cors, cada um com 2 threads => 4 threads no total (CPUs)

Conclusão: A contagem de núcleos e a contagem de threadsencaixacom a ficha técnica.

[EDITAR] Atualização 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

Responder1

  • Consulte sempre a ficha técnica
  • Eu tinha o mesmo CPU (a versão K, às vezes faço overclock do CPU nas horas vagas) e você tem 4 núcleos e 8 threads, 100% garantido.
  • Normalmente, cada núcleo possui 2 threads.
  • Eu não conhecia dmidecode antes de hoje :/

Isso é o que escrevi como comentário em sua pergunta. Também compartilhei um link com você e estou feliz que você tenha resolvido o problema com as instruções daquela página.

Este é o link: http://fibrevillage.com/sysadmin/155-how-to-tell-if-cpu-hyperthreading-enabled-on-linux

Eu li que

Nota: em máquinas antigas, o dmidecode pode não fornecer informações detalhadas da CPU, como contagem de núcleos, contagem de threads, etc.

mas o 4770 não é tão antigo, ainda é um ótimo CPU.

De qualquer forma, existem outras soluções e fico feliz que uma delas tenha funcionado para você!

No específico: lscpu | grep -i -E "^CPU\(s\):|core|socket"

Não recebo nenhum crédito por isso, é claro! Acredito que seja melhor apenas escrever a resposta e fechá-la, se você acredita que resolveu!

Responder2

Em primeiro lugar, HTT habilitado significa que existem dois threads por núcleo.

Agora, em relação à dmidecodesaída, algo está acontecendo, pois lista 4 núcleos e 2 threads de saída conforme você citou inicialmente.

Sua dmidecodeprodução completa, entretanto, sugere algo quepoderiafaz sentido.

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

Agora, por que diz que apenas 1 núcleo está habilitado? Vejo duas opções principais:

  • apenas um núcleo está habilitado (a causa mais óbvia).
    Talvez verifique se todos os núcleos estão realmente habilitados (configuração UEFI/BIOS Setup), mas os resultados de outras ferramentas sugerem que os núcleos estão habilitados.
  • algo está errado nos dados DMI do seu sistema

A dmidecodesaída é, como o nome da ferramenta sugere, baseada na leitura dos dados DMI do sistema e na decodificação deles. Portanto, é bem provável que dados defeituosos não sejam causados ​​pela dmidecodeferramenta em si, mas pelas tabelas DMI/SMBIOS do seu sistema contendo valores incorretos.

Quanto à folha de dados, ela pode ser confiável em relação às capacidades do chip em si, mas isso pode responder a uma pergunta um pouco diferente daquela disponível em seu ambiente (já que existem opções de configuração que podem ativar/desativar algumas das funcionalidades).

informação relacionada