intel-logo

intel oneAPI Math Kernel Library

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

Kom godt i gang med Intel® oneAPI Math Kernel Library

Intel® oneAPI Math Kernel Library (oneMKL) hjælper dig med at opnå maksimal ydeevne med et matematisk databibliotek med højt optimerede, omfattende paralleliserede rutiner til CPU og GPU. Biblioteket har C- og Fortran-grænseflader til de fleste rutiner på CPU, og DPC++-grænseflader til nogle rutiner på både CPU og GPU. Du kan finde omfattende support til flere matematiske operationer i forskellige grænseflader, herunder:

Til C og Fortran på CPU

  • Lineær algebra
  • Fast Fourier Transforms (FFT)
  • Vektor matematik
  • Direkte og iterative sparsomme løsere
  • Tilfældige tal generatorer

For DPC++ på CPU og GPU (se Intel® oneAPI Math Kernel Library—Data Parallel C++ Developer Reference for flere detaljer).

  • Lineær algebra
    • BLAS
    • Valgt sparsom BLAS-funktionalitet
    • Valgt LAPACK funktionalitet
  • Fast Fourier Transforms (FFT)
    • 1D, 2D og 3D
  • Tilfældige tal generatorer
    • Valgt funktionalitet
  • Valgt Vector Math-funktionalitet

Før du begynder
Besøg siden Release Notes for at få de kendte problemer og de mest opdaterede oplysninger.
Besøg siden Intel® oneAPI Math Kernel Library Systemkrav for systemkrav.
Besøg Kom godt i gang med Intel® oneAPI DPC++/C++ Compiler for krav til DPC++ Compiler.

