Biblioteca del nucli matemàtic intel oneAPI
Comenceu amb Intel® oneAPI Math Kernel Library
La biblioteca Intel® oneAPI Math Kernel (oneMKL) us ajuda a aconseguir el màxim rendiment amb una biblioteca de computació matemàtica de rutines molt optimitzades i molt paral·lelisades per a CPU i GPU. La biblioteca té interfícies C i Fortran per a la majoria de rutines a la CPU i interfícies DPC++ per a algunes rutines tant a la CPU com a la GPU. Podeu trobar suport complet per a diverses operacions matemàtiques en diverses interfícies, com ara:
Per a C i Fortran a la CPU
- Àlgebra lineal
- Transformada ràpida de Fourier (FFT)
- Matemàtiques vectorials
- Solucionadors dispersos directes i iteratius
- Generadors de nombres aleatoris
Per a DPC++ a CPU i GPU (consulteu la Biblioteca del nucli matemàtic Intel® oneAPI: Referència per a desenvolupadors de dades paral·lels C++ per obtenir més detalls).
- Àlgebra lineal
- BLAS
- Funcionalitat BLAS escassa seleccionada
- Funcionalitat LAPACK seleccionada
- Transformada ràpida de Fourier (FFT)
- 1D, 2D i 3D
- Generadors de nombres aleatoris
- Funcionalitat seleccionada
- Funcionalitat de matemàtiques vectorials seleccionada
Abans de començar
Visiteu la pàgina de notes de la versió per obtenir els problemes coneguts i la informació més actualitzada.
Visiteu la pàgina de Requisits del sistema de la biblioteca del nucli matemàtic Intel® oneAPI per obtenir els requisits del sistema.
Visiteu la secció Introducció amb els requisits del compilador Intel® oneAPI DPC++/C++ per al compilador DPC++.
Pas 1: instal·leu Intel® oneAPI Math Kernel Library
Baixeu Intel® oneAPI Math Kernel Library des de l'Intel® oneAPI Base Toolkit.
Per a les distribucions de Python, consulteu Instal·lació de la distribució Intel® per a les biblioteques de rendiment Python* i Intel® amb pip i PyPI.
Per a les distribucions de Python, tingueu en compte la limitació següent:
El paquet de desenvolupament oneMKL (mkl-devel) per a la distribució PIP a Linux* i macOS* no proporciona enllaços simbòlics de biblioteques dinàmiques (per obtenir més informació, vegeu el número 5919 de PIP GitHub).
En el cas d'un enllaç de biblioteca dinàmica o única dinàmica amb el paquet de desenvolupament oneMKL (per a més informació vegeu OneMKL Link Line Advisor ) heu de modificar la línia d'enllaç amb els noms complets i les versions de les biblioteques oneMKL.
Consulteu la biblioteca Intel® oneAPI Math Kernel i l'eina pkg-config per obtenir informació sobre la compilació i l'enllaç amb l'eina pkg-config.
línia d'enllaç oneMKL exampfitxer amb el conjunt d'eines base oneAPI mitjançant enllaços simbòlics:
- 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
La línia d'enllaç oneMKL exampfitxer amb el paquet de desenvolupament PIP mitjançant noms complets i versions de biblioteques: 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 -liothread5 - -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
Pas 2: seleccioneu una funció o rutina
Seleccioneu una funció o rutina de oneMKL que s'adapti millor al vostre problema. Utilitzeu aquests recursos:
Enllaç de recursos: Continguts
Guia per a desenvolupadors oneMKL per a Linux*
Guia per a desenvolupadors oneMKL per a Windows*
Guia per a desenvolupadors oneMKL per a macOS*
La Guia per a desenvolupadors conté informació detallada sobre diversos temes, com ara:
- Compilar i enllaçar aplicacions
- Creació de DLL personalitzades
- Enfilar
- Gestió de la memòria
Referència per a desenvolupadors oneMKL - C
Language oneMKL Developer Reference – Fortran Language
Referència per a desenvolupadors oneMKL: llenguatge DPC++
- La Referència del desenvolupador (en formats C, Fortran i DPC++) conté descripcions detallades de les funcions i interfícies per a tots els dominis de la biblioteca.
Assessor de recerca de funcions de la biblioteca del nucli matemàtic Intel® oneAPI
- Utilitzeu l'assessor de recerca de funcions LAPACK per explorar rutines LAPACK que són útils per a un problema concret. Per example, si especifiqueu una operació com:
- Tipus de rutina: Computacional
- Problema computacional: factorització ortogonal
- Tipus de matriu: general
- Funcionament: realitzar la factorització QR
Pas 3: Enllaceu el vostre codi
Utilitzeu l'assessor de línia d'enllaç oneMKL per configurar l'ordre d'enllaç segons les característiques del vostre programa.
Algunes limitacions i requisits addicionals:
La biblioteca de nucli matemàtic Intel® oneAPI per a DPC++ només admet l'ús de la biblioteca d'interfície mkl_intel_ilp64 i el fil seqüencial o TBB.
Per a interfícies DPC++ amb enllaç estàtic a Linux
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 ${MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–start-group ${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
Per example, construint/enllaçant estàticament main.cpp amb interfícies ilp64 i threading TBB:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I${MKLROOT}/inclou main.cpp $
{MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–start-group ${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
Per a interfícies DPC++ amb enllaç dinàmic a Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
Per example, creant/enllaçant dinàmicament main.cpp amb interfícies ilp64 i threading TBB:
icpx -fsycl -DMKL_ILP64 -I${MKLROOT}/inclou main.cpp -L${MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_tbb_thread -lmkl_tbb_thread -lmkl_core -Oldlmlthclt -Oldlmlthclt
Per a interfícies DPC++ amb enllaç estàtic a 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
Per example, construint/enllaçant estàticament main.cpp amb interfícies ilp64 i threading TBB:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I”%MKLROOT%\include” main.cpp”%MKLROOT%”\lib\intel64\mkl_sycl.lib mkl_intel_ilp_ilp64.libb_mkl_sycl. .lib OpenCL.lib tbb.lib
Per a interfícies DPC++ amb enllaç dinàmic a 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
Per example, creant/enllaçant dinàmicament main.cpp amb interfícies ilp64 i threading TBB:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I”%MKLROOT%\include” main.cpp “%MKLROOT%”\lib\intel64\mkl_sycl_dll.lib mkl_intel_intel_dll_libth_l_lp64_mkl_intel_dll_libkrea tbb .lib sycl.lib OpenCL.lib
Per a interfícies C/Fortran amb suport de descàrrega d'OpenMP
Utilitzeu les interfícies C/Fotran Intel® oneAPI Math Kernel Library amb la funció de descàrrega OpenMP a la GPU.
Consulteu la Guia per a desenvolupadors de C OpenMP Offload per obtenir més detalls sobre aquesta funció.
Afegiu els canvis següents a les línies de compilació/enllaç C/Fortran oneMKL per habilitar la funció de descàrrega d'OpenMP a la GPU:
- Opcions addicionals de compilació/enllaç: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
- Biblioteca oneMKL addicional: biblioteca oneMKL DPC++
Per example, creant/enllaçant dinàmicament main.cpp a Linux amb interfícies ilp64 i fils OpenMP:
icx -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl -DMKL_ILP64 -m64 -I$(MKLROOT)/inclou main.cpp L${MKLROOT}/lib/intel64 - lmkl_sycl -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lsycl -lOpenCL -lstdc++ -lpthread -lm -ldl
Per a totes les altres configuracions admeses, vegeu Intel® oneAPI Math Kernel Library Link Line Advisor.
Troba més
Recurs: Descripció
Tutorial: Ús de la biblioteca de nucli matemàtic Intel® oneAPI per a la multiplicació de matrius:
- Tutorial – Llenguatge C
- Tutorial – Fortran Language
Aquest tutorial mostra com podeu utilitzar oneMKL per multiplicar matrius, mesurar el rendiment de la multiplicació de matrius i controlar el fil.
La biblioteca de nucli matemàtic Intel® oneAPI (oneMKL) controla el fil de notes de la versió.
Les notes de la versió contenen informació específica de la darrera versió de oneMKL, incloses les funcions noves i modificades. Les notes de la versió inclouen enllaços als principals recursos d'informació en línia relacionats amb la versió. També podeu trobar informació sobre:
- Què hi ha de nou al llançament
- Continguts del producte
- Obtenció de suport tècnic
- Definicions de llicència
Biblioteca Intel® oneAPI Math Kernel
La pàgina del producte Intel® oneAPI Math Kernel Library (oneMKL). Consulteu aquesta pàgina per obtenir suport i documentació en línia.
Llibre de cuina de la biblioteca del nucli matemàtic Intel® oneAPI
La biblioteca Intel® oneAPI Math Kernel conté moltes rutines per ajudar-vos a resoldre diversos problemes numèrics, com ara multiplicar matrius, resoldre un sistema d'equacions i realitzar una transformada de Fourier.
Notes per a les estadístiques vectorials de la biblioteca del nucli matemàtic Intel® oneAPI
Aquest document inclou un sobreview, un model d'ús i resultats de proves de generadors de nombres aleatoris inclosos a VS.
Dades de rendiment del generador de números aleatoris d'estadístiques vectorials de la biblioteca del nucli matemàtic Intel® oneAPI
Dades de rendiment obtingudes mitjançant el generador de nombres aleatoris (RNG) d'estadístiques vectorials (VS) incloent unitat de mesura CPE (rellotges per element), generadors bàsics de nombres aleatoris (BRNG), generadors de distribució generada i longitud dels vectors generats.
Dades de rendiment i precisió de matemàtiques vectorials de la biblioteca del nucli matemàtic Intel® oneAPI
Matemàtiques vectorials (VM) calcula funcions elementals en arguments vectorials. VM inclou un conjunt d'implementacions altament optimitzades de funcions matemàtiques bàsiques computacionalment costoses (potència, trigonomètrica, exponencial, hiperbòlica i altres) que operen en vectors.
Notes d'aplicació per a les estadístiques de resum de la biblioteca del nucli matemàtic Intel® oneAPI
Les estadístiques de resum és un subcomponent del domini d'estadístiques vectorials de la biblioteca del nucli matemàtic Intel® oneAPI. Summary Statistics us ofereix funcions per a l'anàlisi estadística inicial i ofereix solucions per al processament paral·lel de conjunts de dades multidimensionals.
LAPACK Examples
Aquest document proporciona codi exampfitxers per a les rutines oneMKL LAPACK (Paquet d'àlgebra lineal).
Avisos i exempcions de responsabilitat
És possible que el programari i les càrregues de treball utilitzats a les proves de rendiment s'hagin optimitzat per al rendiment només als microprocessadors Intel. Les proves de rendiment, com ara SYSmark i MobileMark, es mesuren mitjançant sistemes informàtics, components, programari, operacions i funcions específics. Qualsevol canvi en algun d'aquests factors pot fer que els resultats varien. Heu de consultar altra informació i proves de rendiment per ajudar-vos a avaluar completament les vostres compres previstes, inclòs el rendiment d'aquest producte quan es combina amb altres productes. Per a informació més completa visiteu www.intel.com/benchmarks.
Les tecnologies Intel poden requerir l'activació de maquinari, programari o servei activat.
Cap producte o component pot ser absolutament segur.
Els vostres costos i resultats poden variar.
© Intel Corporation. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Altres noms i marques es poden reclamar com a propietat d'altres.
Informació de producte i rendiment
El rendiment varia segons l'ús, la configuració i altres factors. Més informació a www.Intel.com/PerformanceIndex.
Revisió de l'avís #20201201
Aquest document no concedeix cap llicència (expressa o implícita, per preclusió o d'una altra manera) sobre cap dret de propietat intel·lectual.
Els productes descrits poden contenir defectes de disseny o errors coneguts com a errates que poden provocar que el producte es desviï de les especificacions publicades. Les errates caracteritzades actuals estan disponibles a petició.
Intel renuncia a totes les garanties explícites i implícites, incloses, sense limitació, les garanties implícites de comerciabilitat, adequació per a un propòsit particular i no infracció, així com qualsevol garantia derivada del curs de rendiment, el curs de la negociació o l'ús en el comerç.
Documents/Recursos
![]() |
Biblioteca del nucli matemàtic intel oneAPI [pdfGuia de l'usuari Biblioteca del nucli matemàtic oneAPI, Biblioteca del nucli matemàtic, Biblioteca del nucli, Biblioteca |