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

9

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

Вот выходные данные cpupower frequency-info, обратите внимание, что Active: нет поддержки Boost State:

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 в источнике. Он находится в drivers / gpu / drm / radeon / trinity_dpm.c и (на момент написания) включен только для плат MSI из-за проблем со стабильностью. Чтобы включить его, откройте этот файл, найдите следующую строку:

    pi->enable_bapm = false;

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

M132
источник
1
Странно, установка fglrx «активировала» Turbo Core, и теперь он показывает «Active: yes». cpufreq-aperfиногда сообщает о частоте 2 ГГц, но она по-прежнему не переключается на 2,3 ГГц или 2,8 ГГц, как в Windows.
m132
Просто для подтверждения: у меня та же проблема с A10-7850K под Fedora с ядром 3.14.5: поддерживается: да, активно: нет. Кажется, не быть специфичным для дистрибутива.
Крис
Можете ли вы попробовать отключить настройку режима ядра ( nomodesetв командной строке ядра)? Это исправило эту проблему для меня.
Крис
1
@Chris Теперь он показывает Active: yes, но я предполагаю, что эта информация неверна, потому что не отображаются Pstates и cpufreq-aperfвсе еще не сообщает о частоте выше 1,9 ГГц. Также это заставило меня использовать программный рендерер OpenGL.
m132
Как насчет turbostatили cpupower monitor? Они показывают, что турбо используется?
Крис

Ответы:

5

[Обновление 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).
  • Когда fglrxмодуль ATI / AMD загружен в ядро, процессор будет постоянно поддерживать два ядра (и, по-видимому, также временно остальные ядра). Это было проверено без использования X или даже настройки.

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

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

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

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

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

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

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

Запустите CMD
источник
Спасибо за информацию. Я собираюсь скомпилировать новое ядро ​​с включенным BAPM, как предложено во 2-м отчете об ошибке, чтобы увидеть, имеет ли это какое-то значение :)
m132
Похоже, что BAPM включен по умолчанию в ядре 3.16. По крайней мере для меня, обновление не решило эту проблему. Тем не менее, отключение DPM работает, я получаю частоты выше 1,8 ГГц, но затем мой ноутбук начинает перегреваться и ограничивает частоту процессора до 1,1 ГГц, поэтому производительность еще хуже.
m132
@ M132 Это печально. Тем не менее, это способствует подозрению. - Видите ли вы такое же поведение с Windows? - Можете ли вы повлиять на управление вентилятором? - Жаль, что производитель явно недостаточно хорошо сотрудничал с AMD - TurboBoost - это обычная функция в рамках TDP.
Запустите CMD
Я не могу проверить сейчас, потому что я удалил Windows, чтобы создать отдельный раздел для / home. Я не знаю, что такое фанаты, но я помню диспетчер задач, показывающий частоту процессора 2,3 ГГц, поэтому TurboBoost работал и не перегревался, поэтому DPM также работал.
m132
Благодаря вчерашним комментариям по проблеме, о которой вы сообщили, у меня наконец-то получилось! Подробности читайте в вопросе: D
m132
2

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

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

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

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

Mojo Jojo
источник
1
Эта ссылка просто объясняет, что такое Turbo Boost / Core и как его включить / отключить, но в моем случае / sys / devices / system / cpu / cpufreq / boost уже равно 1 (включено).
m132
Нигде не указано, что TurboCore не поддерживается. Противоположный случай. Комментарий @ M132 правильный.
Запустите CMD