@mrbaranovskyi

Линус Торвальдс и последние комментарии об AVX-512?

В сети шумят новости от том, что Торвальдс достаточно жестко высказался по поводу новых инструкций, которые появятся в новой версии GCC. Речь идёт он новых 512-битных AVX.
Из того, что я понял, этот сет инструкций немного умешьшает частоты (серьёозно??). Основной посыл его комментариев был направлен на то, что компаниям нужно улучшать обычную математику, нежели добавлять что-то столько "ужасное".

Для меня не очень понятно, почему столь ужастное. К примеру, 512-битной инструкции хватит, чтобы произвести над 4x4 матрией с плавающей точкой. Звучит очень неплохо, особенно для тех кто занимается процессингом геометрии.

Не силён в теме и мне не очень ясны аргументы. Может кто-то может в двух словах пояснить чём плюсы в чём минусы?
  • Вопрос задан
  • 209 просмотров
Решения вопроса 1
Снижение частоты вполне реально. Столь длинный массив на кристалле микросхемы непросто синхронизировать. Именно по этой причине видеокарты, VLIW-процессоры и любой вычислительный узел с параллельным вычислением работают всегда на пониженной частоте. Хотя на практике производитель может пойти на ухищрения и хитрости. Например, вместо вычисления одновременно 8 элементов будет четыре раза по два элемента. Это как пример. Есть реальный пример: Pentium 4, внутри АЛУ у него 16-разрядный. Для вычисления 32-разрядного элемента АЛУ выполняет в две стадии. Зато можно повысить частоту. Именно этим и объясняется столь длинный конвейер.

А критику Торвальдса я как-то могу понять. AVX512 фактически дублирует существующие, используя более длинные регистры. Ещё читал разные материалы по поводу. AVX512 разбит на части, и будет поддерживаться в разных моделях по-разному. Представляете, какой геморрой будет у разработчиков компиляторов? Хотя, в общем, система команд x86/x86-64 всегда славилась бардаком (удивительно, что они ещё умудряются быстро выполнять команды). Я и не говорю о трудностях разработчиков уже конечных программ, как САПР, мультимедийные редакторы и прочее. Это, получается, надо указывать дополнительно, какие именно процессоры нужны. Это сильно сужает выбор. Но он прав, что лучше улучшать технологию в многопоточности. Ведь не каждый день будете вычислять матрицу 4х4. А вдруг захотите вычислить матрицу 5х5? Проблема. А многопоточностью всегда можно управлять. Например, я всегда отдаю предпочтение многопоточной реализации в разработке. Проще разрабатывать и контролировать. Когда ненужна высокая производительность, можно отключить ненужные ядра. Да. Я забыл добавить, что увеличение команд для x86/x86-64 неизбежно приводит к росту размера памяти микроопераций, который находится в процессоре.

А если всё-таки нужна такая длинная операция, то тогда это лучше передать ускорителю вычислений. Например, видеокарты. Они давно умеют с этим работать. И регистры у них очень длинные. Можно реализовать в виде APU, как у AMD. Это куда практичней.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Обратитесь к первоисточнику и не играйте здесь в "сломанный телефон".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы