2016-05-06 2 views
0

Ich kann keine Informationen zu diesem Thema finden, Gibt es eine andere Laufzeitleistung beim Ausführen eines Programms, das kompiliert und mit gcc oder icc verknüpft wurde?Gibt es eine andere Leistung als beim Kompilieren und Verknüpfen der MKL-Bibliothek über ICC oder GCC?

(Meine Vermutung ist, dass das Programm auf Intel-Architektur laufen)

+0

Meinen Sie einen Intel ** ** Mikro-Architektur? eine CPU, die tatsächlich von Intel entworfen wurde, und nicht eine x86-CPU, die von AMD, VIA oder anderen entwickelt wurde. MKL läuft nur auf drei Architekturen: x86 (32bit, aka Intel-Architektur (IA-32)), AMD64 (aka x86-64 alias Intel64) und IA-64. So könnten alle Intel-Architekturen genannt werden, wenn Sie sich das Namensschema von Intel für AMD64 kaufen. –

Antwort

1

Da beide Compiler sind offiziell von MKL unterstützt und sie verbinden die gleichen Bibliotheken wie libmkl_core.a oder libmkl_core.so, die die eigentliche Arbeit für MKL tun. Die Leistung von MKL-Operationen sollte gleich sein. Aber natürlich könnte der von Ihnen geschriebene Code anders sein, da sie von verschiedenen Compilern kompiliert werden.

bearbeiten

MKL ist als C-Bibliothek entwickelt. Die meisten APIs sind vorkompiliert und so konzipiert, dass sie mit großen Eingabedaten ausgeführt werden können, die eine relativ lange Laufzeit erwarten. Die Art und Weise, wie Sie die API aufrufen, wirkt sich nicht sehr auf die Leistung aus.

Es gibt Inline-Code und Helfer Marcos durch. Zum Beispiel mkl_direct_call.h enthalten Inline-Code/marco für kleine Matrix-Multiplikation, kleine Matrix (Größe von ~ 20 oder kleiner) kann eine Leistungsverbesserung mit diesem Code erhalten. So können Sie bei der Einbeziehung dieses Teils Leistungsunterschiede feststellen. Bitte beachten Sie die folgenden Links für weitere Details.

Improve Intel MKL Performance for Small Problems: The Use of MKL_DIRECT_CALL

Limitations of the Direct Call

+0

Also MKL enthält nicht viel, wenn irgendwelche Vorlage/Inline-Zeug? Nur vorkompilierter Code mit Prototypen/Deklarationen in Kopfzeilen? –

+0

@PeterCordes Großer Kommentar. MKL ist als C-Bibliothek konzipiert. Also ist die API relativ einfach. Es kann einen Inline-Code geben. Es sollte einfach sein, die Header-Dateien für dieses Teil zu überprüfen. – kangshiyin

Verwandte Themen