I've got a C/C++ project that uses a static library. The library is built for 'skylake' architecture. The project is a data processing module, i.e. it performs many arithmetic operations, memory copying, searching, comparing, etc.
The CPU is Xeon Gold 6130T, it supports AVX512. I tried to compile my project with both -march=skylake
and -march=skylake-avx512
and then link with the library.
In case of using -march=skylake-avx512
the project performance is significantly decreased (by 30% on average) in comparison to the project built with -march=skylake
.
How can this be explained? What could be the reason?
Info:
- Linux 3.10
- gcc 9.2
- Intel Xeon Gold 6130T