Как включить 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. Это все, что я нашел. Пожалуйста, докажите мне, что я не прав.