Intel-Logo

intel oneAPI Math-Kernel-Bibliothek

Intel-oneAPI-Math-Kernel-Library-Produktbild

Erste Schritte mit der Intel® oneAPI Math-Kernel-Bibliothek

Die Intel® oneAPI Math Kernel Library (oneMKL) hilft Ihnen, maximale Leistung mit einer Math-Computing-Bibliothek mit hochoptimierten, umfassend parallelisierten Routinen für CPU und GPU zu erzielen. 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)
  • Vektor-Mathematik
  • Direkte und iterative Sparse-Löser
  • 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 Vector Math-Funktionalität

Bevor Sie beginnen
Besuchen Sie die Seite mit den Versionshinweisen für bekannte Probleme und die aktuellsten Informationen.
Besuchen Sie die Systemanforderungen der Intel® oneAPI Math Kernel Library-Seite für Systemanforderungen.
Besuchen Sie den Abschnitt Erste Schritte mit dem Intel® oneAPI DPC++/C++-Compiler für DPC++-Compiler-Anforderungen.

Schritt 1: Installieren Sie die Intel® oneAPI Math-Kernel-Bibliothek
Laden Sie die Intel® oneAPI Math Kernel Library aus dem 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 für Python-Distributionen die folgende Einschränkung:
Das oneMKL-Entwicklungspaket (mkl-devel) für die PIP-Distribution unter Linux* und macOS* stellt keine Symlinks für dynamische Bibliotheken bereit (weitere Informationen finden Sie unter PIP GitHub issue #5919).
Im Falle einer dynamischen oder einzelnen dynamischen Bibliotheksverknüpfung mit dem oneMKL-Entwicklungspaket (weitere Informationen finden Sie unter oneMKL Link Line Advisor ) müssen Sie die Link-Zeile 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-Verbindungsleitung zampDatei mit dem oneAPI Base Toolkit über Symlinks:

  • 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-Link-Linie 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 aus
Wählen Sie eine Funktion oder Routine aus oneMKL aus, die für Ihr Problem am besten geeignet ist. Verwenden Sie diese Ressourcen:

Ressourcenlink: Inhalt

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

Das Entwicklerhandbuch enthält detaillierte Informationen zu verschiedenen Themen, darunter:

  • Kompilieren und Verknüpfen von Anwendungen
  • Erstellen benutzerdefinierter DLLs
  • Threading
  • 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.

Intel® oneAPI Math Kernel Library Function Finding Advisor

  • Verwenden Sie den LAPACK Function Finding Advisor, um LAPACK-Routinen zu erkunden, die für ein bestimmtes Problem nützlich sind. Zum Bspample, wenn Sie eine Operation wie folgt angeben:
    • Routinentyp: Rechnerisch
    • Rechenproblem: Orthogonale Faktorisierung
    • Matrixtyp: Allgemein
    • Operation: QR-Faktorisierung durchführen

Schritt 3: Verknüpfen Sie Ihren Code
Verwenden Sie den oneMKL Link Line Advisor, um den Link-Befehl gemäß 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,–Startgruppe ${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, Aufbau/statisches Linken 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,–Startgruppe ${MKLROOT}/lib/intel64/
libmkl_intel_ilp64.a ${MKLROOT}/lib/intel64/libmkl_tbb_thread.a ${MKLROOT}/lib/intel64/
libmkl_core.a -Wl,–Endgruppe -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 Linken 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, Aufbau/statisches Linken 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 Linken 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 der OpenMP-Offload-Funktion zur GPU.
Weitere Informationen zu dieser Funktion finden Sie im C OpenMP Offload-Entwicklerhandbuch.
Fügen Sie die folgenden Änderungen zu den C/Fortran oneMKL-Kompilierungs-/Link-Zeilen hinzu, um die OpenMP-Offload-Funktion zur GPU zu aktivieren:

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

Zum Beispielample, Erstellen/dynamisches Linken 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
Informationen zu allen anderen unterstützten Konfigurationen finden Sie unter Intel® oneAPI Math Kernel Library Link Line Advisor.

Finde mehr

Ressource: Beschreibung

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

  • Lernprogramm – C-Sprache
  • Tutorial – Fortran-Sprache

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

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. Informationen finden Sie auch unter:

  • Was ist neu in der Version
  • Produktinhalt
  • Technische Unterstützung 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.

Kochbuch der Intel® oneAPI Math-Kernel-Bibliothek
Die Intel® oneAPI Math Kernel Library enthält viele Routinen, die Ihnen helfen, verschiedene numerische Probleme zu lösen, wie z. B. das Multiplizieren von Matrizen, das Lösen eines Gleichungssystems und das Durchführen einer Fourier-Transformation.

Hinweise für Vektorstatistiken der Intel® oneAPI Math Kernel Library
Dieses Dokument enthält ein Overview, ein Nutzungsmodell und Testergebnisse von Zufallszahlengeneratoren, die in VS enthalten sind.

Intel® oneAPI Math Kernel Library Vektorstatistiken Leistungsdaten des Zufallszahlengenerators
Leistungsdaten, die mithilfe von Zufallszahlengeneratoren (RNG) für Vektorstatistiken (VS) einschließlich CPE-Maßeinheiten (Takte pro Element), Basis-Zufallszahlengeneratoren (BRNG), generierten Verteilungsgeneratoren und Länge der generierten Vektoren erhalten wurden.

Intel® oneAPI Math Kernel Library Leistungs- und Genauigkeitsdaten für Vektormathematik
Vektormathematik (VM) berechnet elementare Funktionen auf Vektorargumenten. VM enthält eine Reihe hochoptimierter Implementierungen von rechenintensiven mathematischen Kernfunktionen (Potenz, trigonometrische, exponentielle, hyperbolische und andere), die mit Vektoren arbeiten.

Anwendungshinweise für die zusammenfassende Statistik der Intel® oneAPI Math-Kernel-Bibliothek
Summary Statistics ist eine Unterkomponente der Vector Statistics-Domäne der Intel® oneAPI Math Kernel Library. Summary Statistics stellt Ihnen Funktionen für erste statistische Analysen zur Verfügung und bietet Lösungen für die parallele Verarbeitung mehrdimensionaler Datensätze.

LAPACK Bspampdie
Dieses Dokument enthält Code examples für oneMKL LAPACK (Linear Algebra PACKage)-Routinen.

Hinweise und Haftungsausschlüsse
Software und Workloads, die in Leistungstests verwendet werden, wurden möglicherweise nur für die Leistung auf Intel-Mikroprozessoren optimiert. Leistungstests wie SYSmark und MobileMark werden anhand bestimmter Computersysteme, Komponenten, Software, Operationen und Funktionen gemessen. Jede Änderung an einem dieser Faktoren kann dazu führen, dass die Ergebnisse variieren. Sie sollten andere Informationen und Leistungstests konsultieren, um Ihre beabsichtigten 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 (ausdrücklich oder stillschweigend, durch Rechtsverwirkung oder anderweitig) in Bezug auf geistige Eigentumsrechte gewährt.
Die beschriebenen Produkte können Konstruktionsfehler oder Fehler enthalten, die als Errata bekannt sind und 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-Bibliothek, Math-Kernel-Bibliothek, Kernel-Bibliothek, Bibliothek

Referenzen

Hinterlassen Sie eine Nachricht

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *