Управление частотами и разгон ноутбучных видеокарт AMD Radeon в Windows

В отношении вещей я человек довольно таки консервативный, поэтому использую все «до конца», пока вещи выполняют свои функции и пытаюсь получить от них все, на что они способны. Так и с компьютерной техникой, поэтому тема «разгона» мне всегда была интересна и практиковалась на всем, что использовалось. Одним из последних приобретенных гаджетов стал ноутбук HP ProBook 4530s в комплектации Intel Core i3/AMD Radeon HD 6490M. Этот рассказ о том, что и как я сделал, чтобы видеокарта от AMD потребляла меньше и работала быстрее.

image

Как известно, в ноутбуках почти все скрыто и залочено, минимум настроек железа, специфические конфигурации и т.п., то есть сделано все, чтобы пользователь не смог «покрутить» ничего лишнего. Собственно поэтому и заинтересовался сообщением в профильной теме конференции по поводу возможности разгона видеокарты. Быстро докопавшись до сути изменений системы было определено, что закладка «OverDrive» появляется от внесения в реестр бинарных данных с именем «PP_PhmSoftPowerPlayTable» Запись эта находится в настройках драйверов аппаратуры HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\00xx" (в зависимости от порядка нахождения и установки видеокарт xx может меняться, но там не сложно понять, присутствует текстовое обозначение видеокарт). После этого в Catalyst Control Center появилась возможность менять максимальные частоты ядра и памяти. Все работало, все разгонялось, на этом на то время и остановился.

Так сложилось, что пользуясь ноутбуком, несмотря на наличие в нем «переключаемой графики» (Switchable Graphics), предпочитаю ручное переключение видеокарт и практически всегда использую AMD. Так оно и работает «ровнее», и низкое потребление не в приоритете, поскольку ноутбук большую часть времени работы проводит подключенным к розетке. Но все равно хотелось, чтобы в экономном профиле ноутбук потреблял (и грелся) меньше. Однажды мне случайно встретилась программа редактирования бисов видеокарт Radeon — RBE — Radeon BIOS editor. Одной из ее возможностей была настройка частот для профилей PowerPlay. Однако редактирование непосредственно bios не представлялось возможным. Несмотря на то, что биос ноутбука можно «расковырять», поправить что-то и «заковырять» обратно, прошить это в мой ноутбук не представляется возможным. И тут меня осенило, а не будет ли запись «PP_PhmSoftPowerPlayTable» эквивалентной тем же таблицам, только в биосе видеокарты? И, как оказалось потом — будет!

Итак, приступим. Нам нужен биос видеокарты Radeon. Распаковываем образ обновления прошивки биос ноутбука (я делаю это при помощи Total Commander) и ищем строку «ATOMBIOSBK-ATI» в файлах, я так понимаю это торговая марка их биосов. И тут первый сюрприз: находим аж 6 разных файлов, половина из которых (судя по строкам в них попадающимся) предназначена для платформы «HP_IEC_Roxette_SeymourXT_GDDR5» (не мое), половина для «HP_IEC_Ramones_SeymourXT_GDDR5» (Ramones — название платформы ноута, SeymourXT — коденейм GPU Radeon HD 6490M).

image

Оставался вопрос, как выбрать из 3-х нужный мне файл (изначально я не знал, будут ли данные из записи «PP_PhmSoftPowerPlayTable» совпадать с данными в файле). Тестировщик AIDA64 предоставляла следующую информацию о видеокарте.

[ AMD Radeon HD6490M ]

Свойства видеоадаптера:
Описание устройства — AMD Radeon HD6490M
Строка адаптера — AMD Radeon HD6490M
Строка BIOS — BR41262.S02


Меня заинтересовала «Строка BIOS» и, как оказалось, она была уникальна для каждого файла. Файл найден, ищем в нем вхождение бинарных данных из записи «PP_PhmSoftPowerPlayTable» и находим! Получается в драйвере предусмотрен режим подмены таблиц PowerPlay из биоса на запись из реестра. Теперь наша задача поправить таблицы в биосе и внести эквивалентные изменения в реестр.

image

Здесь хочу обратить внимание, откуда же берется этот самый «OverDrive». При открытии оригинального файла биос видеокарты RBE предупреждает об отсутствии записи настроек OverDrive. Сравнивая таблицы оригинальную и из реестра видим:

image

Вместо нолей появились записи максимальных допустимых частот для ядра и памяти (тут они записываются в x10kHz). После внесения соответствующих изменений в файл образа биос видим наши частоты на вкладке редактирования OverDrive в RBE, что подтверждает изыскания.

image

Немного о «PowerPlay». Это технология управления энергопотреблением видеокарты. В мобильном варианте организовано два профиля — экономичный и производительный. Они переключаются в настройках Catalyst Control Center и заданы в биосе различными сценариями.

image

image
image

Сценарий «1» включает в себя набор из 3 состояний и используется в режиме производительность, сценарий «3» — для режима «экономия энергии». Так же есть отдельный сценарий («2») предназначенный для режима аппаратного декодирования видео.

Собственно дальше, думаю, все понятно, меняем как душе угодно частоты сценариев, берем измененную таблицу PowerPlay и вносим ее в реестр. С частотами вроде проще, тактовый генератор встроен в чип, частоты наверняка генерируются единообразно и с этим проблем быть не должно, но раз мы опустили частоту работы GPU в некоторых состояниях, становится интересным уменьшить и его напряжение питания. Но тут, как мы понимаем, все очень вендор-специфик. Смотрим как это сделано:

image

Собственно, сам шим-контроллер TPS51511. Задумывался как 2-х уровневый, но немного доработали схему получив 4 переключаемых уровня напряжения. Управление ведется сигналами POW_SW1 и POW_SW0. А вот откуда они берутся:

image

Это чип GPU, как видим, используются линии ввода-вывода произвольного назначения (GPIO). Разбираясь в вопросе узнал, что биос видеокарты предоставляет функции установки частот GPU, памяти и вольтажа, то есть вроде как ведор-специфик аппаратная часть подкреплена программной, значит можно пробовать. Думаю, в биос есть какие-то пороги, в зависимости от которых и заданного для установки напряжения будут соответствующим образом меняться состояния выводов POW_SW1 и POW_SW0. Чтобы не разбирать и не мерить, изменилось ли напряжение на самом деле, решил оценить это по нагреву GPU в тесте в режиме экономии энергии. Оценка показала снижение температуры на 5-7гр при тех же частотах, то есть сработало!

Вот, собственно, и весь краткий рассказ. Что касается конкретно моей видеокарты, изначально максимальные частоты GPU/память были 750/900. Архитектура ее такова, что производительность ограничивается именно GPU. При тестах прирост на 15% частоты GPU дает около 11% прироста производительности, тогда как прирост частоты памяти на те же 15% давал лишь 1% производительности. Остановился на настройках как на последних скриншотах RBE. Сам механизм OverDrive лучше не использовать, потому что при его активации промежуточные состояния частот берутся не из таблицы реестра, а из биос. Поэтому максимальные желаемые частоты были внесены в стандартные состояния. Так же в режиме высокой производительности среднее состояние сделал без переключения частоты памяти и вольтажа. Насколько я понял, переключение частоты памяти сопровождается сбросом контроллера памяти и дополнительными «телодвижениями», что ни к чему при желании максимальной производительности, ну и вольтажом лучше не клацать, дабы минимизировать всякие переходные процессы. Так же были уменьшены частоты режима декодирования видео.

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

Думаю, такая методика будет работать и на других конфигурациях, но у меня нет возможно протестировать это. Буду рад, если это кому-то интересно и кто-то попробует и поделится результатами.
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 15

    +1
    Хороший материал! Во времена молодости путем модифицирования биоса из GeForce 3 ti200 получалась ti500, причем в 3д марке прирост был более чем приличный.
    Правда подобные манипуляции с ноутбуками я никогда не понимал, но ежель снижение температуры-энергопотребления, то оно того стоило.
      0
      Какая температура у видеокарты после разгона? у меня итак в играх держит под 70
        0
        Получается градусов 75-77 при около 25 градусов окружающей среды. Это при 100% загрузке CPU и GPU, при этом нужно учитывать, что они находятся на одной тепловой трубке и «греют» друг друга. Поэтому от разгона может получатся нелинейный эффект, будет больше греться сам GPU, но еще и CPU сможет меньше «гулять», увеличивая общий нагрев. В реальных условиях температура получается наверное не более 70 гр.
          0
          Попробуйте погонять волосатым бубликом и линпаком. У меня температура быстро подскакивала за 80, после чего отключался турбобуст, а турбинка громко завывала.
            0
            75-77 — это именно под бубликом в режиме «экстрим бурнин». Но он загружает только один поток CPU, поэтому CPU догружал дополнительно. Наверное все дело в том, что моя конфигурация ноута не самая производительная в линейке и система охлаждения сделана с достаточным запасом.
        0
        Под Linux реально пошаманить?
          0
          Я совсем не ориентируюсь, как там обстоят дела с драйверами, но когда разбирался, натыкался на исходники какие-то для видеокарт Radeon (собственно из них и узнал много интересного). Если есть исходники — можно сделать почти все, что хочется :)
            0
            Поищите, какие файлы читает ccc. Может получится чего и подправить.
            0
            Протестировал на elitebook 8460p. Доступ к разгонам не получил. VGA bios в обновлении всего биоса отсутствует. Прирост производительности получил за счет обновления драйверов до последней беты. По сравнению со штатными драйверами производительность увеличилась прилично.
              0
              В последнем обновлении файлы биосов — 3C1135C8.rom, CFE15BDA.rom, F3735896.rom — «HP_Foxconn_Cure_SeymourXT_DDR3 (BR41780.00)», «HP_IEC_CLASH_SEYMOURXT_800 (BR41330.001)», «HP_Wistron_Heart_SeymourPro_DDR3 (BR39458.001)» соответственно. Если поймете, какой у вас могу помочь с составлением таблицы.
                0
                Биос нашел (BR41330.001), но опции разгона не появились. Покопался в реестре, включил проверку обновлений, разлочил кучу других функций).
                  0
                  Таблица PP_PhmSoftPowerPlayTable в этом файле находится по смещению 0xae20 и имеет размер 444 байта. Вот ваша таблица со включенным ОверДрайвом (больши чего не поменяно).

                  Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0001] "PP_PhmSoftPowerPlayTable"=hex:bc,01,05,01,00,07,04,10,18,42,00,5e,00,ce,00,e8,\ 03,e8,03,42,00,06,00,00,00,0c,00,00,02,00,3c,00,00,5e,00,ce,00,04,76,01,08,\ 00,00,00,82,01,6f,01,00,00,3b,0a,00,00,8c,01,00,00,9c,01,b1,01,00,00,00,00,\ 00,00,00,00,01,01,02,00,02,03,03,03,03,04,04,05,04,06,06,06,05,05,05,05,06,\ 06,06,06,f8,24,01,90,5f,01,4c,04,00,00,00,00,01,00,00,00,10,27,00,98,3a,00,\ 84,03,00,00,00,00,01,00,00,00,40,9c,00,90,5f,01,e8,03,00,00,00,00,01,00,00,\ 00,70,11,01,90,5f,01,4c,04,00,00,00,00,01,00,00,00,10,27,00,98,3a,00,84,03,\ 00,00,00,00,00,00,00,00,30,75,00,30,75,00,84,03,00,00,00,00,00,00,00,00,40,\ 9c,00,e8,fd,00,84,03,00,00,00,00,00,00,00,00,08,00,00,00,78,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,00,00,00,00,00,05,00,00,00,78,00,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,00,00,00,00,00,04,00,00,7a,00,00,00,00,00,00,70,\ 11,01,00,c0,da,00,00,00,00,00,00,00,01,00,00,00,78,80,00,00,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,00,00,01,40,00,00,7a,80,00,00,00,00,00,40,9c,00,\ 00,30,75,00,00,00,00,00,00,00,01,80,00,00,7a,80,00,00,00,00,00,10,27,00,00,\ 10,27,00,00,00,00,00,00,00,20,00,00,00,7a,00,00,00,00,00,00,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,69,03,64,6b,05,68,6e,07,6e,70,09,0a,00,a0,86,01,\ 00,a0,86,01,00,03,40,9c,00,84,03,d8,d6,00,e8,03,f8,24,01,4c,04,04,98,3a,00,\ 84,03,30,75,00,84,03,e8,fd,00,84,03,80,38,01,84,03,01,90,5f,01,90,5f,01,4c,\ 04,00,00

                  Только проконтролируйте, цифры номера адаптера в «пути»
                    0
                    Overdrive так и не появился. Может кто потестирует с последними дровами?
                    image
                      0
                      У вас там странный путь на картинке, ControlSet002. Таблица туда 100% попадает? Попробуйте поменять какие-то настройки и убедится, что именно там сохраняются.

                      Кста, новые драйвера на БСОДят? А то отзывы по интернету про них не очень, и я сам настраивал 4540s, так он после спящего режима в синий экран уходил.
                        0
                        Таблица там присутствует.
                        Более того, нашел места, куда еще копируются эти настройки.

                        Драйвера работают нормально. С предыдущей версией были БСОДЫ, но не часто. Спящим режимом не пользуюсь, предпочитаю гибернацию.

            Only users with full accounts can post comments. Log in, please.