intel oneAPI Math Kernel-bibliotheek
Aan de slag met Intel® oneAPI Math Kernel Library
De Intel® oneAPI Math Kernel Library (oneMKL) helpt u maximale prestaties te bereiken met een wiskundige computerbibliotheek met sterk geoptimaliseerde, uitgebreid geparalleliseerde routines voor CPU en GPU. De bibliotheek heeft C- en Fortran-interfaces voor de meeste routines op CPU, en DPC++-interfaces voor sommige routines op zowel CPU als GPU. U kunt uitgebreide ondersteuning vinden voor verschillende wiskundige bewerkingen in verschillende interfaces, waaronder:
Voor C en Fortran op CPU
- Lineaire algebra
- Snelle Fourier-transformaties (FFT)
- Vectorwiskunde
- Directe en iteratieve schaarse oplossers
- Willekeurige getallengeneratoren
Voor DPC++ op CPU en GPU (raadpleeg de Intel® oneAPI Math Kernel Library—Data Parallel C++ Developer Reference voor meer details.)
- Lineaire algebra
- BLAAS
- Geselecteerde Sparse BLAS-functionaliteit
- Geselecteerde LAPACK-functionaliteit
- Snelle Fourier-transformaties (FFT)
- 1D, 2D en 3D
- Willekeurige getallengeneratoren
- Geselecteerde functionaliteit
- Geselecteerde Vector Math-functionaliteit
Voordat u begint
Bezoek de pagina Release-opmerkingen voor de bekende problemen en de meest actuele informatie.
Bezoek de pagina Intel® oneAPI Math Kernel Library Systeemvereisten voor systeemvereisten.
Bezoek de Aan de slag met de Intel® oneAPI DPC++/C++ Compiler voor de DPC++ Compiler-vereisten.
Stap 1: Installeer Intel® oneAPI Math Kernel Library
Download Intel® oneAPI Math Kernel Library vanuit de Intel® oneAPI Base Toolkit.
Voor Python-distributies raadpleegt u De Intel®-distributie voor Python* en Intel® Performance Libraries installeren met pip en PyPI.
Houd bij Python-distributies rekening met de volgende beperking:
Het oneMKL devel-pakket (mkl-devel) voor PIP-distributie op Linux* en macOS* biedt geen symlinks voor dynamische bibliotheken (voor meer informatie zie PIP GitHub issue #5919).
In het geval van een dynamische of enkelvoudige dynamische bibliotheekkoppeling met het oneMKL ontwikkelpakket (voor meer informatie zie oneMKL Link Line Advisor ) moet u de linklijn wijzigen met de volledige namen en versies van de oneMKL-bibliotheken.
Raadpleeg Intel® oneAPI Math Kernel Library en pkg-config tool voor informatie over het compileren en koppelen met de pkg-config tool.
oneMKL-linklijn exampbestand met de oneAPI Base Toolkit via 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
De oneMKL-linklijn exampbestand met PIP-ontwikkelpakket via volledige namen en versies van bibliotheken: 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
Stap 2: Selecteer een functie of routine
Selecteer een functie of routine van oneMKL die het beste bij uw probleem past. Gebruik deze bronnen:
Bronlink: Inhoud
oneMKL-ontwikkelaarshandleiding voor Linux*
oneMKL-ontwikkelaarshandleiding voor Windows*
oneMKL-ontwikkelaarshandleiding voor macOS*
De Developer Guide bevat gedetailleerde informatie over verschillende onderwerpen, waaronder:
- Applicaties samenstellen en koppelen
- Aangepaste DLL's bouwen
- Rijgen
- Geheugenbeheer
oneMKL-ontwikkelaarsreferentie – C
Taal oneMKL-ontwikkelaarsreferentie – Fortran-taal
oneMKL Developer Reference – DPC++ Taal
- De Developer Reference (in de formaten C, Fortran en DPC++) bevat gedetailleerde beschrijvingen van de functies en interfaces voor alle bibliotheekdomeinen.
Intel® oneAPI Math Kernel-bibliotheek Functiezoekadviseur
- Gebruik de LAPACK Function Finding Advisor om LAPACK-routines te verkennen die nuttig zijn voor een bepaald probleem. Bijvoorbeeldample, als u een bewerking opgeeft als:
- Routinetype: computationeel
- Computationeel probleem: orthogonale factorisatie
- Matrixtype: Algemeen
- Bewerking: Voer QR-factorisatie uit
Stap 3: Koppel uw code
Gebruik de oneMKL Link Line Advisor om de linkopdracht te configureren volgens uw programmafuncties.
Enkele beperkingen en aanvullende vereisten:
Intel® oneAPI Math Kernel Library voor DPC++ ondersteunt alleen het gebruik van de mkl_intel_ilp64 interfacebibliotheek en sequentiële of TBB-threading.
Voor DPC++-interfaces met statische koppeling op Linux
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 ${MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–startgroep ${MKLROOT}/lib/intel64/libmkl_intel_ilp64.a ${MKLROOT}/lib/intel64/
libmkl_ .a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,–eindgroep -lsycl -lOpenCL -lpthread -ldl -lm
Bijvoorbeeldample, main.cpp bouwen/statisch koppelen met ilp64-interfaces en TBB-threading:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I${MKLROOT}/include main.cpp $
{MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–startgroep ${MKLROOT}/lib/intel64/
libmkl_intel_ilp64.a ${MKLROOT}/lib/intel64/libmkl_tbb_thread.a ${MKLROOT}/lib/intel64/
libmkl_core.a -Wl,–eindgroep -L${TBBROOT}/lib/intel64/gcc4.8 -ltbb -lsycl -lOpenCL -lpthread -lm -ldl
Voor DPC++-interfaces met dynamische koppeling op Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
Bijvoorbeeldample, main.cpp bouwen/dynamisch koppelen met ilp64-interfaces en 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
Voor DPC++-interfaces met statische koppeling op 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
Bijvoorbeeldample, main.cpp bouwen/statisch koppelen met ilp64-interfaces en 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
Voor DPC++-interfaces met dynamische koppeling op 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
Bijvoorbeeldample, main.cpp bouwen/dynamisch koppelen met ilp64-interfaces en 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
Voor C/Fortran-interfaces met OpenMP Offload-ondersteuning
Gebruik de C/Fotran Intel® oneAPI Math Kernel Library-interfaces met OpenMP-offloadfunctie naar de GPU.
Zie de C OpenMP Offload Developer Guide voor meer details over deze functie.
Voeg de volgende wijzigingen toe aan de compileer-/linkregels van C/Fortran oneMKL om de OpenMP-offloadfunctie naar GPU in te schakelen:
- Extra compileer-/linkopties: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
- Extra oneMKL-bibliotheek: oneMKL DPC++-bibliotheek
Bijvoorbeeldample, main.cpp bouwen/dynamisch koppelen op Linux met ilp64-interfaces en 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
Zie Intel® oneAPI Math Kernel Library Link Line Advisor voor alle andere ondersteunde configuraties.
Vind meer
Bron: Beschrijving
Zelfstudie: Intel® oneAPI Math Kernel-bibliotheek gebruiken voor matrixvermenigvuldiging:
- Tutorial – C Taal
- Tutorial – Fortran Taal
Deze tutorial laat zien hoe u oneMKL kunt gebruiken om matrices te vermenigvuldigen, de prestaties van matrixvermenigvuldiging te meten en de threading te controleren.
Intel® oneAPI Math Kernel Library (oneMKL) Releaseopmerkingen regelen threading.
De releaseopmerkingen bevatten informatie die specifiek is voor de nieuwste release van oneMKL, inclusief nieuwe en gewijzigde functies. De releaseopmerkingen bevatten links naar de belangrijkste online informatiebronnen met betrekking tot de release. U kunt ook informatie vinden over:
- Wat is er nieuw in de release
- Productinhoud
- Het verkrijgen van technische ondersteuning
- Licentiedefinities
Intel® oneAPI Math Kernel-bibliotheek
De Intel® oneAPI Math Kernel Library (oneMKL)-productpagina. Zie deze pagina voor ondersteuning en online documentatie.
Intel® oneAPI Math Kernel Library-kookboek
De Intel® oneAPI Math Kernel Library bevat veel routines waarmee u verschillende numerieke problemen kunt oplossen, zoals het vermenigvuldigen van matrices, het oplossen van een stelsel vergelijkingen en het uitvoeren van een Fourier-transformatie.
Opmerkingen voor Intel® oneAPI Math Kernel Library Vectorstatistieken
Dit document bevat een overview, een gebruiksmodel en testresultaten van willekeurige nummergeneratoren opgenomen in VS.
Intel® oneAPI Math Kernel Library Vectorstatistieken Prestatiegegevens van de Random Number Generator
Prestatiegegevens verkregen met behulp van vectorstatistieken (VS) willekeurige nummergenerator (RNG), inclusief CPE (klokken per element) maateenheid, standaard willekeurige nummergeneratoren (BRNG), gegenereerde distributiegeneratoren en lengte van gegenereerde vectoren.
Intel® oneAPI Math Kernel Library Vector Wiskunde Prestatie- en nauwkeurigheidsgegevens
Vectorwiskunde (VM) berekent elementaire functies op basis van vectorargumenten. VM bevat een reeks sterk geoptimaliseerde implementaties van computationeel dure wiskundige kernfuncties (macht, trigonometrisch, exponentieel, hyperbolisch en andere) die op vectoren werken.
Toepassingsopmerkingen voor Intel® oneAPI Math Kernel Library Samenvatting Statistieken
Samenvatting Statistieken is een subcomponent van het Vector Statistics-domein van Intel® oneAPI Math Kernel Library. Samenvatting Statistieken biedt u functies voor initiële statistische analyses en biedt oplossingen voor parallelle verwerking van multidimensionale datasets.
LAPACK Bijvampde
Dit document bevat code exampbestanden voor oneMKL LAPACK-routines (Linear Algebra PACKage).
Kennisgevingen en disclaimers
Software en werkbelastingen die in prestatietests worden gebruikt, zijn mogelijk alleen geoptimaliseerd voor prestaties op Intel-microprocessors. Prestatietests, zoals SYSmark en MobileMark, worden gemeten met behulp van specifieke computersystemen, componenten, software, bewerkingen en functies. Elke verandering in een van deze factoren kan ertoe leiden dat de resultaten variëren. U dient andere informatie en prestatietests te raadplegen om u te helpen bij het volledig evalueren van uw voorgenomen aankopen, inclusief de prestaties van dat product in combinatie met andere producten. Voor meer volledige informatie, bezoek www.intel.com/benchmarks.
Voor Intel-technologieën is mogelijk geactiveerde hardware, software of serviceactivering vereist.
Geen enkel product of onderdeel kan absoluut veilig zijn.
Uw kosten en resultaten kunnen variëren.
© Intel Corporation. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Andere namen en merken kunnen worden geclaimd als eigendom van anderen.
Product- en prestatie-informatie
Prestaties variëren per gebruik, configuratie en andere factoren. Meer informatie op www.Intel.com/PerformanceIndex.
Kennisgeving revisie #20201201
Er wordt met dit document geen licentie (expliciet of impliciet, door uitsluiting of anderszins) op intellectuele eigendomsrechten verleend.
De beschreven producten kunnen ontwerpfouten of fouten bevatten die bekend staan als errata, waardoor het product kan afwijken van de gepubliceerde specificaties. Actuele gekarakteriseerde errata zijn op aanvraag beschikbaar.
Intel wijst alle uitdrukkelijke en impliciete garanties af, inclusief maar niet beperkt tot de impliciete garanties van verkoopbaarheid, geschiktheid voor een bepaald doel en niet-inbreuk, evenals elke garantie die voortvloeit uit de uitvoering, handelswijze of gebruik in de handel.
Documenten / Bronnen
![]() |
intel oneAPI Math Kernel-bibliotheek [pdf] Gebruikershandleiding oneAPI Math Kernel-bibliotheek, Math Kernel-bibliotheek, Kernel-bibliotheek, Bibliotheek |