Intel-Logo

Intel OneAPI Math Kernel-Bibliothek

intel-oneAPI-Math-Kernel-Library-Produktbild

Erste Schritte mit der Intel® oneAPI Math Kernel Library

Die Intel® oneAPI Math Kernel Library (oneMKL) hilft Ihnen, maximale Leistung mit einer mathematischen Rechenbibliothek mit hochoptimierten, umfassend parallelisierten Routinen für CPU und GPU zu erreichen. Die Bibliothek verfügt über C- und Fortran-Schnittstellen für die meisten Routinen auf der CPU und DPC++-Schnittstellen für einige Routinen sowohl auf der CPU als auch auf der GPU. Sie finden umfassende Unterstützung für mehrere mathematische Operationen in verschiedenen Schnittstellen, darunter:

Für C und Fortran auf CPU

  • Lineare Algebra
  • Schnelle Fourier-Transformationen (FFT)
  • Vektormathematik
  • Direkte und iterative Sparse-Solver
  • Zufallszahlengeneratoren

Für DPC++ auf CPU und GPU (weitere Einzelheiten finden Sie in der Intel® oneAPI Math Kernel Library – Data Parallel C++ Developer Reference.)

  • Lineare Algebra
    • BLAS
    • Ausgewählte Sparse-BLAS-Funktionalität
    • Ausgewählte LAPACK-Funktionalität
  • Schnelle Fourier-Transformationen (FFT)
    • 1D, 2D und 3D
  • Zufallszahlengeneratoren
    • Ausgewählte Funktionalität
  • Ausgewählte Vektormathematik-Funktionalität

Bevor Sie beginnen
Auf der Seite mit den Versionshinweisen finden Sie bekannte Probleme und die aktuellsten Informationen.
Informationen zu den Systemanforderungen finden Sie auf der Seite „Systemanforderungen für die Intel® oneAPI Math Kernel Library“.
Informationen zu den DPC++-Compiler-Anforderungen finden Sie unter „Erste Schritte mit dem Intel® oneAPI DPC++/C++-Compiler“.

Schritt 1: Installieren Sie die Intel® oneAPI Math Kernel Library
Laden Sie die Intel® oneAPI Math Kernel Library vom Intel® oneAPI Base Toolkit herunter.
Informationen zu Python-Distributionen finden Sie unter Installieren der Intel® Distribution für Python* und Intel® Leistungsbibliotheken mit pip und PyPI.
Beachten Sie bei Python-Distributionen die folgende Einschränkung:
Das oneMKL-Entwicklungspaket (mkl-devel) für die PIP-Verteilung unter Linux* und macOS* stellt keine symbolischen Links zu dynamischen Bibliotheken bereit (weitere Informationen finden Sie im PIP-GitHub-Problem Nr. 5919).
Im Fall einer dynamischen oder einzelnen dynamischen Bibliotheksverknüpfung mit dem oneMKL-Entwicklungspaket (weitere Informationen finden Sie unter oneMKL Link Line Advisor) müssen Sie die Linkzeile mit den vollständigen Namen und Versionen der oneMKL-Bibliotheken ändern.
Informationen zum Kompilieren und Verknüpfen mit dem pkg-config-Tool finden Sie in der Intel® oneAPI Math Kernel Library und im pkg-config-Tool.
oneMKL Link-Linie exampDatei mit dem oneAPI Base Toolkit über symbolische Links:

  • Linux:
    icc app.obj -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64-lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl
  • macOS:
    icc app.obj -L${MKLROOT}/lib -Wl,-rpath,${MKLROOT}/lib-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
    -lm -ldl
    Die oneMKL Linklinie exampDatei mit PIP-Entwicklungspaket über Bibliotheken mit vollständigen Namen und Versionen: Linux:
    icc app.obj ${MKLROOT}/lib/intel64/libmkl_intel_lp64.so.1 ${MKLROOT}/lib/intel64/libmkl_intel_thread.so.1 ${MKLROOT}/lib/intel64/libmkl_core.so.1 -liomp5 -lpthread -lm -ldl
  • macOS:
    icc app.obj -Wl,-rpath,${MKLROOT}/lib${MKLROOT}/lib/intel64/libmkl_intel_lp64.1.dylib $ {MKLROOT}/lib/intel64/libmkl_intel_thread.1.dylib
    ${MKLROOT}/lib/intel64/libmkl_core.1.dylib -liomp5 -lpthread -lm-ldl

