intel-logotyp

intel oneAPI Math Kernel Library

intel-oneAPI-Math-Kernel-Library-product-image

Kom igång med Intel® oneAPI Math Kernel Library

Intel® oneAPI Math Kernel Library (oneMKL) hjälper dig att uppnå maximal prestanda med ett matematiskt datorbibliotek med mycket optimerade, omfattande parallelliserade rutiner för CPU och GPU. Biblioteket har C- och Fortran-gränssnitt för de flesta rutiner på CPU, och DPC++-gränssnitt för vissa rutiner på både CPU och GPU. Du kan hitta omfattande stöd för flera matematiska operationer i olika gränssnitt inklusive:

För C och Fortran på CPU

  • Linjär algebra
  • Fast Fourier Transforms (FFT)
  • Vektor matematik
  • Direkta och iterativa glesa lösare
  • Slumptalsgeneratorer

För DPC++ på CPU och GPU (se Intel® oneAPI Math Kernel Library—Data Parallel C++ Developer Reference för mer information.)

  • Linjär algebra
    • BLAS
    • Vald Sparse BLAS-funktionalitet
    • Vald LAPACK-funktion
  • Fast Fourier Transforms (FFT)
    • 1D, 2D och 3D
  • Slumptalsgeneratorer
    • Vald funktionalitet
  • Vald Vector Math-funktionalitet

Innan du börjar
Besök sidan Release Notes för de kända problemen och den senaste informationen.
Besök sidan Intel® oneAPI Math Kernel Library System Requirements för systemkrav.
Besök Kom igång med Intel® oneAPI DPC++/C++-kompilatorn för DPC++-kompilatorkrav.

Steg 1: Installera Intel® oneAPI Math Kernel Library
Ladda ner Intel® oneAPI Math Kernel Library från Intel® oneAPI Base Toolkit.
För Python-distributioner, se Installera Intel®-distributionen för Python* och Intel® Performance Libraries med pip och PyPI.
För Python-distributioner, notera följande begränsning:
Utvecklingspaketet oneMKL (mkl-devel) för PIP-distribution på Linux* och macOS* tillhandahåller inte dynamiska bibliotekssymlänkar (för mer information se PIP GitHub nummer 5919).
I fallet med dynamisk eller enstaka dynamisk bibliotekslänkning med oneMKL-utvecklingspaketet (för mer information se oneMKL Link Line Advisor ) måste du ändra länkraden med oneMKL-bibliotekets fullständiga namn och versioner.
Se Intel® oneAPI Math Kernel Library och pkg-config-verktyget för information om kompilering och länkning med pkg-config-verktyget.
oneMKL länklinje example med oneAPI Base Toolkit via symboliska länkar:

  • 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
    OneMKL-länklinjen example med PIP-utvecklingspaket via bibliotekens fullständiga namn och versioner: 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

Steg 2: Välj en funktion eller rutin
Välj en funktion eller rutin från oneMKL som är bäst lämpad för ditt problem. Använd dessa resurser:

Resurslänk: Innehåll

oneMKL utvecklarguide för Linux*
oneMKL Developer Guide för Windows*
oneMKL Developer Guide för macOS*

Utvecklarguiden innehåller detaljerad information om flera ämnen, inklusive:

  • Sammanställa och länka applikationer
  • Bygga anpassade DLL:er
  • Träning
  • Minneshantering

oneMKL Developer Reference – C
Språk oneMKL Developer Reference – Fortran Language
oneMKL Developer Reference – DPC++ Language

  • Utvecklarreferensen (i C-, Fortran- och DPC++-format) innehåller detaljerade beskrivningar av funktionerna och gränssnitten för alla biblioteksdomäner.

Intel® oneAPI Math Kernel Library Function Finding Advisor

  • Använd LAPACK Function Finding Advisor för att utforska LAPACK-rutiner som är användbara för ett visst problem. Till exempelample, om du anger en operation som:
    • Rutintyp: Computational
    • Beräkningsproblem: Ortogonal faktorisering
    • Matristyp: Allmänt
    • Drift: Utför QR-faktorisering

Steg 3: Länka din kod
Använd oneMKL Link Line Advisor för att konfigurera länkkommandot enligt dina programfunktioner.
Några begränsningar och ytterligare krav:
Intel® oneAPI Math Kernel Library för DPC++ stöder endast användning av gränssnittsbiblioteket mkl_intel_ilp64 och sekventiell eller TBB-trådning.

