В ответ на присланный для ядра Linux патч с поддержкой ключей компилятора, указывающих "версию" микроархитектуры x86_64 (microarchitecture level), Линус Торвальдс высказал довольно жёсткую и технически обоснованную критику насчёт данной инициативы. Под версиями подразумеваются упоминаемые компаниями AMD, Intel, Red Hat и SUSE срезы состояния микроархитектуры, охватывающие определённые наборы расширений, например, x86-64-v3 подразумевает наличие расширений AVX, AVX2, BMI2, FMA, LZCNT, MOVBE и SXSAVE, а x86-64-v4 - AVX512F, AVX512BW, AVX512CD, AVX512DQ и AVX512VL. Претензии Линуса сводятся к трём пунктам: - Упомянутая классификация абсолютно неофициальна и ничему формально не соответствует.
- Система версий заменяет относительно простой вопрос "умеет ли этот процессор такую команду?" на значительно более сложный "что вообще значит версия x86_64 v3 и что она умеет?!".
- Предметом критики стала идея попыток линеаризации CPUID и упрощения его до "версий". Это оказалось настолько неуспешной идеей, что привело к тому, что самые последние модели процессоров Intel для настольных систем, которые не реализуют AVX-512, формально относятся к более младшей версии, чем более старые процессоры с поддержкой AVX-512, что является довольно странной ситуацией.
|