2017-02-20 4 views
1

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?

+0

'-xCORE' funktioniert nicht mit KNL, da AVX-512BW, AVX-512DQ und AVX-512VL nicht unterstützt werden. –

Antwort

1

Für die erste Frage verwenden Sie bitte -xMIC-AVX512, wenn Sie für den Intel Xeon Phi Prozessor x200 (alias KNL Prozessor) kompilieren möchten. Beachten Sie, dass die Phrase in dem Papier, die Sie erwähnten, falsch geschrieben wurde, sollte es lesen "Diese Compiler-Option ist nützlich, wenn Sie eine riesige Binärdatei für den Intel Xeon Phi-Prozessor x200 erstellen möchten. Anstatt es auf dem Intel Xeon Phi-Prozessor x200 zu bauen es wird mehr Zeit brauchen, um es auf einer Intel Xeon Prozessor-basierten Maschine aufzubauen. "

Für die zweite Frage sollte es keinen Leistungsunterschied geben, wenn Sie die Binärdateien auf einem Intel Xeon Phi-Prozessor x200 ausführen. Die Größe der Binärdatei, die der Option -ax entspricht, sollte jedoch größer als die mit der Option -x kompilierte sein.

+0

Es tut mir leid, aber ich bin ein bisschen verwirrt, was ist eine "Intel Xeon Prozessor basierte Maschine"? Wie ich Ihnen sagte, in meinem Fall habe ich keinen Co-Prozessor, der ssh-ed sein muss und wo der Code ausgeführt werden soll, ich ssh nur die "Hauptmaschine", kompiliere und führe den Code darauf aus. – justHelloWorld

+0

@justHelloWorld, "Intel Xeon-Prozessor basierte Maschine" bedeutet eine Nicht-KNL-Maschine mit dem Intel-Compiler. Sie könnten Ihre ausführbare Datei auf einer anderen Maschine erstellen und dann die Binärdatei auf die KNL-Maschine kopieren. Der Punkt ist, dass die Kerne einer KNL-Maschine niedrige Leistung und niedrige Frequenz haben (OTOH haben Sie eine Menge von ihnen), so dass es schneller sein kann, auf einer anderen Maschine zu bauen und die binäre Kopie zu kopieren. –