Проєкт HYDRA — пісочниця для процесорів Ryzen з мікроархітектурою Zen 3

Процесор завжди був продуктом, який привертав увагу ентузіастів навіть більше, ніж відеокарти. Його внесок вкрай важливий в усіх програмах, і не суттєво чи містять вони 3D. У 2019 році був представлений перший багаточіплетний процесор від компанії AMD, носій революційної мікроархітектури Zen 2. Користувачеві вперше було запропоновано рекордну кількість ядер в масовому сегменті. З оновленнями UEFI прийшли функції індивідуального розгону кожного чіплета та розширені можливості роботи PBO (зміна лімітів для роботи автобуста). Суперечливим моментом лишалося те, наскільки ефективно компанія AMD використовує можливості 7-нм техпроцесу та особливості багаточіплетного компонування з погляду продуктивності на ват.

А ось тут давайте трохи докладніше.

HYDRA

Кожна кремнієва пластина, з якої нарізають чіплети, має різні властивості енергоефективності (та не тільки). Кожен чіплет в наслідок цього має свої власні показники, як, власне, і ядра в ньому. Так само не варто забувати відсоток браку, який існує в будь-якому кремнієвому виробництві. Перед AMD постало важке завдання, як зібрати з отриманих чіплетів рішення на 12–32 ядра, які будуть прийнятні для геймерів, і як максимально залучити чіплети різного ступеня якості, щоб і надалі тішити інвесторів, натхнених можливостями архітектури Zen 1 та низьким рівнем браку.

HYDRA

Рішення не забарилося довго чекати. В наслідку Ryzen 9 отримав один високочастотний чіплет, а інший, який не здатний похвалитися відмінними характеристиками, почали називати енергоефективним. У випадку з Threadripper користувачі отримували той самий один високочастотний чіплет та три енергоефективні. Великим подивом для багатьох рецензентів було те, що два або чотири різні кристали працюють на одній і тій самій частоті під час багатопотокового навантаження, адже це прихований потенціал. Зрозуміло, будь-яких коментарів із цього приводу не було.

Оскільки система живлення для всіх чіплетів симетрична (при цьому digital low dropout вимкнений), а енергоефективний чіплет теж повинен мати високі частоти, єдиним рішенням стає збільшення робочої напруги. У такому разі один високочастотний чіплет отримує більш високу напругу, ніж потрібно. Це, зрозуміло, другий плюс у кошик потенціалу.

Рухаємось далі. Як ми з'ясували раніше, кожен чіплет вимагає різної напруги живлення для досягнення обіцяних паспортних частот, і для того, щоб усі ядра працювали стабільно, завжди обирається напруга для них за найгіршим зразком. Далі роблять розрахунок «міцності» кремнію та власне оцінку деградації. Основними чинниками стають температура, напруга і час, адже процесор повинен до кінця гарантійного терміну все ще працювати на паспортних частотах. Як наслідок деякі процесори отримують вагомий «овервольтаж», а деякі CPU працюють на межі своїх можливостей. Власне, для половини зразків «овервольтаж» — це третій плюс у кошик потенціалу.

Крім всього вищеперерахованого особисто мені добре запам'яталося, коли користувачі дізналися про те, що робоча напруга у 7-нм техпроцесу не зменшилась, а лишилася на тому ж рівні та подекуди навіть зросла до вражаючих 1,475 В. Питання деградації процесорів під впливом такої напруги хвилювало багатьох, проте бажання «за будь-яку ціну» наздогнати конкурента в перегонах на мегагерци було значним. Насправді «побажання» 7-нм техпроцесу виглядають зовсім інакше. Як багато хто з вас знає, залежність частоти від напруги не лінійна і чим вище напруга, тим нижче приріст частоти. У випадку з процесорами Zen 2 і Zen 3 адекватна масштабованість частоти закінчується вже після 1,325—1,375 В. Діапазон 1,375—1,475 В у кращому випадку може дати 75 МГц додаткової частоти й 10–15 додаткових градусів.

Попри те, що в 99% оглядів вищенаведена інформація залишилася за кадром, процесори Zen 2 не мали конкурентів, а подальше доопрацювання (тюнінг) лягло на плечі користувачів. Підсумком цієї несправедливості стало народження Clock Tuner for Ryzen, утиліти, яка автоматично шукала максимально стабільну частоту для кожного профілю (і кожного чіплета індивідуально), тим самим збільшуючи продуктивність процесорів або енергоефективність (залежно від того, яке завдання вибирав користувач). В результаті шляхом простих маніпуляцій можна було отримати до 10% додаткової продуктивності за ідентичного енергоспоживання або знизити енергоспоживання на вражаючі 30% без втрати продуктивності.

Зрозуміло, з подібним рухом ентузіастів, захоплених оптимізацією, процесорному гіганту треба було щось робити, причому робити таке, щоб не зіпсувати собі репутацію. На щастя, життєвий цикл мікроархітектури Zen 2 наближався до кінця і Zen 3 міг стати чудовим фундаментом для еволюційного кроку у сфері оптимізації, що, власне, й сталося. Компанія AMD випускає фантастичний інструмент під назвою Curve Optimizer, здатний змінити співвідношення частоти від напруги для кожного ядра. Механізм роботи даної технології вкрай простий — обдурити процесор, повідомивши йому, що він отримує більше напруги, ніж насправді, що своєю чергою призведе до зростання частоти (і струму). Через те, що процесор має фіксований поріг струму для бусту, для компенсації збільшеного значення доводиться знижувати VID (запитувана напруга).

HYDRA

Уважні користувачі можуть помітити одне нестикування, коли на рекламних слайдах це називається undervolting, а насправді зовсім не так. Навіщо це було зроблено, для мене досі залишається загадкою, але сьогодні не про це.

Підсумовуючи, з мікроархітектурою Zen 3 користувачі отримали не тільки істотно збільшений IPC, а ще один інструмент тюнінгу, але не отримали можливість пошуку цих значень або хоча б можливість керувати CO напряму з Windows. Якщо у користувача 6-ядерний процесор, неймовірно багато часу та усидливості, то значення CO цілком реально знайти шляхом спроб та помилок. Для більшої кількості ядер це вже може стати проблемою, а прихований резерв продуктивності так само залишиться ласим шматком. Clock Tuner for Ryzen наразі допомогти не зміг, оскільки архітектура управління частотою не спроможна задовольнити потреби управління частотою індивідуально для кожного ядра. Саме це і стало початком розвитку проєкту HYDRA, про який я розповім далі.