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

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

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

  

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

  

Не силён в теме и мне не очень ясны аргументы. Может кто-то может в двух словах пояснить чём плюсы в чём минусы? 

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

  

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

  

А если всё-таки нужна такая длинная операция, то тогда это лучше передать ускорителю вычислений. Например, видеокарты. Они давно умеют с этим работать. И регистры у них очень длинные. Можно реализовать в виде APU, как у AMD. Это куда практичней. 

 Обратитесь к первоисточнику и не играйте здесь в "сломанный телефон".