К сожалению, у меня есть процессор AMD piledriver, у которого, похоже, проблемы с инструкциями AVX:
Запись в память с 256-битными регистрами AVX исключительно медленная. Измеренная пропускная способность в 5-6 раз ниже, чем у предыдущей модели (Bulldozer), и в 8-9 раз медленнее, чем две 128-битные записи.
По моему собственному опыту, я обнаружил, что встроенные функции mm256 намного медленнее, чем mm128, и я предполагаю, что это по вышеуказанной причине.
Я действительно хочу кодировать для новейшего набора инструкций AVX, но при этом иметь возможность тестировать сборки на моей машине с разумной скоростью. Есть ли способ заставить встроенные функции mm256 использовать вместо этого инструкции SSE? Я использую VS 2015.
Если нет легкого пути, как насчет трудного. Заменить <immintrin.h>
на заказной заголовок, содержащий мои собственные определения для встроенных функций, которые можно закодировать для использования SSE? Не уверен, насколько это правдоподобно, предпочитайте более простой способ, если это возможно, прежде чем я выполню эту работу.
Vec8f
, и скомпилируйте с-D__SSE4_2__ -D__XOP__
. - person Z boson   schedule 01.11.2015