Способы ускорения сокращения операций на процессорах Xeon, GPU и Xeon Phi

У меня есть приложение, где операции сокращения (например, сумма, максимум) на большой матрице являются узким местом. Мне нужно сделать это как можно быстрее. Есть ли в Mkl векторные инструкции для этого?

Есть ли специальный аппаратный блок для работы с ним на процессорах xeon, gpu или mic?

Как выполняются операции сокращения в этих аппаратных средствах в целом?

3 ответа

Вы можете реализовать свои собственные простые сокращения, используя инструкции KNC vpermd и vpermf32x4, а также модификаторы swizzle для выполнения операций между линиями внутри векторных модулей.

Эквивалентами встроенной функции C для них будут семейство mm512{mask} permute * и mm512{mask} swizzle *.

Тем не менее, я рекомендую вам сначала взглянуть на операции уменьшения записи массива, которые уже имеют высокопроизводительные реализации на MIC.

Посмотрите на операции по сокращению, доступные здесь, а также посмотрите это видео, в котором Тейлор Кидд из Intel рассказывает об уменьшении числа массивов на Xeon Phi, которое начинается с 20 минут 30 секунд.

РЕДАКТИРОВАТЬ: Я заметил, что вы также ищете решения на базе процессора. Сокращения обозначений массива будут очень хорошо работать на Xeon.

Эта операция будет ограничена пропускной способностью, и поэтому векторизация почти наверняка не имеет значения. Вам нужно оборудование с максимальной пропускной способностью памяти. Процессор Intel Xeon Phi обладает большей совокупной пропускной способностью (но не пропускной способностью на ядро), чем процессор Xeon.

Оказывается, ни одно из аппаратных средств не имеет встроенной схемы уменьшения работы. Я представил шестнадцать 17-битных сумматоров, подключенных к 128-битному векторному регистру, для операции с уменьшением суммы. Возможно, это связано с тем, что никто не сталкивался с существенным узким местом при сокращении операций. Ну, лучшее решение, которое я нашел, это #pragma omp parallel for reduction в openmp. Я все еще должен проверить его работу все же.

Другие вопросы по тегам