Проект 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 о котором я расскажу дальше.