Schritt 2: Wählen Sie eine Funktion oder Routine
Wählen Sie aus oneMKL die Funktion oder Routine aus, die am besten zu Ihrem Problem passt. Nutzen Sie diese Ressourcen:

Ressourcenlink: Inhalt

oneMKL-Entwicklerhandbuch für Linux*
oneMKL Entwicklerhandbuch für Windows*
oneMKL Entwicklerhandbuch für macOS*

Das Entwicklerhandbuch enthält ausführliche Informationen zu verschiedenen Themen, darunter:

  • Kompilieren und Verknüpfen von Anwendungen
  • Erstellen benutzerdefinierter DLLs
  • Einfädeln
  • Speicherverwaltung

oneMKL Entwicklerreferenz – C
Sprache oneMKL Entwicklerreferenz – Fortran Sprache
oneMKL Entwicklerreferenz – DPC++ Sprache

  • Die Entwicklerreferenz (in den Formaten C, Fortran und DPC++) enthält detaillierte Beschreibungen der Funktionen und Schnittstellen für alle Bibliotheksdomänen.

Ratgeber zur Funktionssuche der Intel® oneAPI Math Kernel Library

  • Verwenden Sie den LAPACK Function Finding Advisor, um LAPACK-Routinen zu erkunden, die für ein bestimmtes Problem nützlich sind. Zum BeispielampWenn Sie eine Operation wie folgt angeben:
    • Routinetyp: Computergestützt
    • Rechenaufgabe: Orthogonale Faktorisierung
    • Matrixtyp: Allgemein
    • Vorgang: QR-Faktorisierung durchführen

Schritt 3: Verknüpfen Sie Ihren Code
Verwenden Sie den oneMKL Link Line Advisor, um den Link-Befehl entsprechend Ihren Programmfunktionen zu konfigurieren.
Einige Einschränkungen und zusätzliche Anforderungen:
Intel® oneAPI Math Kernel Library für DPC++ unterstützt nur die Verwendung der mkl_intel_ilp64-Schnittstellenbibliothek und sequentielles oder TBB-Threading.

