Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Optimizing Performance on Xeon Servers

Simkin__Dan
Beginner
2,391 Views

I am trying to use the "Intel Processor Microarchitecture-Specific Optimization" setting that's available in Visual Studio when using the Intel C++ compiler (in properties under C/C++ >> Code Generation [Intel C++]). This is the same as the command-line /tune option. Right now I am using /tune:skylake to try to improve performance on a Xeon Server (a Xeon Platinum 8168, running a VM), but I am not seeing a performance improvement. What /tune option should I be using for this server?

0 Kudos
1 Solution
jimdempseyatthecove
Honored Contributor III
2,366 Views

You could use Skylake and AVX2 on your desktop (and it will run on the Xeon Platinum 8168 processor)
But the Xeon Platinum 8168 processor could benefit from /QxCORE-AVX512

While both are Skylake series, your desktop Core i7-6700K has 2 memory channels, whereas the Xeon Platinum 8168 has 6 (as well as AVX512).

At this point in development (optimizaton), I would recommend first to work on your desktop targeting AVX2 and implement the indexing method as suggested in post #10. **** however keep the older pointer code in a conditional #if section for use in testing.

You will need to check the benefit or lack thereof for each ISA (AVX2 on desktop and server, and AVX512 on server).

The selection for use of the pointer method or index method should be relatively easy to integrate using #if defined(...) #else ... #endif

IIF your loop is (are) compatible with scatter/gather, then more of it can be vectorized without going through code contortions to get there. Presumably yielding significant performance improvements.

Jim Dempsey

 

View solution in original post

0 Kudos
21 Replies
GouthamK_Intel
Moderator
222 Views
Hi Dan, We are closing this thread. Feel free to raise a new thread for any further queries. Regards Goutham
0 Kudos
Reply