A AMD comercializa cada módulo como dois núcleos, chamando o Opteron 6276 como um 16-core. Alguns softwares consideram cada módulo como um único núcleo físico com dois núcleos lógicos, e parece que o Linux está fazendo dessa maneira.
Eu queria determinar se uma máquina tem o hyperthreading ativado ou não. Para determinar isso, usei o conselho que encontrei on-line, que funciona da seguinte maneira:
physical_proc_count = 'grep "physical id" /proc/cpuinfo | sort -u | wc -l'
logical_proc_count = 'grep "processor" /proc/cpuinfo | wc -l'
core_count = 'grep "core id" /proc/cpuinfo | sort -u | wc -l'
A ideia é que, se o número de processadores lógicos for o dobro do número de núcleos, o hyperthreading será ativado.
Na minha ingenuidade na época, eu estava alheio ao fato de que os processadores da AMD não têm hyperthreading. Eu sabia que eles não têm a tecnologia exata chamada "Hyper-Threading", mas eu acreditei erroneamente que eles tinham um equivalente funcional. Então, eu corri o script em uma máquina com quatro processadores AMD Opteron 6276, e a saída foi:
8 núcleos por CPU física == 32 núcleos. No entanto, existem 64 CPUs lógicas. Por isso concluí que a máquina tinha hyperthreading habilitado. Isso foi ainda agravado pelo fato de que os sinalizadores do processador em / proc / cpuinfo incluem o sinalizador "ht". O que eu aprendi desde então significa "HyperTransport" no caso de chips AMD --- doh!
Um colega de trabalho percebeu o meu erro e entrou em cena informando-me educadamente que os processadores da AMD não têm hyperthreading. Eu ainda não entendo porque eu tenho os números acima que eu fiz.
Verificando as especificações técnicas do processador, há 16 núcleos por CPU física: link
Basicamente, a saída me parece que há hyperthreading. Onde foi que eu errei? Como posso analisar / proc / cpuinfo para obter as contagens verdadeiras para todos os chips AMD e Intel (HT e não-HT)?
A AMD comercializa cada módulo como dois núcleos, chamando o Opteron 6276 como um 16-core. Alguns softwares consideram cada módulo como um único núcleo físico com dois núcleos lógicos, e parece que o Linux está fazendo dessa maneira.
Tags cpu linux hyperthreading x86 amd