Wir haben erfolglos versucht, die neue GCC 5.1 Version zu verwenden, um OpenMP-Blöcke auf den Intel zu entladen MIC (dh der Xeon Phi). Auf der GCC-Seite Offloading haben wir das Skript build.sh
zusammengestellt, um den Zielcompiler "accel" für " intelmic "und der Host-Compiler. Die Kompilierung wird erfolgreich abgeschlossen.
Mit dem Skript env.sh
versuchen wir dann das einfache Programm hello.c
zu kompilieren. Dieses Programm scheint jedoch nur auf dem Host und nicht auf dem Zielgerät zu laufen.
Da wir im Allgemeinen neu sind und GCC kompilieren, gibt es mehrere Dinge, die wir falsch machen könnten. Wir haben jedoch die bereits erwähnten Ressourcen und das Folgende untersucht (ich habe nicht genug Informationen, um die Links zu veröffentlichen):
Das größte Problem ist, dass sie normalerweise auf den Intel-Compiler verweisen. Während wir planen, eine Kopie zu kaufen, haben wir derzeit keine Kopie. Darüber hinaus ist der Großteil unserer Entwicklungspipeline bereits in GCC integriert, und wir würden es (wenn möglich) auch so beibehalten.
Wir haben die neueste MPSS 3.5-Distribution installiert und nehmen die notwendigen Änderungen vor, um unter Ubuntu zu arbeiten. Wir können erfolgreich kommunizieren und den Status der Xeon Phis in unserem System überprüfen.
In unserem Bemühen haben wir nie einen Hinweis darauf gesehen, dass der Code auch im Mic-Emulationsmodus lief.
Danke!
Wir haben diesen Code mit:
kompiliert %Vor%Fast dasselbe, aber stattdessen haben wir das
ausprobiert %Vor% Syntax. Tatsächlich klagt es mit mic
, aber mit allen Gerätenummern (d. H. 0) kompiliert es und läuft auf dem Host. Dieser Code wurde auf die gleiche Weise kompiliert.
Das Auslagern auf Xeon Phi mit GCC 5 ist möglich. Um es zum Laufen zu bringen, muss man liboffloadmic für das native MIC-Ziel kompilieren, ähnlich wie es hier gemacht wird. Das Problem Ihrer Einrichtung besteht darin, dass es Host-Emulationsbibliotheken (libcoi_host.so, libcoi_device.so) kompiliert und Sticks mit emuliertem Entladen speichert, obwohl das physikalische Xeon Phi vorhanden ist.
Tags und Links gcc openmp xeon-phi offloading