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
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. –