Гибридная архитектура Intel как шанс для AMD воспользоваться неудачей главного конкурента

История с гибридным сценарием на­ча­лась не се­го­дня: в ее ос­но­ве ле­жит пред­ло­жен­ная ARM ар­хи­тек­ту­ра big.LITTLE. Од­ним из из­вест­ных ва­ри­ан­тов ре­а­ли­за­ции та­кой идеи стал сим­би­оз мощ­ных, но «про­жор­ли­вых» и быст­рых, но «эко­ном­ных» ядер, фор­ми­ру­ю­щих про­филь платформы Apple M1. По­хо­жую тра­ек­то­рию из­бра­ла для се­бя и ком­па­ния Intel, про­дви­гая се­мей­ст­во про­цес­со­ров 12-го по­ко­ле­ния под ко­до­вым на­зва­ни­ем Alder Lake. Ку­да вы­ве­ла кри­вая, раз­би­ра­ем­ся, ли­с­тая экс­перт­ные мне­ния и пе­рво­ис­точ­ни­ки.

Архитектура Alder Lake представляет собой гибридный дизайн процессорного чипа с двумя различными ти­па­ми ядер: «P» — для про­из­во­ди­тель­но­с­ти и «E» — для эф­фек­тив­но­сти. Ядра «P» основаны на ми­кро­ар­хи­тек­ту­ре Golden Cove, а «E» ис­поль­зу­ют Grace­mont, ра­нее при­ме­няв­шую­ся только в маломощных про­цес­со­рах семейства Atom.

«Из яйца» процессоры Alder Lake вылупились с различной идентификацией CPUID для ядер «P» и «E», что ино­гда вы­зы­ва­ло про­бле­мы: программное обеспечение не предполагает различные типы ядер в составе од­но­го чипа. В даль­ней­шем, благодаря обновлению микрокода, ситуация немного улучшилась — ин­ст­рук­ция CPUID рапортует о про­цес­со­рах Alder Lake, возвращая сигнатуру, одинаковую для всех ядер. Один из вариантов соответствует Fa­mi­ly=6, Mo­del=97h (00090672h). Чтобы сохранить возможность распознавания ядер «P» и «E», в CPUID до­бав­ле­на спе­ци­аль­ная фун­к­ция с номером 0000001Ah.

Гибридная архитектура Intel

Однородность требует жертв!

CPUID — это не просто полезный информатор, это две-три, а точнее — десятки страниц убористых наставлений о том, какой код мож­но «скор­мить» данному процессору, а что ему не по зубам. В этом свете гибридный дизайн фак­ти­че­ски при­но­сит в жерт­ву под­держ­ку новейшего расширения процессорных инструкций в угоду совместимости. Те из них, ко­то­рые не под­дер­жи­ва­ют­ся обе­и­ми архитектурами, попадают в «прокрустово ложе» новации — возможности P-ядер, отсутствующие в груп­пе «E», отключаются при инициализации платформы. Иначе миграция выполняющегося потока с производительной подсистемы на энергоэффективную приведет к ошибке из-за использования не поддерживаемого набора инструкций. А все потому, что обе микроархитектуры из состава Alder Lake оснащены по-разному: Golden Cove под­дер­жи­ва­ет рас­ши­ре­ния AVX512, в то время как Gracemont ог­ра­ни­чи­ва­ет­ся только AVX2-инструкциями.

В силу сказанного, отключение энергоэффективных ядер дает возможность разблокировать поддержку AVX512 в про­из­во­ди­тель­ных ядрах. Вместе с тем, Intel официально не рекомендует включать AVX512 у Alder Lake, и этот за­прет им­пле­мен­ти­ро­ван в ми­кро­ко­де процессоров 12-го поколения.

Что позволено ASUS — доступно всем

Энтузиастами особо ценятся системные платы, обходящие этот запрет. В настоящее время настройка ги­брид­но­с­ти до­ступ­на в UEFI платформ ASUS и ASRock. Именно там есть возможность включать AVX512 для Alder Lake.

Если не терпится повозиться с платформами, не допускающими разблокировку AVX512, стоит найти модуль UEFI, из­ме­ня­ю­щий содержимое Model Specific регистра 0x000000AF. По информации ряда экс­пе­ри­мен­та­то­ров, это не­до­ку­мен­ти­ро­ван­ный MSR для ма­ни­пу­ля­ций с векторными расширениями, нулевой бит которого предназначен для от­клю­че­ния функций AVX2 и AVX-512, бит #1 — для от­клю­че­ния AVX-512. Итак, если содержимое  битов [1,0] MSR 0xAF рав­но 10b, это означает, что отключены только ин­ст­рук­ции клас­са AVX-512.

По идее, эта функциональность должна в ближайшем будущем исчезнуть — свежие обновления жестко «за­ло­чат» ар­хи­тек­тур­ную не­од­но­род­ность программных моделей. Если блокировка AVX2 и AVX-512 упрется в за­гру­жа­е­мый из UEFI ми­кро­код про­цес­со­ров, шансы распрощаться с гримасами гибридности отодвинутся на не­о­пре­де­лен­ное время.

 

Tags