intel oneAPI Math Kernel Library
Te begjinnen mei Intel® oneAPI Math Kernel Library
De Intel® oneAPI Math Kernel Library (oneMKL) helpt jo maksimale prestaasjes te berikken mei in wiskundige komputerbibleteek fan heul optimalisearre, wiidweidich parallelisearre routines foar CPU en GPU. De bibleteek hat C- en Fortran-ynterfaces foar de measte routines op CPU, en DPC ++-ynterfaces foar guon routines op sawol CPU as GPU. Jo kinne wiidweidige stipe fine foar ferskate wiskundige operaasjes yn ferskate ynterfaces, ynklusyf:
Foar C en Fortran op CPU
- Lineêre algebra
- Fast Fourier Transforms (FFT)
- Vector wiskunde
- Direkte en iterative sparse solvers
- Willekeurige getallengenerators
Foar DPC++ op CPU en GPU (ferwize nei de Intel® oneAPI Math Kernel Library—Data Parallel C++ Developer Reference foar mear details.)
- Lineêre algebra
- BLAS
- Selektearre Sparse BLAS funksjonaliteit
- Selektearre LAPACK funksjonaliteit
- Fast Fourier Transforms (FFT)
- 1D, 2D en 3D
- Willekeurige getallengenerators
- Selekteare funksjonaliteit
- Selektearre Vector Math funksjonaliteit
Foardat jo begjinne
Besykje de side Release Notes foar de bekende problemen en meast aktuele ynformaasje.
Besykje de Intel® oneAPI Math Kernel Library System Requirements side foar systeemeasken.
Besykje de Begjin mei de Intel® oneAPI DPC++/C++ Compiler foar DPC++ Compiler easken.
Stap 1: Ynstallearje Intel® oneAPI Math Kernel Library
Download Intel® oneAPI Math Kernel Library fan 'e Intel® oneAPI Base Toolkit.
Foar Python-distribúsjes, ferwize nei Ynstallearje fan de Intel®-distribúsje foar Python * en Intel® Performance Libraries mei pip en PyPI.
Foar Python-distribúsjes, note de folgjende beheining:
It oneMKL-ûntwikkelingspakket (mkl-devel) foar PIP-distribúsje op Linux * en macOS * leveret gjin dynamyske bibleteken-symlinks (foar mear ynformaasje sjoch PIP GitHub-útjefte #5919).
Yn it gefal fan dynamyske of inkele dynamyske bibleteek keppele mei oneMKL devel pakket (foar mear ynformaasje sjoch oneMKL Link Line Advisor) Jo moatte wizigje link line mei oneMKL biblioteken folsleine nammen en ferzjes.
Ferwize nei Intel® oneAPI Math Kernel Library en pkg-config-ark foar ynformaasje oer kompilearjen en keppeljen mei it pkg-config-ark.
oneMKL link line example mei de oneAPI Base Toolkit fia 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 link line example mei PIP-ûntwikkelingspakket fia folsleine nammen en ferzjes fan biblioteken: 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: Selektearje in funksje of routine
Selektearje in funksje of routine fan oneMKL dy't it bêste geskikt is foar jo probleem. Brûk dizze boarnen:
Resource Link: Ynhâld
oneMKL Developer Guide foar Linux *
oneMKL Developer Guide foar Windows *
oneMKL Developer Guide foar macOS *
De Developer Guide befettet detaillearre ynformaasje oer ferskate ûnderwerpen, ynklusyf:
- Kompilearjen en keppeljen fan applikaasjes
- Bouwe oanpaste DLL's
- Threading
- Unthâld Management
oneMKL Developer Reference - C
Taal oneMKL Developer Reference - Fortran Language
oneMKL Developer Reference - DPC ++ Taal
- De referinsje foar ûntwikkelders (yn C-, Fortran- en DPC++-formaten) befettet detaillearre beskriuwingen fan 'e funksjes en ynterfaces foar alle biblioteekdomeinen.
Intel® oneAPI Math Kernel Library Function Finding Advisor
- Brûk de LAPACK Function Finding Advisor om LAPACK-routines te ferkennen dy't nuttich binne foar in bepaald probleem. Bygelyksample, as jo in operaasje oantsjutte as:
- Routine type: Computational
- Computational probleem: Ortogonale faktorisaasje
- Matrix type: Algemien
- Operaasje: QR-faktorisaasje útfiere
Stap 3: Keppelje jo koade
Brûk de oneMKL Link Line Advisor om it keppeling kommando te konfigurearjen neffens jo programmafunksjes.
Guon beheiningen en oanfoljende easken:
Intel® oneAPI Math Kernel Library foar DPC++ stipet allinich it brûken fan de mkl_intel_ilp64 ynterfacebibleteek en sekwinsjele of TBB-threading.
Foar DPC ++ ynterfaces mei statyske keppeling op Linux
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 ${MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–start-groep ${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
Bygelyksample, bouwen/statysk ferbinen fan main.cpp mei ilp64-ynterfaces 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,–start-groep ${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
Foar DPC ++ ynterfaces mei dynamyske keppeling op Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
Bygelyksample, bouwen/dynamysk keppeljen fan main.cpp mei ilp64-ynterfaces 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 -ld
Foar DPC ++ ynterfaces mei statyske keppeling 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
Bygelyksample, bouwen/statysk ferbinen fan main.cpp mei ilp64-ynterfaces 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_core.lib mkl_tbb_thread.lib .lib OpenCL.lib tbb.lib
Foar DPC ++ ynterfaces mei dynamyske keppeling 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
Bygelyksample, bouwen/dynamysk keppeljen fan main.cpp mei ilp64-ynterfaces 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_lib.kl_core .lib sycl.lib OpenCL.lib
Foar C / Fortran-ynterfaces mei OpenMP Offload Support
Brûk de C/Fotran Intel® oneAPI Math Kernel Library ynterfaces mei OpenMP-offloadfunksje nei de GPU.
Sjoch de C OpenMP Offload Developer Guide foar mear details oer dizze funksje.
Foegje de folgjende wizigingen ta oan 'e C / Fortran oneMKL kompilearje / keppele rigels om OpenMP-offloadfunksje nei GPU yn te skeakeljen:
- Oanfoljende kompilaasje-/keppelingsopsjes: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
- Oanfoljende oneMKL bibleteek: oneMKL DPC ++ bibleteek
Bygelyksample, bouwen / dynamysk keppeljen fan main.cpp op Linux mei ilp64-ynterfaces 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
Foar alle oare stipe konfiguraasjes, sjoch Intel® oneAPI Math Kernel Library Link Line Advisor.
Mear fine
Boarne: Beskriuwing
Tutorial: Intel® oneAPI Math Kernel Library brûke foar matrixmultiplikaasje:
- Tutorial - C Taal
- Tutorial - Fortran Taal
Dizze tutorial lit sjen hoe't jo oneMKL kinne brûke om matriksen te fermannichfâldigjen, de prestaasjes fan matrixfermannichfâldigje te mjitten en threading te kontrolearjen.
Intel® oneAPI Math Kernel Library (oneMKL) Release Notes kontrôle threading.
De release-notysjes befetsje ynformaasje spesifyk foar de lêste release fan oneMKL ynklusyf nije en feroare funksjes. De release-notysjes omfetsje keppelings nei wichtichste online ynformaasjeboarnen yn ferbân mei de frijlitting. Jo kinne ek ynformaasje fine oer:
- Wat is nij yn 'e release
- Produkt ynhâld
- It krijen fan technyske stipe
- Lisinsje definysjes
Intel® oneAPI Math Kernel Library
De produktpagina fan Intel® oneAPI Math Kernel Library (oneMKL). Sjoch dizze side foar stipe en online dokumintaasje.
Intel® oneAPI Math Kernel Library Kookboek
De Intel® oneAPI Math Kernel Library befettet in protte routines om jo te helpen ferskate numerike problemen op te lossen, lykas it fermannichfâldigjen fan matriksen, it oplossen fan in systeem fan fergelikingen, en it útfieren fan in Fourier-transformaasje.
Notysjes foar Intel® oneAPI Math Kernel Library Vector Statistics
Dit dokumint befettet in oerview, In gebrûksmodel en testresultaten fan willekeurige getalgenerators opnommen yn VS.
Intel® oneAPI Math Kernel Library Vector Statistics Random Number Generator Performance Data
Prestaasjegegevens krigen mei vector statistyk (VS) willekeurige getallengenerator (RNG) ynklusyf CPE (klokken per elemint) ienheid fan maatregel, basis willekeurige getallengenerators (BRNG), oanmakke distribúsjegenerators, en lingte fan oanmakke vectoren.
Intel® oneAPI Math Kernel Library Vector Mathematics Performance and Accuracy Data
Vector Mathematics (VM) berekkent elemintêre funksjes op vector arguminten. VM omfettet in set fan heul optimalisearre ymplemintaasjes fan komputereel djoere wiskundige kearnfunksjes (krêft, trigonometrysk, eksponinsjele, hyperbolyske, en oaren) dy't wurkje op fektors.
Applikaasjenotysjes foar Intel® oneAPI Math Kernel Library Summary Statistics
Gearfetting Statistics is in subkomponint fan it Vector Statistics domein fan Intel® oneAPI Math Kernel Library. Gearfetting Statistics jout jo mei funksjes foar inisjele statistyske analyze, en biedt oplossings foar parallel ferwurkjen fan multi-dimensionale datasets.
LAPAK Examples
Dit dokumint jout koade examples foar oneMKL LAPACK (Linear Algebra PACKage) routines.
Meidielings en disclaimers
Software en workloads dy't brûkt wurde yn prestaasjestests binne mooglik optimalisearre foar prestaasjes allinich op Intel-mikroprozessors. Prestaasjetests, lykas SYSmark en MobileMark, wurde mjitten mei spesifike kompjûtersystemen, komponinten, software, operaasjes en funksjes. Elke feroaring yn ien fan dy faktoaren kin feroarsaakje dat de resultaten fariearje. Jo moatte oare ynformaasje en prestaasjestests rieplachtsje om jo te helpen by it folslein evaluearjen fan jo betochte oankeapen, ynklusyf de prestaasjes fan dat produkt yn kombinaasje mei oare produkten. Foar mear folsleine ynformaasje besykje www.intel.com/benchmarks.
Intel-technologyen kinne aktivearring fan hardware, software of tsjinst fereaskje.
Gjin produkt of komponint kin absolút feilich wêze.
Jo kosten en resultaten kinne ferskille.
© Intel Corporation. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.
Produkt- en prestaasjesynformaasje
Prestaasje fariearret troch gebrûk, konfiguraasje en oare faktoaren. Learje mear op www.Intel.com/PerformanceIndex.
Notysjeferzje #20201201
Gjin lisinsje (ekspresje of ymplisearre, troch estoppel of oars) oan yntellektuele eigendomsrjochten wurdt ferliend troch dit dokumint.
De beskreaune produkten kinne ûntwerpdefekten befetsje as flaters bekend as errata dy't kinne feroarsaakje dat it produkt ôfwykt fan publisearre spesifikaasjes. Aktuele karakterisearre errata binne beskikber op oanfraach.
Intel ûntkent alle útdruklike en ymplisearre garânsjes, ynklusyf sûnder beheining, de ymplisite garânsjes fan hannelberens, fitness foar in bepaald doel, en net-ynbreuk, lykas alle garânsjes dy't fuortkomme út rin fan prestaasjes, rin fan hannel, of gebrûk yn hannel.
Dokuminten / Resources
![]() |
intel oneAPI Math Kernel Library [pdf] Brûkersgids oneAPI Math Kernel Library, Math Kernel Library, Kernel Library, Library |