Ich lese this Dokument über, wie man C/C++ - Code mit dem Intel C++ - Compiler und AVX512-Unterstützung auf einem Intel Knights Landing kompiliert.Verwirrung über das Kompilieren mit AVX512
Aber ich bin ein wenig verwirrt über diesen Teil:
-xMIC-AVX512: diese Option verwenden AVX-512F, AVX-512CD, AVX-512er und AVX-512FP zu erzeugen.
-xCORE-AVX512: Verwenden Sie diese Option, um AVX-512F, AVX-512CD, AVX-512BW, AVX-512DQ und AVX-512VL zu generieren.
Um beispielsweise Intel AVX-512-Anweisungen für den Intel Xeon Phi-Prozessor x200 zu generieren, sollten Sie die Option -xMIC-AVX512 verwenden. Für Beispiel auf einem Linux-System
$ icc -xMIC-AVX512 application.c Diese Compiler-Option ist nützlich, wenn Sie eine große Binärdatei für die Intel Xeon Phi Prozessor x200 aufbauen wollen. Statt es auf dem Coprozessor zu bauen, wo es mehr Zeit in Anspruch nehmen, bauen sie auf einer Intel-Xeon-Prozessor-basierte Maschine
Meine Xeon Phi KNL kein Coprozessor hat (keine Notwendigkeit ssh micx oder kompilieren Sie mit der -mmic
Flagge). Allerdings verstehe ich nicht, ob es besser ist, die -xMIC
oder -xCORE
zu verwenden?
Auf dem zweiten Platz über -ax
statt -x
:
Dieser Compiler-Option ist nützlich, wenn Sie versuchen, eine binäre zu bauen, die auf mehreren Plattformen laufen können.
So ist -ax
für plattformübergreifende Unterstützung verwendet, aber gibt es einen Unterschied in der Leistung zu -x
comapred?
'-xCORE' funktioniert nicht mit KNL, da AVX-512BW, AVX-512DQ und AVX-512VL nicht unterstützt werden. –