Как включить AMD Turbo Core в Ubuntu 14.04?

Я использую Ubuntu 14.04 (ядро 3.13.0-24-generic) на ноутбуке на базе AMD A8-4500m, и недавно я заметил, что AMD Turbo Core вообще не работает. Все работает в Windows, однако в Linux частота процессора не может превышать 1,9 ГГц (проверено с помощью cpufreq-aperf).

Вот вывод cpupower frequency-info, обратите внимание, активен: нет поддержки буста:

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

Дополнительные тесты (проводились с планировщиком по требованию и 3 экземплярами ffmpeg для декодирования видео H.264 1920x1080 в фоновом режиме):

[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

РЕДАКТИРОВАТЬ: Кажется, что процессоры серии Trinity имеют свой собственный переключатель BAPM в источнике. Он находится в драйверах /gpu/drm/radeon/trinity_dpm.c и (на момент написания) включен только для плат MSI из-за проблем со стабильностью. Чтобы включить его, откройте этот файл, найдите следующую строку:

    pi->enable_bapm = false;

Измените false на true, затем скомпилируйте и установите новое ядро. Вы должны заставить работать ядро паники сейчас. Имейте в виду, что мощность процессора также используется совместно с графическим процессором, поэтому вы почти никогда не получите самую высокую доступную частоту, если также используется графический процессор.

2 ответа

Решение

[Обновление 2015]

Начиная с Linux 3.16:

  • Значение для bapm может быть предоставлен как параметр модуля (см. здесь).

  • Значение bapm по умолчанию установлено значение 1 для систем Kaveri, Kabini и настольных компьютеров Trinity, Richland (см. здесь), в результате чего Turbo Core включен.

Это означает, что с ядром 3.16 или выше, Turbo Core должен работать прямо из коробки с radeon во многих случаях.

Если вы используете Debian или Ubuntu, и вышеприведенное не подходит для вас, обратитесь к разделу Как настроить систему Debian (фокус на 2D или консоль / сервер) с AMD Turbo Core APU для максимальной энергии и эффективности вычислений.?

[Обновление 2014-август-07]

Я опубликовал подробный анализ в unix-stackexchange.com который содержит (по крайней мере для меня) несколько сюрпризов. Такой как ondemand губернатор потенциально хуже, чем performance (по крайней мере, с Richland A10-6700) и fglrx по-видимому, используя некоторые сомнительные приемы для улучшения кратковременного усиления, внезапно приходится компенсировать это в долгосрочной перспективе. Я рад, что я посмотрел на это поближе.

[Оригинальный ответ]

Я нахожусь в процессе настройки системы с A10-6700 с использованием Ubuntu 14.04 Server.

  • Выход из cat /proc/cpuinfo не отражает и не будет отражать усиление процессора. Повышение - это автономное решение для чипа, основанное на потенциально сложных критериях. Читайте об этом здесь.
  • Выход из cpufreq-info не будет отображать доступные повышающие частоты, но вывод cpupower frequency-info будут. Для A10-6700 он должен показывать 4300 МГц (Pb0), 4200 МГц (Pb1) и 3900 МГц (Pb2) в дополнение к обычным 3700, 3400, 2700, 2300 и 1800 МГц.
  • Выход из cpufreq-aperf (после modprobe msr) сопоставимо с выходом cpupower monitor, Частоты, показанные этими инструментами, должны отражать усиления.
  • Со стандартным драйвером видео или даже radeon модуль в ядре, мне не удалось заставить A10-6700 использовать повышающую частоту (используя stress --cpu 2).
  • С ATI/AMD fglrx модуль загружен в ядро, процессор будет постоянно увеличивать два ядра (и, по-видимому, временно также и остальные ядра). Это было проверено без использования X или даже настройки.

Помните, что решение за или против повышения принимается ВСУ самостоятельно. На данный момент я предполагаю, что APU не может решить, оставляет ли его текущее рассеяние мощности место для усиления, если встроенный графический блок не будет должным образом инициализирован.

Вывод видео с помощью стандартного модуля отличается от вывода при загрузке fglrx. Поэтому мы можем только догадываться, сможет ли ядро ​​перевести APU в предположительно требуемый "интеллектуальный" режим (с учетом потери мощности), при этом используя модуль VGA.

Пока это не будет решено, я буду просто загружать fglrx, Недостатком является то, что для его создания требуется много вещей, которые вам не нужны на сервере и которые необходимо удалить после компиляции.

Также, fglrx почти 9 МБ. Это не проблема, но знание того, что это в основном мертвый груз в этом случае, не делает меня слишком счастливым.

[Изменить 2014-июль-24]

Теперь я сообщил об этой ошибке.

Я заметил еще одну ошибку: если вы используете fglrx и попробуйте использовать режим динамического управления питанием.

У меня та же проблема с моим Thinkpad с тем же AMD A8-4500m на Ubuntu 13.10. Я нашел это сегодня, но мой английский не так хорош, поэтому я не понял этого.

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

Пусть это будет полезно для вас.

Основное начало, которое я обнаружил, заключается в том, что Turbo Core не поддерживается с 11.10. Это все, что я нашел. Пожалуйста, докажите мне, что я не прав.

Другие вопросы по тегам