У меня есть производственный код, который использует avx2 и работает хорошо. Теперь я пытаюсь использовать AVX512 для ускорения производительности. я написал небольшую программу для проверки скорости. этот тест только делает некоторое умножение матрицы с плавающей запятой. Результат показывает, что avx512 медленнее, чем avx2. что-то пошло не так?
я нашел один раствор из этого вопроса , который включает -mprefer-vector-width = 512 в g cc. Но это не работает со мной. Я попробовал g cc 7, 8 и 9.
Процессор, который я использовал, - Intel (R) Xeon (R) Platinum 8171M CPU @ 2.60GHz
Я оценил ядро c умножения матриц в связях Годболта. Мой тест - это всего лишь oop вызова этой забавы c.
Avx2 с командой make g cc -O3 -mavx -mfma src / test_avx2. c -o test_avx2
Avx512 с командой make g cc -O3 -mprefer-vector-width = 512 -Ofast -march = native src / test_avx512. c -o test_avx512