Für DPC++-Schnittstellen mit statischer Verknüpfung unter Linux
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 ${MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–start-group ${MKLROOT}/lib/intel64/libmkl_intel_ilp64.a ${MKLROOT}/lib/intel64/
libmkl_ .a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,–end-group -lsycl -lOpenCL -lpthread -ldl -lm
Zum Beispielample, Erstellen/statisches Verknüpfen von main.cpp mit ilp64-Schnittstellen und TBB-Threading:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I${MKLROOT}/include main.cpp $
{MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–start-group ${MKLROOT}/lib/intel64/
libmkl_intel_ilp64.a ${MKLROOT}/lib/intel64/libmkl_tbb_thread.a ${MKLROOT}/lib/intel64/
libmkl_core.a -Wl,–end-group -L${TBBROOT}/lib/intel64/gcc4.8 -ltbb -lsycl -lOpenCL -lpthread -lm -ldl

Für DPC++-Schnittstellen mit dynamischer Verknüpfung unter Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
Zum Beispielample, Erstellen/dynamisches Verknüpfen von main.cpp mit ilp64-Schnittstellen und TBB-Threading:
icpx -fsycl -DMKL_ILP64 -I${MKLROOT}/include main.cpp -L${MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_tbb_thread -lmkl_core -lsycl -lOpenCL -ltbb -lpthread -ldl -lm

Für DPC++-Schnittstellen mit statischer Verknüpfung unter Windows
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 „%MKLROOT%“\lib\intel64\mkl_sycl.lib
mkl_intel_ilp64.lib mkl_ .lib mkl_core_lib sycl.lib OpenCL.lib
Zum Beispielample, Erstellen/statisches Verknüpfen von main.cpp mit ilp64-Schnittstellen und TBB-Threading:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I”%MKLROOT%\include” main.cpp”%MKLROOT%”\lib\intel64\mkl_sycl.lib mkl_intel_ilp64.lib mkl_tbb_thread.lib mkl_core.lib sycl.lib OpenCL.lib tbb.lib

Für DPC++-Schnittstellen mit dynamischer Verknüpfung unter Windows
icpx -fsycl -DMKL_ILP64 „%MKLROOT%“\lib\intel64\mkl_sycl_dll.lib mkl_intel_ilp64_dll.lib mkl_ _dll.lib mkl_core_dll.lib tbb.lib sycl.lib OpenCL.lib
Zum Beispielample, Erstellen/dynamisches Verknüpfen von main.cpp mit ilp64-Schnittstellen und TBB-Threading:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I”%MKLROOT%\include” main.cpp “%MKLROOT%”\lib\intel64\mkl_sycl_dll.lib mkl_intel_ilp64_dll.lib mkl_tbb_thread_dll.lib mkl_core_dll.lib tbb.lib sycl.lib OpenCL.lib

Für C/Fortran-Schnittstellen mit OpenMP-Offload-Unterstützung
Verwenden Sie die C/Fotran Intel® oneAPI Math Kernel Library-Schnittstellen mit OpenMP-Offload-Funktion zur GPU.
Weitere Einzelheiten zu dieser Funktion finden Sie im C OpenMP Offload Developer Guide.
Fügen Sie den C/Fortran oneMKL-Kompilierungs-/Linkzeilen die folgenden Änderungen hinzu, um die OpenMP-Offload-Funktion auf die GPU zu aktivieren:

  • Zusätzliche Kompilierungs-/Linkoptionen: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
  • Zusätzliche oneMKL-Bibliothek: oneMKL DPC++-Bibliothek

Zum Beispielample, Erstellen/dynamisches Verknüpfen von main.cpp unter Linux mit ilp64-Schnittstellen und OpenMP-Threading:
icx -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl -DMKL_ILP64 -m64 -I$(MKLROOT)/include main.cpp L${MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lsycl -lOpenCL -lstdc++ -lpthread -lm -ldl
Alle anderen unterstützten Konfigurationen finden Sie im Intel® oneAPI Math Kernel Library Link Line Advisor.

Mehr erfahren

Ressource: Beschreibung

Tutorial: Verwenden der Intel® oneAPI Math Kernel Library für die Matrixmultiplikation:

  • Tutorial – Sprache C
  • Tutorial – Fortran-Sprache

Dieses Tutorial zeigt, wie Sie mit oneMKL Matrizen multiplizieren, die Leistung der Matrizenmultiplikation messen und Threading steuern können.

Die Versionshinweise zur Intel® oneAPI Math Kernel Library (oneMKL) steuern das Threading.
Die Versionshinweise enthalten spezifische Informationen zur neuesten Version von oneMKL, einschließlich neuer und geänderter Funktionen. Die Versionshinweise enthalten Links zu den wichtigsten Online-Informationsquellen im Zusammenhang mit der Version. Sie finden auch Informationen zu:

  • Was ist neu in dieser Version
  • Lieferumfang
  • Technischen Support erhalten
  • Lizenzdefinitionen

Intel® oneAPI Math Kernel-Bibliothek
Die Produktseite der Intel® oneAPI Math Kernel Library (oneMKL). Auf dieser Seite finden Sie Support und Online-Dokumentation.

Intel® oneAPI Math Kernel Library Cookbook
Die Intel® oneAPI Math Kernel Library enthält viele Routinen, die Ihnen beim Lösen verschiedener numerischer Probleme helfen, etwa beim Multiplizieren von Matrizen, Lösen eines Gleichungssystems und Durchführen einer Fourier-Transformation.

Hinweise zu Intel® oneAPI Math Kernel Library Vektorstatistik
Dieses Dokument enthält eineview, ein Nutzungsmodell und Testergebnisse von Zufallszahlengeneratoren, die in VS enthalten sind.

Intel® oneAPI Math Kernel Library Vektorstatistik Zufallszahlengenerator Leistungsdaten
Leistungsdaten, die mithilfe eines Zufallszahlengenerators (RNG) mit Vektorstatistik (VS) erhalten wurden, einschließlich der Maßeinheit CPE (Uhren pro Element), grundlegender Zufallszahlengeneratoren (BRNG), generierter Verteilungsgeneratoren und Länge der generierten Vektoren.

Intel® oneAPI Math Kernel Library – Leistungs- und Genauigkeitsdaten zur Vektormathematik
Die Vektormathematik (VM) berechnet elementare Funktionen mit Vektorargumenten. VM enthält eine Reihe hochoptimierter Implementierungen rechenintensiver mathematischer Kernfunktionen (Potenz-, trigonometrische, Exponential-, Hyperbolfunktion und andere), die mit Vektoren arbeiten.

Anwendungshinweise für die zusammenfassenden Statistiken der Intel® oneAPI Math Kernel Library
Summary Statistics ist eine Unterkomponente der Domäne „Vektorstatistik“ der Intel® oneAPI Math Kernel Library. Summary Statistics stellt Ihnen Funktionen für die erste statistische Analyse zur Verfügung und bietet Lösungen für die parallele Verarbeitung mehrdimensionaler Datensätze.

LAPACK Examples
Dieses Dokument enthält CodebeispieleampDateien für oneMKL LAPACK (Linear Algebra PACKage)-Routinen.

Hinweise und Haftungsausschlüsse
Die in den Leistungstests verwendete Software und Workloads wurden möglicherweise nur für die Leistung auf Intel-Mikroprozessoren optimiert. Leistungstests wie SYSmark und MobileMark werden mit bestimmten Computersystemen, Komponenten, Software, Vorgängen und Funktionen gemessen. Jede Änderung eines dieser Faktoren kann zu abweichenden Ergebnissen führen. Sie sollten andere Informationen und Leistungstests zu Rate ziehen, um Ihre geplanten Käufe umfassend zu bewerten, einschließlich der Leistung dieses Produkts in Kombination mit anderen Produkten. Weitere Informationen finden Sie unter www.intel.com/benchmarks.
Für Intel-Technologien ist möglicherweise eine aktivierte Hardware-, Software- oder Dienstaktivierung erforderlich.
Kein Produkt oder keine Komponente kann absolut sicher sein.
Ihre Kosten und Ergebnisse können variieren.
© Intel Corporation. Intel, das Intel-Logo und andere Intel-Marken sind Marken der Intel Corporation oder ihrer Tochtergesellschaften. Andere Namen und Marken können als Eigentum anderer beansprucht werden.

Produkt- und Leistungsinformationen
Die Leistung variiert je nach Verwendung, Konfiguration und anderen Faktoren. Erfahren Sie mehr unter www.Intel.com/PerformanceIndex.
Beachten Sie Revision Nr. 20201201
Durch dieses Dokument wird keine Lizenz (weder ausdrücklich noch stillschweigend, durch Rechtsverwirkung oder auf andere Weise) an geistigen Eigentumsrechten gewährt.
Die beschriebenen Produkte können Konstruktionsfehler oder Fehler (sogenannte Errata) enthalten, die dazu führen können, dass das Produkt von den veröffentlichten Spezifikationen abweicht. Aktuelle gekennzeichnete Errata sind auf Anfrage erhältlich.
Intel schließt alle ausdrücklichen und stillschweigenden Gewährleistungen aus, einschließlich, aber nicht beschränkt auf die stillschweigenden Gewährleistungen der Marktgängigkeit, der Eignung für einen bestimmten Zweck und der Nichtverletzung von Rechten Dritter, sowie jegliche Gewährleistung, die sich aus dem Verlauf der Leistung, dem Geschäftsverlauf oder der Verwendung im Handel ergibt.

Dokumente / Ressourcen

Intel OneAPI Math Kernel-Bibliothek [pdf] Benutzerhandbuch
oneAPI Math Kernel Library, Math Kernel Library, Kernel-Bibliothek, Bibliothek

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *