Frage

Hat jemand Erfahrung Programmierung sowohl für den Intel Math Kernel Library und die AMD Math Core Library ? Ich baue ein Personalcomputer für höchste Ansprüche entwickelt statistische Berechnungen und auf die Komponenten am Debattieren zu kaufen. Ein Aufruf der AMD Math Core-Bibliothek ist, dass es frei ist, aber ich bin in der Wissenschaft so die MKL nicht so teuer ist. Aber ich würde daran interessiert sein zu hören Gedanken auf:

  1. , die eine bessere API bietet?
  2. Welche bessere Leistung im Durchschnitt bietet, pro Dollar, einschließlich Lizenz- und Hardwarekosten.
  3. Ist die AmCl-GPU einen Faktor sollte ich?
War es hilfreich?

Lösung

Intel MKL und ACML haben ähnliche APIs aber MKL hat eine reichere Reihe von unterstützter Funktionalität einschließlich BLAS (und cblas) / LAPACK / FFTs / Vektor und statistisches Math / Karges direkte und iterative Löser / Karges BLAS, und so weiter. Intel MKL ist auch für Intel- und AMD-Prozessoren optimiert und verfügt über ein aktives Benutzerforum Sie um Hilfe oder Beratung wenden können. Eine unabhängige Prüfung der beiden Bibliotheken wird hier gepostet: ( http://www.advancedclustering.com/company-blog/high-performance-linpack-on-xeon-5500-v-opteron-2400.html )

• Shane Corder, Advanced Clustering (auch von HPCwire durch: Benchmark Herausforderung: Nehalem Versus Istanbul): „In unserem letzten Test und durch praktische Erfahrung haben wir festgestellt, dass die Intel-Compiler und Intel Math Kernel Library (MKL) in der Regel bietet die beste Leistung. Anstatt nur Absetzen auf Intels Toolkit haben wir versucht, verschiedene Compiler einschließlich: Intel, GNU Compiler und Portland Group. Wir testeten auch verschiedene lineare Algebra Bibliotheken einschließlich: MKL, AMD-Core Math Library (ACML) und libGOTO von der University of Texas. Der gesamte Test haben wir gezeigt, die höchste Leistung erreichen könnten, wenn sowohl die Intel Compiler und Intel Math Library - und das sogar auf dem AMD-System -. So wurden diese sie als Basis für unsere Benchmarks“[Benchmark-Tests zeigten, 4-Kern Nehalem X5550 2,66 GHz bei 74.0GFs vs. Istanbul 2435 2.6GHz bei 99.4GFs; Istanbul nur 34% schneller trotz 50% mehr Kerne]

Hope, das hilft.

Andere Tipps

In der Tat gibt es zwei Versionen von LAPACK Routinen in ACML. Die, die ohne Unterstrich Hinter (_) sind die C-Version Routinen, die als Victor sagte, nicht Arbeitsplatz-Arrays benötigen und Sie können nur Werte übergeben anstatt von Referenzen für die Parameter. Diejenigen, die mit dem Unterstrich jedoch sind nur Vanille-Fortran-Routinen. Führen Sie einen „dumpbin / export“ auf libacml_dll.dll und Sie werden sehen.

Ich habe AmCl für seine BLAS / LAPACK Routinen verwendet, so wird dies wahrscheinlich Ihre Frage nicht beantworten, aber ich hoffe, dass es für jemanden nützlich ist. Vergleicht man sich BLAS / LAPACK Vanille, war ihre Leistung um den Faktor 2-3 besser in meinem speziellen Anwendungsfall. Ich benutzte es für dichte unsymmetrischen komplexen Matrizen, für beide linearen löst und Eigensystem Berechnungen. Sie sollten wissen, dass die Funktionsdeklarationen sind nicht identisch mit den Vanille-Routinen. Dies erforderte eine beträchtliche Menge an Präprozessormakros mir zu erlauben, zwischen den beiden zu frei zu schalten. Insbesondere sind alle LAPACK Routinen in AmCl erfordern keine Arbeit Arrays. Dies ist eine große Bequemlichkeit, wenn AmCl die einzige Bibliothek, die Sie verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top