[img]<fileStore.core_Emoticons>/emoticons/ohmy.png[/img]/emoticons/ohmy@2x.png 2x" width="20" height="20" /> Impressive... even Agner Fog is involved!!! What a difference in the VIA Nano tests...
Â
I know there are some switches to add alternative paths or to target an specific Intel processor family. /Qax adds a processor specific auto-dispatched code path in addition to the default one (so you're already knowing the dispatcher will be in the executable if you use this one). /Qx overrides the /arch switch targeting an Intel processor family and the executable should only be used on those (e.g. /QxSSE3_ATOM generates code to be used in an Atom processor).
Â
The Parallel Studio provides a compiler too through the Parallel Composer which is the C/C++ compiler from Intel as generally released. The the latest version includes the v12 compiler (not available as of now, the latest standalone C/C++ compiler from Intel is v11); but there's already a post by Agner where he tells they haven't changed a thing in the new compiler [1].
Â
If you ever need to use the Intel compiler in page 130+ of Agner's optimizing C++ (at the time of writing, works with v12 compiler) there's a way to override the dispatcher detection [2].
Â
Thank you for pointing that out!
Â
[1]: http://www.agner.org/optimize/blog/read.php?i=49#127
[2]: http://www.agner.org/optimize/optimizing_cpp.pdf
Â
Â
EDIT: For completeness I made a question to Agner regarding the use of the Intel Compiler without the switches /Qx or /Qax [3]. Basically, if only /arch was used during compilation there's no dispatcher and the code generated will run fine in non-Intel processors. Unless special libraries are used by the project like MKL, TBB, ... (not the case in VBAM).
Â
[3]: http://www.agner.org/optimize/blog/read.php?i=49#134