Tengo la sensación de que hyperthreading no está activado en mi PC. Eché un vistazo /proc/cpuinfo
y se describe que los hermanos tienen el mismo número que los núcleos de la CPU. Esto significa que hyperthreading no está activado. ¿Cómo puedo activarlo?
Entradas parciales de /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
11.10
configuration
grenzfrequence
fuente
fuente
Ejecutar
top
en una terminal, presione el número1
en su teclado para mostrar la carga por CPU en el encabezado, ¿cuántos CPU se describen allí?Si son el doble de núcleos reales en su CPU, hyperthreading está funcionando como debería.
fuente
Para detectar si está utilizando hyperthreading (también conocido como Tecnología Intel Hyperthreading) puede usar dmidecode .
En una terminal:
Busque un valor de estado de poblado, habilitado (se muestra a continuación entre * ... *), es decir, "habilitado" significa que hyperthreading está activo
En una CPU lógica Hyperthreaded, verá un valor de estado de despoblado (que se muestra a continuación entre * ... *):
fuente
fuente
dmidecode | grep -i popula
también se imprimeStatus: Populated, Enabled
. Ver también mi respuesta .en el resultado de dmidecode, puede obtener algo como
en servidores con hyper thread establecido en ON
o
en aquellos configurados en OFF
fuente
Thread Count
no cambia si hyperthreading está desactivado, por ejemplo, en un sistema i7-6600U con hyperthreading discapacitadosdmidecode | grep '\(Core\|Thread\).*:'
impresionesCore Count: 2 Core Enabled: 2 Thread Count: 4
.Spoiler: tu CPU no admite hyperthreading .
Una alternativa a consultar la base de datos del proveedor de CPU es verificar
/proc/cpuinfo
laht
marca:Incluso si hyperthreading está deshabilitado en el BIOS, el indicador debe incluirse en esa salida.
Para verificar si hyperthreading está realmente habilitado, puede consultar otro pseudo archivo :
Los valores posibles son:
on|off|forceoff|notsupported|notimplemented
Puede habilitar / deshabilitar hyperthreading escribiendo
on
/off
en ese pseudo archivo, por ejemplo:Por supuesto, esto no funciona si el
cat
impreso anteriormenteforceoff|notsupported|notimplemented
.Por lo general, hyperthreading está habilitado, de forma predeterminada. Y si está deshabilitado, generalmente se hace en el BIOS. Si está deshabilitado en el BIOS, es probable que el pseudo archivo contenga
forceoff
y debe cambiar la configuración en el BIOS.fuente