Trin 1: Installer Intel® oneAPI Math Kernel Library
Download Intel® oneAPI Math Kernel Library fra Intel® oneAPI Base Toolkit.
For Python-distributioner henvises til Installation af Intel® Distribution for Python* og Intel® Performance Libraries med pip og PyPI.
Bemærk følgende begrænsning for Python-distributioner:
OneMKL devel-pakken (mkl-devel) til PIP-distribution på Linux* og macOS* giver ikke dynamiske biblioteks-symlinks (for mere information se PIP GitHub-udgave #5919).
I tilfælde af dynamisk eller enkelt dynamisk bibliotekslinkning med oneMKL devel-pakke (for mere information se oneMKL Link Line Advisor) skal du ændre linklinjen med oneMKL-bibliotekernes fulde navne og versioner.
Se Intel® oneAPI Math Kernel Library og pkg-config-værktøjet for at få oplysninger om kompilering og tilknytning til pkg-config-værktøjet.
oneMKL link linje example med oneAPI Base Toolkit via symbolske 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
    OneMKL-linklinjen example med PIP-udviklingspakke via bibliotekers fulde navne og 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 -lplthread -lm
  • 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

Trin 2: Vælg en funktion eller rutine
Vælg en funktion eller rutine fra oneMKL, der passer bedst til dit problem. Brug disse ressourcer:

Ressourcelink: Indhold

oneMKL Developer Guide til Linux*
oneMKL Developer Guide til Windows*
oneMKL Developer Guide til macOS*

Udviklervejledningen indeholder detaljerede oplysninger om flere emner, herunder:

  • Kompilere og linke applikationer
  • Opbygning af brugerdefinerede DLL'er
  • Trådning
  • Hukommelseshåndtering

oneMKL Developer Reference – C
Sprog oneMKL Developer Reference – Fortran Language
oneMKL Developer Reference – DPC++ sprog

  • Udviklerreferencen (i C-, Fortran- og DPC++-formater) indeholder detaljerede beskrivelser af funktioner og grænseflader for alle biblioteksdomæner.

Intel® oneAPI Math Kernel Library Function Finding Advisor

  • Brug LAPACK Function Finding Advisor til at udforske LAPACK-rutiner, der er nyttige til et bestemt problem. F.eksample, hvis du angiver en operation som:
    • Rutinetype: Computational
    • Beregningsproblem: Ortogonal faktorisering
    • Matrixtype: Generelt
    • Betjening: Udfør QR-faktorisering

Trin 3: Link din kode
Brug oneMKL Link Line Advisor til at konfigurere linkkommandoen i overensstemmelse med dine programfunktioner.
Nogle begrænsninger og yderligere krav:
Intel® oneAPI Math Kernel Library til DPC++ understøtter kun brug af mkl_intel_ilp64-grænsefladebiblioteket og sekventiel eller TBB-trådning.

Til DPC++-grænseflader med statisk linking på 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
F.eksample, der bygger/statisk forbinder main.cpp med ilp64-grænseflader og TBB-tråding:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I${MKLROOT}/include main.cpp $
{MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–start-gruppe ${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

Til DPC++-grænseflader med dynamisk linking på Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
F.eksample, opbygning/dynamisk sammenkobling af main.cpp med ilp64-grænseflader og TBB-tråd:
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

Til DPC++-grænseflader med statisk linking på 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
F.eksample, der bygger/statisk forbinder main.cpp med ilp64-grænseflader og TBB-tråding:
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_core.lib mkl_tbb_core.lib .lib OpenCL.lib tbb.lib

Til DPC++-grænseflader med dynamiske links 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
F.eksample, opbygning/dynamisk sammenkobling af main.cpp med ilp64-grænseflader og TBB-tråd:
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

Til C/Fortran-grænseflader med OpenMP Offload Support
Brug C/Fotran Intel® oneAPI Math Kernel Library-grænseflader med OpenMP-offload-funktion til GPU'en.
Se C OpenMP Offload Developer Guide for flere detaljer om denne funktion.
Tilføj følgende ændringer til C/Fortran oneMKL kompilerings-/linklinjerne for at aktivere OpenMP-offload-funktionen til GPU:

  • Yderligere kompilerings-/linkmuligheder: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
  • Yderligere oneMKL-bibliotek: oneMKL DPC++-bibliotek

F.eksample, opbygning/dynamisk sammenkobling af main.cpp på Linux med ilp64-grænseflader og OpenMP-tråding:
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
For alle andre understøttede konfigurationer, se Intel® oneAPI Math Kernel Library Link Line Advisor.

Find mere

Ressource: Beskrivelse

Selvstudium: Brug af Intel® oneAPI Math Kernel Library til Matrix Multiplikation:

  • Tutorial – C Sprog
  • Tutorial – Fortran Language

Denne vejledning demonstrerer, hvordan du kan bruge oneMKL til at multiplicere matricer, måle ydeevnen af ​​matrixmultiplikation og kontrollere trådning.

Intel® oneAPI Math Kernel Library (oneMKL) Release Notes kontrollerer trådning.
Udgivelsesnoterne indeholder oplysninger, der er specifikke for den seneste udgivelse af oneMKL, inklusive nye og ændrede funktioner. Udgivelsesnoterne indeholder links til de vigtigste onlineinformationsressourcer relateret til udgivelsen. Du kan også finde information om:

  • Hvad er nyt i udgivelsen
  • Produktets indhold
  • Indhentning af teknisk support
  • Licens definitioner

Intel® oneAPI Math Kernel Library
Intel® oneAPI Math Kernel Library (oneMKL) produktsiden. Se denne side for support og online dokumentation.

Intel® oneAPI Math Kernel Library Kogebog
Intel® oneAPI Math Kernel Library indeholder mange rutiner, der hjælper dig med at løse forskellige numeriske problemer, såsom multiplikation af matricer, løsning af et ligningssystem og udførelse af en Fourier-transformation.

Bemærkninger til Intel® oneAPI Math Kernel Library Vector Statistics
Dette dokument indeholder en overview, en brugsmodel og testresultater af tilfældige talgeneratorer inkluderet i VS.

Intel® oneAPI Math Kernel Library Vector Statistics Random Number Generator Performance Data
Ydeevnedata opnået ved hjælp af vektorstatistik (VS) tilfældig talgenerator (RNG) inklusive CPE (ure pr. element) måleenhed, grundlæggende tilfældige talgeneratorer (BRNG), genererede distributionsgeneratorer og længden af ​​genererede vektorer.

Intel® oneAPI Math Kernel Library Vector Mathematics Ydeevne og nøjagtighedsdata
Vector Mathematics (VM) beregner elementære funktioner på vektorargumenter. VM inkluderer et sæt meget optimerede implementeringer af beregningsmæssigt dyre matematiske kernefunktioner (power, trigonometrisk, eksponentiel, hyperbolsk og andre), der opererer på vektorer.

Application Notes for Intel® oneAPI Math Kernel Library Summary Statistics
Resuméstatistik er en underkomponent af vektorstatistikdomænet i Intel® oneAPI Math Kernel Library. Resumé Statistik giver dig funktioner til indledende statistisk analyse og tilbyder løsninger til parallel bearbejdning af multi-dimensionelle datasæt.

LAPACK Eksamples
Dette dokument indeholder kode examples for oneMKL LAPACK (Linear Algebra PACKage) rutiner.

Meddelelser og ansvarsfraskrivelser
Software og arbejdsbelastninger, der bruges i ydeevnetest, er muligvis kun blevet optimeret til ydeevne på Intel-mikroprocessorer. Ydeevnetest, såsom SYSmark og MobileMark, måles ved hjælp af specifikke computersystemer, komponenter, software, operationer og funktioner. Enhver ændring af nogen af ​​disse faktorer kan få resultaterne til at variere. Du bør konsultere andre oplysninger og ydeevnetest for at hjælpe dig med fuldt ud at evaluere dine påtænkte køb, herunder produktets ydeevne, når det kombineres med andre produkter. For mere fuldstændig information besøg www.intel.com/benchmarks.
Intel-teknologier kan kræve aktiveret hardware, software eller service-aktivering.
Intet produkt eller komponent kan være helt sikkert.
Dine omkostninger og resultater kan variere.
© Intel Corporation. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Andre navne og mærker kan hævdes som andres ejendom.

Produkt- og ydeevneoplysninger
Ydeevnen varierer efter brug, konfiguration og andre faktorer. Lær mere på www.Intel.com/PerformanceIndex.
Bemærk revision #20201201
Ingen licens (udtrykt eller underforstået, ved estoppel eller på anden måde) til nogen intellektuel ejendomsret er givet af dette dokument.
De beskrevne produkter kan indeholde designfejl eller fejl kendt som errata, som kan få produktet til at afvige fra offentliggjorte specifikationer. Aktuelle karakteriserede errata er tilgængelige på anmodning.
Intel fraskriver sig alle udtrykkelige og underforståede garantier, herunder uden begrænsning de underforståede garantier for salgbarhed, egnethed til et bestemt formål og ikke-krænkelse, såvel som enhver garanti, der opstår som følge af ydeevne, handel eller brug i handelen.

Dokumenter/ressourcer

intel oneAPI Math Kernel Library [pdfBrugervejledning
oneAPI Math Kernel Library, Math Kernel Library, Kernel Library, Library

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *