¿Cómo habilitar AMD Turbo Core en Ubuntu 14.04?

9

Estoy usando Ubuntu 14.04 (3.13.0-24-kernel genérico) en una computadora portátil basada en AMD A8-4500m, y recientemente me di cuenta de que AMD Turbo Core no funciona en absoluto. Todo funciona en Windows, sin embargo, en la frecuencia de CPU de Linux no puede pasar 1.9 GHz (verificado con cpufreq-aperf).

Aquí está la salida de cpupower frequency-info, aviso Activo: sin soporte de estado bajo impulso:

analyzing CPU 0:
  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: 4.0 us.
  hardware limits: 1.40 GHz - 1.90 GHz
  available frequency steps: 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.40 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 1.90 GHz and 1.90 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1.90 GHz (asserted by call to hardware).
  cpufreq stats: 1.90 GHz:32,63%, 1.80 GHz:0,74%, 1.70 GHz:0,50%, 1.60 GHz:1,20%, 1.40 GHz:64,93%  (9287)
  boost state support:
    Supported: yes
    Active: no
    Boost States: 2
    Total States: 8
    Pstate-Pb0: 2800MHz (boost state)
    Pstate-Pb1: 2300MHz (boost state)
    Pstate-P0:  1900MHz
    Pstate-P1:  1800MHz
    Pstate-P2:  1700MHz
    Pstate-P3:  1600MHz
    Pstate-P4:  1400MHz
    Pstate-P5:  900MHz

Más pruebas (ejecutadas con el programador ondemand y 3 instancias de decodificación ffmpeg de video 1920x1080 H.264 en segundo plano):

[m132@m132 turbostat]$ sudo cpupower monitor
[sudo] password for m132: 
     |Mperf               || Idle_Stats         
 CPU | C0   | Cx   | Freq || POLL | C1   | C2   
    0| 97,78|  2,22|  1821||  0,00|  0,00|  0,00
    1| 97,84|  2,16|  1821||  0,00|  0,00|  0,00
    2| 99,22|  0,78|  1807||  0,00|  0,00|  0,00
    3| 99,18|  0,82|  1808||  0,00|  0,00|  0,00
[m132@m132 turbostat]$ sudo ./turbostat 
cor CPU   GHz  TSC time
        1.81 1.90   5**
  0   0 1.81 1.90   5**
  1   1 1.81 1.90
  2   2 1.80 1.90
  3   3 1.81 1.90

EDITAR: Parece que los procesadores de la serie Trinity tienen su propio conmutador BAPM en la fuente. Está ubicado en drivers / gpu / drm / radeon / trinity_dpm.c y (en el momento de la escritura) está habilitado solo para placas MSI, debido a problemas de estabilidad. Para habilitarlo, abra este archivo, busque esta línea:

    pi->enable_bapm = false;

Cambie falso a verdadero, luego compile e instale un nuevo núcleo. Debería obtener un impulso de kernel panic trabajando ahora. Tenga en cuenta que la potencia de la CPU también se comparte con la GPU, por lo que casi nunca obtendrá la frecuencia más alta disponible si la GPU también está en uso.

m132
fuente
1
Extraño, instalando fglrx "activado" Turbo Core, y ahora muestra "Activo: sí". cpufreq-aperfa veces informa una frecuencia de 2 GHz, pero aún no cambia a 2,3 GHz o 2,8 GHz, como en Windows.
m132
Solo para confirmar: estoy teniendo el mismo problema con un A10-7850K bajo Fedora con kernel 3.14.5: Compatible: sí, Activo: no. Parece no ser específico de la distribución.
Chris
¿Puede intentar deshabilitar la configuración de modo del núcleo ( nomodeseten la línea de comando del núcleo)? Esto solucionó este problema para mí.
Chris
1
@Chris Ahora se muestra Active: yes, pero supongo que esta información es incorrecta, porque no se muestran Pstates y cpufreq-aperfaún no informa una frecuencia superior a 1,9 GHz. También forzó el uso del software OpenGL Render para mí.
m132
¿Qué hay de turbostato cpupower monitor? ¿Muestran que se está usando el turbo?
Chris

Respuestas:

5

[Actualización 2015]

A partir de Linux 3.16:

  • El valor de bapmse puede proporcionar como un parámetro de módulo (ver aquí ).

  • El valor de bapmse establece en 1 de forma predeterminada para los sistemas Kaveri, Kabini y Trinity de escritorio, Richland (consulte aquí ), lo que hace que Turbo Core esté habilitado.

Lo que significa que con Kernel 3.16 o posterior, Turbo Core debería funcionar directamente radeonen muchos casos.

Si ejecuta Debian, o si ejecuta Ubuntu y lo anterior no es cierto para usted, consulte Cómo configurar un sistema Debian (enfoque en 2D o consola / servidor) con una APU AMD Turbo Core para obtener la máxima eficiencia energética y computacional ?

[Actualización 2014-agosto-07]

Publiqué un análisis detallado sobre elunix-stackexchange.com que contiene (al menos para mí) algunas sorpresas. Como que el ondemandgobernador sea potencialmente peor que performance(al menos con el Richland A10-6700) y fglrxaparentemente use algunos trucos cuestionables para mejorar los impulsos a corto plazo, teniendo que compensarlo abruptamente a largo plazo. Me alegro de haber mirado más de cerca esto.

[Respuesta original]

Estoy en el proceso de configurar un sistema con un A10-6700 usando Ubuntu 14.04 Server.

  • La salida de cat /proc/cpuinfono refleja, y no reflejará, ningún aumento del procesador. El impulso es una decisión autónoma sobre el chip basada en criterios potencialmente complejos. Lee sobre esto aquí .
  • La salida de cpufreq-infono mostrará las frecuencias de impulso disponibles, pero la salida de cpupower frequency-infowill. Para el A10-6700, debería mostrar 4300 MHz (Pb0), 4200 MHz (Pb1) y 3900 MHz (Pb2) además de los 3700, 3400, 2700, 2300 y 1800 MHz normales.
  • La salida de cpufreq-aperf(after modprobe msr) es comparable a la salida de cpupower monitor. Se supone que las frecuencias mostradas por estas herramientas reflejan aumentos.
  • Con el controlador de video estándar o incluso el radeonmódulo en el kernel, no logré que el A10-6700 usara una frecuencia de refuerzo (usando stress --cpu 2).
  • Con el fglrxmódulo ATI / AMD cargado en el kernel, el procesador aumentará dos núcleos permanentemente (y aparentemente también los núcleos restantes temporalmente). Esto fue probado sin que X fuera usado o incluso configurado.

Recuerde, la decisión a favor o en contra del impulso la toma la APU de manera autónoma. Supongo que en este momento es que la APU no puede decidir si su disipación de energía actual deja espacio para un impulso a menos que la unidad gráfica integrada se inicialice adecuadamente.

La salida de video con el módulo estándar difiere de la salida cuando se carga fglrx. Por lo tanto, solo podemos adivinar si el kernel puede poner la APU en el modo presumiblemente requerido "inteligente" (consciente de la pérdida de energía) por sí mismo, mientras sigue usando el módulo VGA.

Hasta que esto se resuelva, simplemente cargaré fglrx. La desventaja es que su construcción requiere muchas cosas que no desea en un servidor y que debe eliminarse después de la compilación.

Además, fglrxtiene casi 9 MB de tamaño. No es un problema, pero saber que es principalmente carga muerta en este caso no me hace muy feliz.

[Editar 2014-Jul-24]

Ahora reporté este error .

Noté que también se ha informado de otro error: si de hecho usa fglrxe intenta usar el modo de administración dinámica de energía .

Ejecute CMD
fuente
Gracias por la info. Voy a compilar un nuevo núcleo con BAPM habilitado, como se sugiere en el segundo informe de error, para ver si hace alguna diferencia :)
m132
Parece que BAPM está habilitado por defecto en el kernel 3.16. Al menos para mí, la actualización no solucionó este problema. Sin embargo, al deshabilitar el funcionamiento de DPM, obtengo frecuencias superiores a 1.8 GHz, pero luego mi computadora portátil comienza a sobrecalentarse y limito la velocidad de la CPU a 1.1 GHz, por lo que el rendimiento es aún peor.
m132
@ M132 Eso es triste. Aún así, contribuye a la sospecha. - ¿Ves el mismo comportamiento con Windows? - ¿Puedes influir en el control del ventilador? - Es una lástima que el fabricante aparentemente no cooperó con AMD lo suficientemente bueno - TurboBoost es una característica regular dentro del alcance del TDP.
Ejecute CMD el
No puedo probar ahora, porque eliminé Windows para crear una partición separada para / home. No sé acerca de los fanáticos, pero recuerdo que el Administrador de tareas me mostró una frecuencia de CPU de 2,3 GHz, por lo que TurboBoost estaba funcionando y no se sobrecalentaba, por lo que DPM también estaba funcionando.
m132
Gracias a los comentarios de ayer sobre el problema que informaste, ¡finalmente lo conseguí funcionando! Lea la pregunta para más detalles: D
m132
2

Tengo el mismo problema con mi Thinkpad ejecutando el mismo AMD A8-4500m en Ubuntu 13.10. Encontré esto hoy, pero mi inglés no es tan bueno, así que no lo entendí.

https://www.kernel.org/doc/Documentation/cpu-freq/boost.txt

Que te sea útil.

El comienzo principal que encontré es que Turbo Core no es compatible desde 11.10. Eso es todo lo que encontré. Por favor, demuéstrame que estoy equivocado.

Mojo Jojo
fuente
1
Este enlace solo explica qué es Turbo Boost / Core y cómo habilitarlo / deshabilitarlo, pero en mi caso / sys / devices / system / cpu / cpufreq / boost ya es 1 (habilitado).
m132
En ninguna parte se dice que TurboCore no es compatible. Ocurre justo lo contrario. El comentario de @ M132 es correcto.
Ejecute CMD el