Поддерживают ли ядра Airmont в Knight's Landing Xeon Phi инструкции SIMD?

Согласно источнику страницы Википедии на чипе Knight's Landing, он имеет ядра Airmont . Согласно этой странице, эти ядра поддерживают SSE4.2, то есть инструкции SIMD для регистров SIMD. Это действительно так? Если да, то какова реальная максимальная ширина, скажем, арифметических инструкций на этих ядрах Airmont? (По общей ширине регистра или ширине полосы или элемента в регистре x количество дорожек).


person einpoklum    schedule 16.03.2017    source источник
comment
Каждое ядро ​​имеет два векторных блока, которые, как и 512-битный AVX-512, также поддерживают все варианты SSE (конечно, 128-битные), а также AVX/AVX2 (256-битные). 512-битные регистры ZMM можно использовать как 256-битные регистры AVX (YMM) или 128-битные регистры SSE (XMM). Если вы хотите что-то делать с 8- или 16-битными векторными элементами, вы ограничены SSE/AVX2, поскольку поддержка AVX512BW отсутствует.   -  person Paul R    schedule 17.03.2017
comment
@PaulR: Просто для ясности - я могу выдавать 72 ядра x 16 дорожек = операции над 1132 32-битными значениями одновременно?   -  person einpoklum    schedule 17.03.2017
comment
Да, это правильно, хотя обратите внимание, что эти ядра намного проще, чем процессоры текущего поколения, поэтому не ожидайте, что везде будут аналогичные инструкции, которые вы можете найти, скажем, на процессоре Haswell.   -  person Paul R    schedule 17.03.2017
comment
@PaulR: Предположим, все, что я делаю, это выдаю инструкции по добавлению SIMD. Почему бы мне не ожидать аналогичной пропускной способности инструкций? Кроме того, пожалуйста, сделайте свой комментарий ответом, чтобы я мог его принять.   -  person einpoklum    schedule 17.03.2017
comment
Ну, я сравнивал только реальные рабочие нагрузки на KNL, поэтому я не могу дать вам ответ для гипотетического случая, такого как поток инструкций по добавлению. Возможно, стоит проверить сайт Агнера Фога, чтобы узнать, есть ли у него информация об инструкциях KNL AVX512, которые вы можете сравнить с эквивалентными инструкциями SSE или AVX на обычном процессоре. Завтра я преобразую комментарии в ответ, если смогу - сейчас здесь поздно, и я на мобильном устройстве.   -  person Paul R    schedule 17.03.2017
comment
Вы можете сделать 72 ядра * 16 дорожек * 2 операции = 2304 32-битных значения одновременно. На самом деле лучше считать это в FLOPS, потому что каждый FMA выполняет 2 операции с плавающей запятой. Таким образом, это 72 * 16 * 2 * 2 * частота = 4608 FLOP/цикл * частота.   -  person Z boson    schedule 17.03.2017
comment
Кроме того, KNL основан на воздушных ядрах, что не то же самое, что сказать, что у него есть воздушные ядра.   -  person Z boson    schedule 17.03.2017
comment
У меня работает 68 ядерный KNL частота в турбо 1,5 ГГц. Таким образом, пик FLOPS составляет 68 * 16 * 2 * 2 * 1,5 = 6528 SP FLOPS. На некоторых KNL (я думаю, с менее чем 68 ядрами) операции AVX уменьшают частоту до состояния P1 (из состояния P0), поэтому частота составляет что-то вроде 1,1 ГГц. На самом деле, я не на 100% уверен, что мой KNL тоже этого не делает, но некоторые косвенные тесты, а также литература, кажется, указывают на то, что это не так.   -  person Z boson    schedule 17.03.2017
comment
@Zboson: мне не нравится привносить в микс частоту, потому что это как бы ортогонально. Я имею в виду, что очевидно, что более простые процессоры могут больше масштабироваться, но это не повлияет на то, как я буду распределять работу между ядрами.   -  person einpoklum    schedule 17.03.2017


Ответы (1)


Каждое ядро ​​имеет два векторных блока, которые, как и 512-битный AVX-512, также поддерживают все варианты SSE (конечно, 128-битные), а также AVX/AVX2 (256-битные).

512-битные регистры ZMM можно использовать как 256-битные регистры AVX (YMM) или 128-битные регистры SSE (XMM). Если вы хотите что-то делать с 8- или 16-битными векторными элементами, вы ограничены SSE/AVX2, поскольку поддержка AVX-512BW отсутствует.

person Paul R    schedule 17.03.2017
comment
Возможно, стоит отметить, что KNL не имеет AVX512VL, поэтому, хотя он может выполнять операции SSE и AVX, операции с маской, которые вы можете использовать с AVX512, не могут использоваться для 256-битных и 128-битных операций. - person Z boson; 17.03.2017