Есть ли инструкции SIMD (SSE / AVX) в x86-совместимых ускорителях MIC Intel Xeon Phi?
Есть ли инструкции SIMD (SSE / AVX) в x86-совместимых ускорителях Intel Xeon Phi?
Ответы (1)
Да, текущее поколение сопроцессоров Intel Xeon Phi (кодовое название «Knight's Corner», сокращенно KNC) поддерживает 512-битный набор инструкций SIMD под названием «Intel® Initial Many Core Instructions» (сокращенно Intel® IMCI).
Intel IMCI не "совместим" и не эквивалентен SSE, AVX, AVX2 или AVX-512 ISA. Однако официально объявлено, что следующие запланированные поколения Xeon Phi (кодовое название "Knight's Landing", сокращенно KNL) будет поддерживать AVX-512 ISA.
И Intel IMCI (поддерживаемый KNC), и AVX-512 (поддерживаемый KNL) представляют собой 512-битные наборы инструкций SIMD, поддерживающие FMA и позволяющие упаковать 8 чисел двойной точности или 16 чисел с плавающей запятой одинарной точности или 16 32-битных чисел. целые числа (т.е. в два раза «больше», чем AVX или AVX2).
Хотя KNC не может "запускать" двоичные файлы SSE или AVX, это часто не имеет значения, потому что для того, чтобы сгенерировать двоичный файл вашего приложения для работы на KNC, вам необходимо перекомпилировать код, используя Компилятор Intel C / C ++ / Fortran, который, как известно, автоматически или полуавтоматически генерирует относительно эффективные векторные коды (для SSE, AVX, IMCI и т. Д.), А также дает вам возможность при необходимости использовать встроенные функции IMCI.
Боковое примечание: для Knights Landing (с поддержкой AVX-512) набор инструментов Intel больше не будет единственным вариантом, но он, вероятно, продолжит предоставлять множество преимуществ, включая надежное явное и автоматическое векторизацию, а также хороший уровень интеграции с Intel инструменты профилирования (обратите внимание, например, на анализ AVX-512 в Советник Intel (векторизация)).
AVX-512 ISA совместим с SSE, AVX и AVX2. Поэтому приложения, скомпилированные для AVX на Xeon, будут работать на KNL, в то время как приложения, скомпилированные для AVX-512 на Xeon Phi KNL, обычно будут работать на будущих поколениях. Xeon (для поддержки AVX-512 в будущем).
Разницу между AVX, IMCI и будущими наборами инструкций AVX-512 можно легко изучить, используя следующее онлайн-руководство: http://software.intel.com/sites/landingpage/IntrinsicsGuide/