AVX2 (Advanced Vector Extensions 2) - это расширение набора команд для x86. Он добавляет 256-битные версии целочисленных инструкций (где AVX предоставляет только 256-битную плавающую точку).

AVX2 добавляет поддержку 256-битного целочисленного SIMD. Большинство существующих 128-битных инструкций SSE расширены до 256-битных. AVX2 использует ту же схему кодирования VEX, что и инструкции AVX.

На странице тегов x86 вы найдете руководства и другие ресурсы по программированию и оптимизации программ с использованием AVX2.

Как и в случае с AVX, типичными проблемами являются отсутствиеVZEROUPPERи неочевидное перемещение данных в случайном порядке из-за конструкции полос 128b.

AVX2 также добавляет следующие новые функции:

  • Скаляр -> Трансляция векторных регистров
  • Собираем нагрузки для загрузки вектора из разных мест памяти.
  • Маскированная память загружает / сохраняет
  • Новые инструкции по перестановке
  • Поэлементный битовый сдвиг, который позволяет сдвигать каждый элемент вектора на разную величину.

Набор команд AVX2 был представлен вместе с FMA3 (3-операндное слияние-умножение) в 2013 году с линейкой процессоров Intel Haswell. (Процессоры AMD от Piledriver и далее поддерживают FMA3, но тогда поддержка AVX2 не была представлена.)