För DPC++-gränssnitt med statisk länkning på Linux
icpx -fsycl -fsycl-device-code-split=per_kärna -DMKL_ILP64 ${MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–startgrupp ${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
Till exempelample, bygga/statiskt länka main.cpp med ilp64-gränssnitt och TBB-trådning:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I${MKLROOT}/include main.cpp $
{MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–startgrupp ${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++-gränssnitt med dynamisk länkning på Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
Till exempelample, bygga/dynamiskt länka main.cpp med ilp64-gränssnitt och TBB-trådning:
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 -ld

För DPC++-gränssnitt med statisk länkning på Windows
icpx -fsycl -fsycl-device-code-split=per_kärna -DMKL_ILP64 "%MKLROOT%"\lib\intel64\mkl_sycl.lib
mkl_intel_ilp64.lib mkl_ .lib mkl_core_lib sycl.lib OpenCL.lib
Till exempelample, bygga/statiskt länka main.cpp med ilp64-gränssnitt och TBB-trådning:
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_tråd.lib mkl_tbb_tråd.lib mkl_tbb_tråd.lib .lib OpenCL.lib tbb.lib

För DPC++-gränssnitt med dynamisk länkning på 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
Till exempelample, bygga/dynamiskt länka main.cpp med ilp64-gränssnitt och TBB-trådning:
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_dlltbb_lib.kl_core .lib sycl.lib OpenCL.lib

För C/Fortran-gränssnitt med OpenMP Offload-stöd
Använd C/Fotran Intel® oneAPI Math Kernel Library-gränssnitt med OpenMP-avlastningsfunktion till GPU.
Se C OpenMP Offload Developer Guide för mer information om den här funktionen.
Lägg till följande ändringar i C/Fortran oneMKL kompilerings-/länkraderna för att aktivera OpenMP-avlastningsfunktionen till GPU:

  • Ytterligare kompilerings-/länkalternativ: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
  • Ytterligare oneMKL-bibliotek: oneMKL DPC++-bibliotek

Till exempelample, bygga/dynamiskt länka main.cpp på Linux med ilp64-gränssnitt och OpenMP-trådar:
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
För alla andra konfigurationer som stöds, se Intel® oneAPI Math Kernel Library Link Line Advisor.

Hitta mer

Resurs: Beskrivning

Handledning: Använda Intel® oneAPI Math Kernel Library för Matrix Multiplication:

  • Handledning – C Language
  • Handledning – Fortran Language

Denna handledning visar hur du kan använda oneMKL för att multiplicera matriser, mäta prestanda för matrismultiplikation och styra trådning.

Intel® oneAPI Math Kernel Library (oneMKL) Release Notes styr trådning.
Utgivningsinformationen innehåller information som är specifik för den senaste versionen av oneMKL inklusive nya och ändrade funktioner. Utgivningsinformationen innehåller länkar till huvudsakliga onlineinformationsresurser relaterade till utgåvan. Du kan också hitta information om:

  • Vad är nytt i releasen
  • Produktens innehåll
  • Få teknisk support
  • Licensdefinitioner

Intel® oneAPI Math Kernel Library
Intel® oneAPI Math Kernel Library (oneMKL) produktsida. Se den här sidan för support och onlinedokumentation.

Intel® oneAPI Math Kernel Library Cookbook
Intel® oneAPI Math Kernel Library innehåller många rutiner som hjälper dig att lösa olika numeriska problem, som att multiplicera matriser, lösa ett ekvationssystem och utföra en Fouriertransform.

Anmärkningar för Intel® oneAPI Math Kernel Library Vector Statistics
Detta dokument innehåller en överview, en användningsmodell och testresultat av slumptalsgeneratorer som ingår i VS.

Intel® oneAPI Math Kernel Library Vector Statistics Random Number Generator Performance Data
Prestandadata erhållna med hjälp av vektorstatistik (VS) slumptalsgenerator (RNG) inklusive CPE (klockor per element) måttenhet, grundläggande slumptalsgeneratorer (BRNG), genererade distributionsgeneratorer och längden på genererade vektorer.

Intel® oneAPI Math Kernel Library Vector Mathematics Prestanda och noggrannhetsdata
Vector Mathematics (VM) beräknar elementära funktioner på vektorargument. VM innehåller en uppsättning mycket optimerade implementeringar av beräkningsmässigt dyra matematiska kärnfunktioner (kraft, trigonometriska, exponentiella, hyperboliska och andra) som verkar på vektorer.

Application Notes for Intel® oneAPI Math Kernel Library Sammanfattningsstatistik
Sammanfattningsstatistik är en underkomponent av vektorstatistikdomänen i Intel® oneAPI Math Kernel Library. Sammanfattning Statistik ger dig funktioner för initial statistisk analys och erbjuder lösningar för parallell bearbetning av flerdimensionella datamängder.

LAPACK Examples
Detta dokument innehåller kod examples för oneMKL LAPACK (Linear Algebra PACKage) rutiner.

Meddelanden och ansvarsfriskrivningar
Programvara och arbetsbelastningar som används i prestandatester kan ha optimerats för prestanda endast på Intels mikroprocessorer. Prestandatester, såsom SYSmark och MobileMark, mäts med hjälp av specifika datorsystem, komponenter, mjukvara, operationer och funktioner. Varje förändring av någon av dessa faktorer kan göra att resultaten varierar. Du bör konsultera annan information och prestandatester för att hjälpa dig att fullständigt utvärdera dina övervägda köp, inklusive prestandan för den produkten i kombination med andra produkter. För mer fullständig information besök www.intel.com/benchmarks.
Intel-teknologier kan kräva aktiverad maskinvara, programvara eller tjänstaktivering.
Ingen produkt eller komponent kan vara helt säker.
Dina kostnader och resultat kan variera.
© Intel Corporation. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Andra namn och varumärken kan göras anspråk på att vara andras egendom.

Produkt- och prestandainformation
Prestandan varierar beroende på användning, konfiguration och andra faktorer. Läs mer på www.Intel.com/PerformanceIndex.
Meddelande revision #20201201
Ingen licens (uttrycklig eller underförstådd, genom estoppel eller på annat sätt) till några immateriella rättigheter beviljas av detta dokument.
De beskrivna produkterna kan innehålla konstruktionsfel eller fel som kallas errata som kan göra att produkten avviker från publicerade specifikationer. Aktuella karakteriserade errata är tillgängliga på begäran.
Intel frånsäger sig alla uttryckliga och underförstådda garantier, inklusive utan begränsning, underförstådda garantier om säljbarhet, lämplighet för ett visst ändamål och icke-intrång, såväl som alla garantier som uppstår på grund av prestanda, affärer eller användning i handeln.

Dokument/resurser

intel oneAPI Math Kernel Library [pdf] Användarhandbok
oneAPI Math Kernel Library, Math Kernel Library, Kernel Library, Library

Referenser

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *