На первый взгляд давно миновали те времена, когда разгон графического ускорителя был уделом энтузиастов. Теперь существует множество программ-помощников – удобных утилит с широкими возможностями разгона.
Но достаточно ли обеспечиваемых ими возможностей, чтобы полностью раскрыть потенциал видеокарты? Какие рабочие параметры кроме температуры графического процессора и напряжения питания могут повлиять на частотный потенциал? Какие ограничения в плане разгона ставит производитель и есть ли возможность их обойти? На эти вопросы я постараюсь дать ответы на примере Radeon R7 240, используя программные и аппаратные модификации.
Для экспериментов была выбрана модель PowerColor Radeon R7 240 2 Гбайта (код производителя PowerColor AXR7 240 2GBK3-HV2E/OC).
Данная видеокарта собрана на печатной плате, аналогичной Radeon R7 250, и спроектирована под двухфазный преобразователь питания графического процессора, однако для R7 240 распаяна только одна фаза.
В ходе своих исследований я планирую вернуть вторую фазу на место и проверить эффективность такой модификации.
Использована полноразмерная печатная плата со всеми ее особенностями, в том числе стандартным расположением отверстий для крепления кулера. Благодаря последнему моменту можно установить стороннюю систему охлаждения без каких-либо ухищрений.
Применение медленной DDR3 памяти вместо быстрой GDDR5 является серьезным недостатком, но на момент покупки версии Radeon R7 240 с GDDR5 и печатной платой под двухфазное питание в продаже отсутствовали. Поэтому для исследовательских целей была выбрана данная модель.
Сведем краткие характеристики устройства в таблицу.
| Графический процессор Oland | 320 шейдерных конвейеров, 8 ROP, 20 TMU |
| Частота GPU | 750 МГц, 800 МГц в режиме Boost; напряжение для режима 3D 1.15 В |
| Микросхемы памяти | Elixir N2CB2G16HP-DI, 800 (1600 DDR3) МГц; рабочее напряжение 1.8 В |
Примечательно, что частота памяти на данной видеокарте на 100 (200) МГц ниже рекомендованной компанией AMD.
Прежде чем перейти к разгону, я диагностировал работу преобразователя питания несколькими способами. Для начала был запущен тест Fire Strike из пакета 3DMark, а к питанию графического процессора по очереди подключались мультиметр UT61A и осциллограф-приставка Velleman pcs100.
Как уже упоминалось, стандартное для этого экземпляра Oland напряжение – 1.15 В, такое значение показывают диагностические утилиты, его подтверждает и UT61A. Но вот что мы видим, когда вместо мультиметра подключаем к нагрузке осциллограф.
Верхний снимок показывает, что среднее напряжение равно ~1.16 В. Небольшая погрешность в 0.01 В вызвана тем, что измеряющие маркеры осциллографа выставляются вручную с некоторым шагом, а не автоматически.
Здесь же мы наблюдаем пульсации, которые приходят на вход питания GPU, обратимся к нижнему снимку. По нему можно видеть, что пульсации повторяются с частотой примерно 300 КГц и обладают на данном участке амплитудой до 0.16 В, причем примерно 0.08 В приходится на пониженное относительно номинала напряжение. Штатными средствами осциллографа затруднительно замерить точную продолжительность перепада, но судя по шкале, оно в пределах 1 микросекунды (мкс).
Для нас это означает, что на протяжении 1 мкс графический процессор работает на пониженном напряжении 1.08 В, а это около 100 000 синхроимпульсов.
Многие уже поняли, откуда возникли эти пульсации с частотой 300 КГц, для остальных немного теории. С блока питания через слот PCI-E и через дополнительные разъемы на видеокарту приходит основное питающее напряжение 12 В, в нашем случае только через слот PСI-E. Задачу преобразовать его в рабочее напряжение 1.15 В выполняет ШИМ-контроллер и группа транзисторов Mosfet, работающая в ключевом режиме.
На рисунке приведена упрощенная схема однофазного преобразователя. Транзистор Т1 называется верхним плечом, Т2 – нижним плечом. Сток верхнего плеча подключен к напряжению 12 В, исток через LC фильтр подключен к нагрузке GPU и стоку транзисторов нижнего плеча. В нашем случае в нижнем плече два транзистора, они подключены параллельно друг другу и своими истоками подсоединены к земле.
В данной видеокарте ШИМ-контроллер через встроенный драйвер переключает мосфеты верхнего и нижнего плеча с частотой 300 КГц, причем делает это в противофазе – когда открыто верхнее плечо, то нижнее закрыто и наоборот. На приведенной осциллограмме мы видим работу верхнего плеча.
Через верхнее плечо с частотой 300 КГц на вход LC фильтра подаются импульсы с напряжением 12 В, шириной этих импульсов контроллер регулирует выходное напряжение. А на выходе LC фильтра, как мы видели, уже сглаженное напряжение 1.15 В, но, как оказывается, сглаженное не полностью. Отмечу, что на данной осциллограмме значение напряжения указано в десять раз меньше реального из за установленного множителя на щупах Velleman pcs100.
На основе проведенных замеров можно предположить, что при разгоне пульсации на выходе питания GPU (особенно участки с пониженным напряжением) могут ограничить разгонный потенциал. Самое время перейти к разгону.
Для чистоты всех последующих экспериментов и с целью исключить ее влияние штатная система охлаждения сразу была заменена на кулер видеокарты Sapphire Radeon HD 5750 Vapor-X. Он основан на испарительной камере с закрепленным на ней алюминиевым оребрением и отлично справлялся с охлаждением графических процессоров с TDP 90 Вт. Такая конструкция с избытком подойдет для наших нужд.
Стандартными средствами разгона Catalyst удалось разогнать GPU до частоты примерно 980 МГц – почти до предела в 1000 МГц, заложенного производителем. На планке 980 МГц ускоритель не терял стабильности, а опускал частоту до 740 МГц, причем делал это независимо от положения ползунка Power Limit. Память разогнана до 1000 (2000 DDR3) МГц, ползунок Catalyst достиг своего предела.
Для увеличения пределов разгона можно использовать программу MSI Afterburner или отредактировать прошивку утилитой VBE7. Я предпочитаю использовать VBE7, поскольку она помимо всего прочего позволяет увеличить пределы Power Limit, однако в порядке эксперимента MSI Afterburner тоже был испробован.
К моему удивлению обе утилиты не помогли. Независимо от правок Power Limit графический ускоритель отказывался работать в режиме Boost, таким образом дальнейший разгон программным путем был невозможен, и я перешел к разгону через редактирование BIOS.
Идея подобного разгона проста. Режим 3D (#5) выставляется таким же, как и режим Boost (#0); таким образом, видеокарта хоть и не хочет работать в Boost, но прекрасно работает в разогнанном 3D.
Этими манипуляциями удалось достичь результата 1200 МГц по ядру при поднятии напряжения до 1.2 В, при штатном напряжении 1.15 В тест Fire Strike почти сразу вылетал.
При значениях частоты GPU выше 1200 МГц частота памяти стала сбрасываться в стандартные 800 МГц, игнорируя положение ползунка разгона и параметры прошивки. Это неприемлемо, поскольку именно пропускная способность памяти является бутылочным горлышком данной модели, и стандартная частота памяти сводит на нет все результаты с разгоном GPU.
Экспериментальным путем было установлено, что ни один из параметров настройки в VBE7 не может повлиять на ситуацию. Единственным шансом стало ручное редактирование прошивки в HEX редакторе. Я не могу привести алгоритм поиска нужного значения – его кратко можно охарактеризовать как «метод проб и ошибок», очень много проб и ошибок.
Выяснилось, что по HEX смещению А980 нужно записать значения A086 в байты 2,3 и в байты с,d – это для частоты памяти 1000 МГц. Предел для моего экземпляра – 1040 (2080) МГц по памяти, этой частоте соответствует HEX значение 4096. После всех ручных правок ROM-файл нужно открыть и сохранить утилитой VBE7, она поправит контрольную сумму.
После проведенных манипуляций с прошивкой видеокарта получила разгон 1200 МГц по ядру при напряжении 1.2 В и 1040 МГц по памяти, напряжение 1.8 В. На этом этапе я решил вернуться к работе VRM, чтобы внести несколько изменений в его конструкцию и посмотреть, как это повлияет на результат разгона.
Питание GPU обеспечивает ШИМ-контроллер APW7098, работающий в однофазном режиме. Ключ в единственной фазе построен на одном Mosfet SM4377NSKP в верхнем плече и двух SM4373NSKP в нижнем плече.
Первой и простейшей модификацией стала установка электролитических и smd-керамических конденсаторов в выходной LC фильтр. Суммарная емкость составила 3280 мкФ против изначальных 1640 мкФ. Такое улучшение если и повлияло на форму выходного напряжения, то очень незначительно.
Вторым шагом я переделал однофазную VRM в двухфазную, об этом расскажу подробнее. Документация на ШИМ APW7098 находится в широком доступе, из нее мы узнаем, что режим работы контроллера настраивается подключением pin 5 "Mode" к одному из логических уровней: при подключении к земле устанавливается двухфазный режим, при подключении к напряжению выше 0.8 В – однофазный. Для переключения режима понадобилось найти и перепаять всего один резистор.
Вместо стандартных транзисторов в обе фазы были распаяны Mosfet MDU2653 в нижние и MDU2657 в верхние плечи двух фаз. Были установлены две новые индуктивности в LC фильтр, кроме того нужно припаять три резистора-перемычки для соединения затворов Mosfet с драйвером ШИМ-контроллера. Благо на печатной плате предусмотрены места для монтажа всего перечисленного. На снимке выше представлено, как выглядит VRM после переделки.
После данных модификаций проведем замеры. Такой стала осциллограмма при шкале 1 мкс.
Пульсации не исчезли, но стали менее выраженными, повторяясь с частотой 600 кГц в результате попеременной работы первой и второй фаз питания. Маркер напряжения на данной осциллограмме не несет информации; к сожалению, его нельзя отключить отдельно от временного маркера.
Представлю еще два замера, но в крупном временном масштабе, со шкалой 0.1 мс:
При такой шкале мы можем наблюдать сотни переключений транзисторов, а не единицы, как при шкале 1 мкс, что позволяет увидеть поведение VRM на большем отрезке времени.
Оба изображения сняты при напряжении питания 1.15 В и частоте ядра 1200 МГц. Верхнее изображение получено с одной работающей фазой VRM за доли секунды до зависания теста FireStrike, второе – c двухфазным питанием во время успешного прохождения теста. Всё верно – двухфазный VRM позволил нам добиться стабильного прохождения теста там, где однофазный не смог при прочих равных условиях.
К сожалению, статическое изображение недостаточно ярко показывает разницу, но в динамике напряжение на однофазном VRM скачет как безумное. Причем проявляться это стало именно при большом разгоне.
После модификации системы питания я остановился на значениях разгона 1300 МГц по ядру при напряжении 1.25 В. Частота памяти составила 1040 (2080) МГц при напряжении 1.8 В. Стоит отметить, что проведенный мною хардвольтмод памяти результатов не дал, поэтому в данной статье о нем не упоминается. Кроме того, для эксперимента видеокарта прошивалась в Radeon R7 250, но безрезультатно. После прошивки она продолжила работать, но конфигурация шейдерных конвейеров не изменилась.
Пришло время проверить видеокарту в реальных приложениях и бенчмарках. 3DMark запускался с настройками по умолчанию. Игровые приложения запускались в разрешении 1920 x 1080 точек. Настройки для каждого приложения приведены ниже. Параметры видеокарты контролировались утилитой GPU-Z, температура GPU не превышала 50°C градусов.
Настройки приложений:
Отдельно отмечу, что при тестировании память в штатном режиме работала на рекомендованной AMD частоте 900 (1800) МГц, а не установленной производителем PowerColor 800 (1600) МГц.
По итогам проведенной работы самыми эффективными твиками стали ручное редактирование BIOS и переделка VRM в двухфазное. Редактирование ROM файла сняло установленную зависимость частоты работы памяти от разгона GPU. А мод VRM ощутимо сгладил пульсации выходного напряжения, и что очень важно – практически удвоил максимальную выходную мощность преобразователя напряжения. При небольшом поднятии напряжения удалось разогнать графическое ядро до приличных 1300 МГц.
К сожалению, слабая подсистема памяти не позволила получить пропорциональный прирост производительности. Стоит отметить что на данный момент в продаже уже есть модели Radeon R7 240 с памятью GDDR5 и двухфазным питанием, и было бы любопытно проверить их на практике.