Biblioteca Intel OneAPI Math Kernel
Comeza coa biblioteca de núcleos matemáticos Intel® oneAPI
A biblioteca Intel® oneAPI Math Kernel (oneMKL) axúdache a acadar o máximo rendemento cunha biblioteca de computación matemática de rutinas altamente optimizadas e amplamente paralelizadas para CPU e GPU. A biblioteca ten interfaces C e Fortran para a maioría das rutinas na CPU e interfaces DPC++ para algunhas rutinas tanto na CPU como na GPU. Podes atopar soporte completo para varias operacións matemáticas en varias interfaces, incluíndo:
Para C e Fortran en CPU
- Álxebra lineal
- Transformadas Rápidas de Fourier (FFT)
- Matemáticas vectoriales
- Solucionadores dispersos directos e iterativos
- Xeradores de números aleatorios
Para DPC++ en CPU e GPU (consulte a Biblioteca de núcleos matemáticos Intel® oneAPI: Referencia para desenvolvedores de datos en paralelo C++ para obter máis detalles).
- Álxebra lineal
- BLAS
- Funcionalidade BLAS escasa seleccionada
- Funcionalidade LAPACK seleccionada
- Transformadas Rápidas de Fourier (FFT)
- 1D, 2D e 3D
- Xeradores de números aleatorios
- Funcionalidade seleccionada
- Funcionalidade de matemática vectorial seleccionada
Antes de Comezar
Visita a páxina de Notas da versión para ver os problemas coñecidos e a información máis actualizada.
Visite a páxina de requisitos do sistema Intel® oneAPI Math Kernel Library para coñecer os requisitos do sistema.
Visite a sección Iniciación co compilador Intel® oneAPI DPC++/C++ para os requisitos do compilador DPC++.
Paso 1: Instale Intel® oneAPI Math Kernel Library
Descarga Intel® oneAPI Math Kernel Library desde Intel® oneAPI Base Toolkit.
Para distribucións de Python, consulte Instalación de Intel® Distribution para Python* e Intel® Performance Libraries con pip e PyPI.
Para as distribucións de Python, teña en conta a seguinte limitación:
O paquete oneMKL devel (mkl-devel) para a distribución PIP en Linux* e macOS* non fornece ligazóns simbólicas de bibliotecas dinámicas (para obter máis información consulte o número 5919 de PIP GitHub).
No caso de ligazóns de bibliotecas dinámicas ou dinámicas únicas co paquete de desenvolvemento oneMKL (para obter máis información consulte OneMKL Link Line Advisor ) debe modificar a liña de ligazóns cos nomes completos e versións das bibliotecas oneMKL.
Consulte a Biblioteca Intel® oneAPI Math Kernel e a ferramenta pkg-config para obter información sobre a compilación e a ligazón coa ferramenta pkg-config.
liña de enlace oneMKL examplieiro co kit de ferramentas base oneAPI mediante ligazóns simbólicas:
- 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
A liña de ligazón oneMKL examplieiro con paquete de desenvolvemento PIP a través de bibliotecas de nomes completos e versións: 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.l1 -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
Paso 2: seleccione unha función ou rutina
Seleccione unha función ou rutina de oneMKL que sexa máis adecuada para o seu problema. Use estes recursos:
Ligazón ao recurso: Contidos
Guía para programadores oneMKL para Linux*
Guía para programadores oneMKL para Windows*
Guía para programadores oneMKL para macOS*
A Guía para programadores contén información detallada sobre varios temas, incluíndo:
- Compilación e vinculación de aplicacións
- Creación de DLL personalizados
- Enhebrado
- Xestión da memoria
Referencia para programadores oneMKL - C
Language oneMKL Referencia para desenvolvedores - Linguaxe Fortran
Referencia para programadores oneMKL: linguaxe DPC++
- A Referencia para programadores (en formatos C, Fortran e DPC++) contén descricións detalladas das funcións e interfaces de todos os dominios da biblioteca.
Asesor de busca de funcións da biblioteca de núcleos matemáticos Intel® oneAPI
- Use o Asesor de busca de funcións LAPACK para explorar as rutinas de LAPACK que sexan útiles para un problema en particular. Por example, se especifica unha operación como:
- Tipo de rutina: Computacional
- Problema computacional: factorización ortogonal
- Tipo de matriz: Xeral
- Operación: realizar a factorización QR
Paso 3: vincula o teu código
Use o oneMKL Link Line Advisor para configurar o comando de ligazón segundo as características do programa.
Algunhas limitacións e requisitos adicionais:
A biblioteca de núcleos matemáticos Intel® oneAPI para DPC++ só admite o uso da biblioteca de interfaces mkl_intel_ilp64 e o subproceso secuencial ou TBB.
Para interfaces DPC++ con ligazón estática en Linux
icpx -fsycl -fsycl-device-code-split=por_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
Por example, construíndo/enlazando estáticamente main.cpp con interfaces ilp64 e threading TBB:
icpx -fsycl -fsycl-device-code-split=por_kernel -DMKL_ILP64 -I${MKLROOT}/include 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
Para interfaces DPC++ con enlace dinámico en Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
Por example, construíndo/enlazando dinámicamente main.cpp con interfaces ilp64 e threading TBB:
icpx -fsycl -DMKL_ILP64 -I${MKLROOT}/include main.cpp -L${MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_tbb_thread -lmkl_tbb_thread -lmkl_core -lmkl_core -ldlmlply
Para interfaces DPC++ con conexión estática en Windows
icpx -fsycl -fsycl-device-code-split=por_kernel -DMKL_ILP64 “%MKLROOT%”\lib\intel64\mkl_sycl.lib
mkl_intel_ilp64.lib mkl_ .lib mkl_core_lib sycl.lib OpenCL.lib
Por example, construíndo/enlazando estáticamente main.cpp con interfaces ilp64 e threading TBB:
icpx -fsycl -fsycl-device-code-split=por_kernel -DMKL_ILP64 -I”%MKLROOT%\include” main.cpp”%MKLROOT%”\lib\intel64\mkl_sycl.lib mkl_intel_ilpl_core.lib_ilp64.lib_mlibklcl_core. .lib OpenCL.lib tbb.lib
Para interfaces DPC++ con conexión dinámica en 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
Por example, construíndo/enlazando dinámicamente main.cpp con interfaces ilp64 e threading TBB:
icpx -fsycl -fsycl-device-code-split=por_kernel -DMKL_ILP64 -I”%MKLROOT%\include” main.cpp “%MKLROOT%”\lib\intel64\mkl_sycl_dll.lib mkl_intel_intel_ilp64l_core. lib tbb .lib sycl.lib OpenCL.lib
Para interfaces C/Fortran con compatibilidade con OpenMP Offload
Use as interfaces C/Fotran Intel® oneAPI Math Kernel Library coa función de descarga OpenMP na GPU.
Consulte a Guía para programadores de C OpenMP Offload para obter máis detalles sobre esta función.
Engade os seguintes cambios ás liñas de compilación/ligazón oneMKL de C/Fortran para activar a función de descarga de OpenMP na GPU:
- Opcións adicionais de compilación/ligazón: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
- Biblioteca oneMKL adicional: biblioteca oneMKL DPC++
Por example, construíndo/enlazando dinámicamente main.cpp en Linux con interfaces ilp64 e subprocesos OpenMP:
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
Para todas as outras configuracións compatibles, consulte Intel® oneAPI Math Kernel Library Link Line Advisor.
Atopar máis
Recurso: Descrición
Tutorial: Uso de Intel® oneAPI Math Kernel Library para a multiplicación de matrices:
- Titoría – Linguaxe C
- Titorial – Linguaxe Fortran
Este titorial mostra como pode usar oneMKL para multiplicar matrices, medir o rendemento da multiplicación de matrices e controlar o fíos.
As notas de versión de Intel® oneAPI Math Kernel Library (oneMKL) controlan o subproceso.
As notas de lanzamento conteñen información específica da última versión de oneMKL, incluíndo funcións novas e modificadas. As notas de publicación inclúen ligazóns aos principais recursos de información en liña relacionados coa versión. Tamén podes atopar información sobre:
- O que hai de novo no lanzamento
- Contidos do produto
- Obtención de soporte técnico
- Definicións de licenza
Biblioteca Intel® oneAPI Math Kernel
A páxina do produto Intel® oneAPI Math Kernel Library (oneMKL). Consulte esta páxina para obter asistencia e documentación en liña.
Libro de receitas da biblioteca de núcleos matemáticos Intel® oneAPI
A biblioteca Intel® oneAPI Math Kernel contén moitas rutinas para axudarche a resolver varios problemas numéricos, como multiplicar matrices, resolver un sistema de ecuacións e realizar unha transformada de Fourier.
Notas para as estatísticas vectoriales da biblioteca de núcleos matemáticos Intel® oneAPI
Este documento inclúe un sobreview, un modelo de uso e resultados das probas de xeradores de números aleatorios incluídos en VS.
Datos de rendemento do xerador de números aleatorios da biblioteca do núcleo de matemáticas Intel® oneAPI
Os datos de rendemento obtidos mediante o xerador de números aleatorios (RNG) de estatísticas vectoriais (VS), incluíndo unidade de medida CPE (reloxos por elemento), xeradores básicos de números aleatorios (BRNG), xeradores de distribución xerada e lonxitude dos vectores xerados.
Datos de precisión e rendemento de matemáticas vectoriales da biblioteca de núcleos matemáticos Intel® oneAPI
As Matemáticas Vectoriais (VM) calculan funcións elementais en argumentos vectoriais. VM inclúe un conxunto de implementacións altamente optimizadas de funcións matemáticas básicas computacionalmente custosas (potencia, trigonométricas, exponenciais, hiperbólicas e outras) que operan en vectores.
Notas de aplicación para estatísticas de resumo da biblioteca de núcleos matemáticos Intel® oneAPI
As estatísticas de resumo son un subcompoñente do dominio de estatísticas vectoriales da biblioteca de núcleos matemáticos Intel® oneAPI. Summary Statistics ofrécelle funcións para a análise estatística inicial e ofrece solucións para o procesamento paralelo de conxuntos de datos multidimensionais.
LAPACK Examples
Este documento proporciona o código exampficheiros para rutinas oneMKL LAPACK (Paquete de álxebra lineal).
Avisos e exencións de responsabilidade
O software e as cargas de traballo utilizados nas probas de rendemento poden estar optimizados para o rendemento só nos microprocesadores Intel. As probas de rendemento, como SYSmark e MobileMark, mídense mediante sistemas informáticos, compoñentes, software, operacións e funcións específicos. Calquera cambio nalgún destes factores pode facer que os resultados varíen. Debes consultar outra información e probas de rendemento para axudarche a avaliar completamente as túas compras contempladas, incluíndo o rendemento dese produto cando se combina con outros produtos. Para información máis completa visite www.intel.com/benchmarks.
As tecnoloxías Intel poden requirir a activación de hardware, software ou servizo habilitado.
Ningún produto ou compoñente pode ser absolutamente seguro.
Os teus custos e resultados poden variar.
© Intel Corporation. Intel, o logotipo de Intel e outras marcas de Intel son marcas comerciais de Intel Corporation ou das súas subsidiarias. Outros nomes e marcas pódense reclamar como propiedade doutros.
Información sobre o produto e o rendemento
O rendemento varía segundo o uso, a configuración e outros factores. Máis información en www.Intel.com/PerformanceIndex.
Aviso de revisión #20201201
Este documento non concede ningunha licenza (expresa ou implícita, por exclusión ou doutra forma) sobre ningún dereito de propiedade intelectual.
Os produtos descritos poden conter defectos de deseño ou erros coñecidos como erratas que poden provocar que o produto se desvíe das especificacións publicadas. As erratas caracterizadas actuais están dispoñibles baixo petición.
Intel renuncia a todas as garantías explícitas e implícitas, incluídas, entre outras, as garantías implícitas de comerciabilidade, adecuación para un fin determinado e non infracción, así como calquera garantía derivada do curso do rendemento, do curso da negociación ou do uso no comercio.
Documentos/Recursos
![]() |
Biblioteca Intel OneAPI Math Kernel [pdfGuía do usuario Biblioteca do núcleo matemático oneAPI, Biblioteca do núcleo matemático, Biblioteca do núcleo, Biblioteca |