intel oneAPI Math-Kernel-Bibliothek
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
-
Auf überview - 1 | Leistungsindex
-
Umgang mit Symlinks (und anderen) von Archiven · Ausgabe Nr. 5919 · pypa/pip · GitHub
-
Intel® Distribution für Python*
-
Intel® Math Kernel Library (Intel® MKL) und pkg-config-Tool
-
Versionshinweise und neue Funktionen der Intel® Math-Kernel-Bibliothek
-
LAPACK Function Finding Advisor für Intel® oneAPI Math Kernel Library
-
Link Line Advisor für Intel® oneAPI Math Kernel Library
-
Intel® oneAPI Math Kernel Library (oneMKL) Versionshinweise
-
Systemanforderungen für die Intel® oneAPI Math-Kernel-Bibliothek
-
Erste Schritte mit OpenMP* Offload to GPU für die Intel® oneAPI...
-
Erste Schritte mit dem Intel® oneAPI DPC++/C++-Compiler
-
Intel® oneAPI Math Kernel Library – Data Parallel C++-Entwickler...
-
Kochbuch der Intel® oneAPI Math-Kernel-Bibliothek
-
Entwicklerreferenz für die Intel® oneAPI Math Kernel Library – C
-
Entwicklerreferenz für die Intel® oneAPI Math Kernel Library – Fortran
-
Entwicklerhandbuch für die Intel® oneAPI Math-Kernel-Bibliothek für Linux*
-
Hilfe und Unterstützung bekommen
-
Anwendungshinweise für die Zusammenfassung der Intel® oneAPI Math-Kernel-Bibliothek...
-
Tutorial: Verwenden der Intel® oneAPI Math Kernel Library (oneMKL) für...
-
Tutorial: Verwenden der Intel® oneAPI Math Kernel Library (oneMKL) für...
-
Intel® oneAPI Math Kernel Library Vektormathematik Leistung und...
-
Hinweise für Vektorstatistiken der Intel® oneAPI Math Kernel Library
-
Intel® oneAPI Math Kernel Library Vektorstatistik Zufallszahl...
-
Entwicklerhandbuch für die Intel® oneAPI Math-Kernel-Bibliothek für Windows*
-
Beschleunigen Sie schnelle Mathematik mit der Intel® oneAPI Math Kernel Library
-
Intel® oneAPI Math-Kernel-Bibliothek LAPACK Exampdie
-
Auf überview - 1 | Leistungsindex
-
Auf überview - 1 | Leistungsindex