Your program have to support different version of AVX512 to make it runs on different Intel CPUs.
By support different version you have to provide different binaries.
No you don't. You just call Intel MKL and it takes care of it for you with hand-written assembly code optimized for each individual processor. 90% of all serious computational software does this.
AMD couldn't compete so they gave up on their imitation (ACML). The funny thing was that MKL and Intel Compilers are so good, it was found that MKL ran better on AMD processors than AMD's own software.
Even if you write it yourself, you simply put your AVX256 and AVX512 behind different code paths, that is, with a big if statement. There is no need for "different binaries". That is plain wrong.
Last edited: