Автор не входит в состав редакции iXBT.com (подробнее »)
avatar
AVX не более быстрое, такое же, как SSE. Но, в отличие от SSE, в AVX появились новые команды, более удобная система кодирования команд (они стали, в основном, трёхоперандные) и новые регистры (ymm). Между прочим, в статье говорится не про AVX, а AVX2, которое уже существенно отличается от SSE. Также авторы почему-то умолчали о ещё одном очень «вкусном» расширении — FMA, которое обычно сопровождает AVX и AVX2.
avatar
«Происходит...» — И как давно это произошло? Вы бы ещё санскрит вспомнили.
avatar
Если чел не смог собрать и настроить систему так, чтобы она стабильно работала, при чём здесь процессор?
avatar
Garry1010, такие процессоры были. Назывались Z80, и на их основе делались компьютеры ZX Spectrum. Там память работала практически без задержек. Программировать на ассемблере было одно удовольствие: не паришься с оптимизацией кода по доступу к памяти. К сожалению, достигалось это за счёт того, что всё было медленное. Сейчас так не получится.
avatar
Завоевание рынка — это прошлые достижения. Пусть покажут себя в настоящем.
avatar
Действтительно, есть короткое русское слово «план», но сейчас модно говорить «дорожная карта» на западный манер.
avatar
Эти модули как раз заточены под грядущую архитектуру AMD Zen 3 Vermeer, где шина Infinity Fabric сможет работать на частоте 2200 МГц в синхронном режиме с памятью. Это будет наиболее производительный режим, который должен снизить задержки работы с памятью до уровня конкурирующих решений Intel.
avatar
Из ваших слов следует, что основное преимущество AVX-512 сводится к возможности одной командой умножить (4x4)-матрицу на число. И это всё? На AVX2 то же делается двумя командами, тоже очень дешёвая операция. Гораздо более важное действие в расчётах — умножение матрицы на вектор. Какое конкретное преимущество даёт AVX-512 для этого? Возможность разместить всю матрицу в одном регистре само по себе ничего не даёт.
avatar
Ещё раз обращаю ваше внимание. В отличие от AVX-2, теперь появилась возможность выполнить одну операцию сразу для всех 16-и элементов вектора. Как это поможет оптимизировать работу с четырьмя 4-векторами? Кроме узкого круга специфических задач — практически никак. Разве что (4x4)-матрицу на число теперь можно быстрее умножить, но, во-первых, это операция и на AVX2 будет очень дешёвая, во-вторых, она не настолько важна, как умножение матрицы на вектор. Я бы увидел реальную пользу AVX-512, если бы она одной командой умножала матрицу на вектор, но, насколько мне известно, там этого нет. Поправьте, если ошибаюсь.
avatar
"… загрузить все 16 элементов float" — сначала подумайте, насколько часто в реальных задачах требуется выполнить одну операцию над 16-ю наборами данных. В вашем же примере выше для 3d расчётов достаточно 4-векторов.
avatar
Intel действительно часто действовала непоследовательно, нередко руководствуясь политическими мотивами, а не желанием что-то улучшить. Например, ряд команд из семейства SSEx появились как функциональный аналог ранее существующих команд, но с какими-то улучшениями алгоритма их выполнения. Плодить зоопарк команд с идентичной логикой — признак бессистемности. В таких случаях в новом ядре процессора при желании просто оптимизируют алгоритм выполнения команды, не вводя новые машинные коды. Наверное, не совсем хорошо и чрезмерная необходимость программисту учитывать аппаратные особенности работы тех или иных команд. Например, у начинающих много вопросов вызывает, почему существует столько аналогичных команд (например, команд пересылки, логики), отличающихся только типами данными — single, double или dword.
Ещё один исторический пример. Гордыня помешала Intel принять удачное и передовое для того времени расширение набора инструкций 3DNow! от AMD (по сути, это была надстройка MMX), в результате оно было задушено, и сейчас перестало поддерживаться в новых процессорах AMD.
avatar
Боже упаси
avatar
У вас как-то всё в кучу. Про AVX и AVX-2 никто слова плохого не сказал. Речь идёт о малополезности AVX-512.
avatar
Во многом Линус Торвальд прав. SIMD-параллелизм даже над 4-мя наборами данных (AVX2 позволяет одновременно обрабатывать 4 числа double или 8 float) — довольно редкое явление, а над 8-ю double или 16-и float — и вовсе что-то исключительное. Где-то это может понадобиться, но основной массе приложений возможности AVX-512 не требуются. Лучше бы сделали, чтобы базовые x86-инструкции не имели узких мест. Сейчас, например, довольно медленно работают такие востребованные инструкции как loop(z,nz), stos, lods, movs. Кстати, в новых AMD процессорах команда loop работает практически без повышенной латентности (насчёт цепочечных команд, не знаю точно). Ещё один вариант, куда «деть» транзисторы — аппаратно реализовать расширение FPU с четверной или восьмерной точностью с возможностью его включения при необходимости. В ряде инженерных расчётов бывает востребована повышенная точность, о чём говорит множество соответствующих библиотек.
avatar
Я просто заново настроил оформление рабочего стола, удалять обновления не стал. Думаю, что эти обновления всё же не только для удаления обоев созданы, а с обоями просто ошибку допустили.
avatar
«Ну в отличии от SSE, который был пригоден только для научных вычислений, так как работал только с вещественными числами» —
SSE1-4 содержат весь набор векторных команд как целочисленных, так и вещественных. Причём для научных расчётов они далеко не всегда используются, поскольку для таких расчётов зачастую требуется повышенная точность (например, расширенная 80 бит) и не требуется векторизация, т.е. используются x87-инструкции. Наборы AVX1,2 в основном повторяют команды SSE1-4 (с расширением до 256 бит) и где-то дополняют их. В общем, AVX2 для подавляющего числа задач сегодня считаю более чем достаточным. Так что можно согласиться с тем, что AVX-512 не обязательно ставить там, где критично тепловыделение.
avatar
Объективно такой уровень векторизации (512 бит) довольно редко бывает нужен. Наступает ситуация, когда даже оптимизация приложений под данное расширение инструкций даст лишь незначительный средний прирост производительности (в отдельных специфических приложениях прирост будет хороший, в большинстве — без заметного прироста). В связи с этим рискну предположить, что следующее повышение разрядности векторных команд произойдёт нескоро (может лет через 5), либо это будет уже нечто принципиально новое.
avatar
В своё время Intel цинично задушили расширение системы команд 3DNow! от AMD. Вместо того, чтобы поддержать его в своих процессорах (для удобства пользователей), Intel внедрили похожую, но несовместимую технологию SSE. В основном с целью насолить конкурентам, которые их опередили с идеей simd-расширения для плавающей арифметики. В результате несколько лет назад AMD отказалась от 3DNow! в силу того, что она уже морально устарела и притом мало где использовалась. Политически мотивированные решения компаний нередко приводит к неудобству для конечных потребителей, да и самих производителей, когда приходится поддерживать обилие плохо продуманных наборов команд, которые к тому же сильно варьируются от процессора к процессору.
Что касается AVX 3 (AVX-512), в каких-то специфических приложениях от них будет несомненный выигрыш, но для большинства распространённых алгоритмов, возможность параллельно исполнять одну и ту же арифметическую операцию, скажем, для 8 операндов типа double или 16 операндов single, останется невостребованной. Есть разумный предел повышения разрядности simd-расширений, когда целесообразность этого начинает стремиться к нулю. Так что, думаю, AVX 3 в недалёком будущем внедрят во всё процессоры Intel и AMD, а дальше — сомнительно. Нужны новые пути повышения производительности.