jueves, 29 de junio de 2017

¿Cuál es la frecuencia máxima de turbo de mi procesador?

Los procesadores a día de hoy tienen una frecuencia base y una máxima según el número de núcleos activos.
En sistemas operativos con núcleo Linux (GNU/Linux y Android dos ejemplos principales) se puede consultar la frecuencia máxima mediante dos comandos:
  • cpufreq-info
  • cpupower frequency-info
El primero se obtiene instalando el paquete cpufrequtils en sistemas Debian. El segundo se obtiene instalando el paquete linux-tools-generic. Este paquete viene instalado por defecto en Ubuntu con escritorio Budgie.

Cpupower reemplaza a Cpufreq. Cpufreq-info a día de hoy se puede considerar anticuado. De hecho, con este comando no se puede comprobar la frecuencia turbo de un AMD Opteron 6276:

CPUFREQ

  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 63
  CPUs which need to have their frequency coordinated by software: 63
  maximum transition latency: 5.0 us.
  hardware limits: 1.40 GHz - 2.30 GHz
  available frequency steps: 2.30 GHz, 1.40 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
  current policy: frequency should be within 1.40 GHz and 2.30 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1.40 GHz (asserted by call to hardware).
  cpufreq stats: 2.30 GHz:5,18%, 1.40 GHz:94,82%  (1)

CPUPOWER

  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 5.0 us
  hardware limits: 1.40 GHz - 2.30 GHz
  available frequency steps:  2.30 GHz, 1.40 GHz
  available cpufreq governors: conservative ondemand userspace powersave performance schedutil
  current policy: frequency should be within 1.40 GHz and 2.30 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency: 1.40 GHz (asserted by call to hardware)
  boost state support:
    Supported: yes
    Active: yes
    Boost States: 2
    Total States: 7
    Pstate-Pb0: 3200MHz (boost state)
    Pstate-Pb1: 2600MHz (boost state)
    Pstate-P0:  2300MHz
    Pstate-P1:  2300MHz
    Pstate-P2:  2300MHz
    Pstate-P3:  2300MHz
    Pstate-P4:  1400MHz


Los estados de TurboCore son el Pb0 y el Pb1. El Pb0 está disponible cuando 8 o menos núcleos están activos. El Pb1 está disponible incluso con todos los núcleos activos. Cpupower no nos lo indica.

Con un procesador Intel Core i7 2630QM, cpufreq sí que nos informa del rango de frecuencias correcto. Y cpupower añade la información según el número de núcleos activos:

CPUFREQ

  driver: intel_pstate
  CPUs which run at the same hardware frequency: 7
  CPUs which need to have their frequency coordinated by software: 7
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 2.90 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 2.90 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 822 MHz.

CPUPOWER

  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 800 MHz - 2.90 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 800 MHz and 2.90 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency: 893 MHz (asserted by call to hardware)
  boost state support:
    Supported: yes
    Active: yes
    2600 MHz max turbo 4 active cores
    2600 MHz max turbo 3 active cores
    2800 MHz max turbo 2 active cores
    2900 MHz max turbo 1 active cores

Sin embargo con el Intel, cpufreq nos informa de la latencia de un cambio de frecuencia mientras que cpupower no. Aunque yo creo que es más útil saber las frecuencias máximas disponibles dependiendo del número de núcleos activos.
Como se puede observar, el driver es distinto. Del AMD Opteron se encarga el acpi-cpufreq mientras que del Intel Core i7 se encarga el driver intel_pstate. Lo cual explica las diferencias de los distintos perfiles disponibles (governors) o de porqué la latencia se puede consultar con el AMD pero con el Intel no.

No hay comentarios:

Publicar un comentario