Intel oneAPI Math Kernel Library
Comience con Intel® oneAPI Math Kernel Library
La biblioteca Intel® oneAPI Math Kernel Library (oneMKL) lo ayuda a lograr el máximo rendimiento con una biblioteca de computación matemática de rutinas altamente optimizadas y extensamente paralelizadas para CPU y GPU. La biblioteca tiene interfaces C y Fortran para la mayoría de las rutinas en la CPU e interfaces DPC++ para algunas rutinas tanto en la CPU como en la GPU. Puede encontrar soporte integral para varias operaciones matemáticas en varias interfaces, que incluyen:
Para C y Fortran en CPU
- Álgebra lineal
- Transformadas rápidas de Fourier (FFT)
- Matemáticas vectoriales
- Solvers dispersos directos e iterativos
- Generadores de números aleatorios
Para DPC++ en CPU y GPU (consulte Intel® oneAPI Math Kernel Library—Data Parallel C++ Developer Reference para obtener más detalles).
- Álgebra lineal
- Blas
- Funcionalidad de BLAS disperso seleccionada
- Funcionalidad seleccionada de LAPACK
- Transformadas rápidas de Fourier (FFT)
- 1D, 2D y 3D
- Generadores de números aleatorios
- Funcionalidad seleccionada
- Funcionalidad matemática vectorial seleccionada
Antes de empezar
Visite la página de notas de la versión para ver los problemas conocidos y la información más actualizada.
Visite la página de requisitos del sistema de la biblioteca Intel® oneAPI Math Kernel Library para conocer los requisitos del sistema.
Visite Introducción al compilador Intel® oneAPI DPC++/C++ para conocer los requisitos del compilador DPC++.
Paso 1: Instale la biblioteca Intel® oneAPI Math Kernel
Descargue Intel® oneAPI Math Kernel Library desde Intel® oneAPI Base Toolkit.
Para las distribuciones de Python, consulte Instalación de la distribución Intel® para Python* y las bibliotecas de rendimiento Intel® con pip y PyPI.
Para las distribuciones de Python, tenga en cuenta la siguiente limitación:
El paquete de desarrollo oneMKL (mkl-devel) para la distribución de PIP en Linux* y macOS* no proporciona enlaces simbólicos de bibliotecas dinámicas (para obtener más información, consulte el número 5919 de PIP GitHub).
En el caso de la vinculación de bibliotecas dinámicas o dinámicas únicas con el paquete de desarrollo oneMKL (para obtener más información, consulte oneMKL Link Line Advisor), debe modificar la línea de enlace con los nombres completos y las versiones de las bibliotecas oneMKL.
Consulte Intel® oneAPI Math Kernel Library y la herramienta pkg-config para obtener información sobre cómo compilar y vincular con la herramienta pkg-config.
línea de enlace oneMKL examparchivo con oneAPI Base Toolkit a través de enlaces simbólicos:
- Linux:
aplicación icc.obj -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64-lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl - Mac OS:
aplicación icc.obj -L${MKLROOT}/lib -Wl,-rpath,${MKLROOT}/lib-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
-lm-ldl
La línea de enlace oneMKL examparchivo con el paquete de desarrollo PIP a través de bibliotecas nombres completos y versiones: Linux:
aplicación icc.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 - Mac OS:
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 una función o rutina
Seleccione una función o rutina de oneMKL que mejor se adapte a su problema. Utilice estos recursos:
Enlace de recursos: contenido
Guía del desarrollador oneMKL para Linux*
Guía del desarrollador oneMKL para Windows*
Guía del desarrollador oneMKL para macOS*
La Guía del desarrollador contiene información detallada sobre varios temas, entre ellos:
- Compilación y enlace de aplicaciones.
- Creación de archivos DLL personalizados
- Enhebrado
- Gestión de la memoria
Referencia del desarrollador oneMKL – C
Referencia del desarrollador de Language oneMKL: lenguaje Fortran
Referencia del desarrollador oneMKL – Lenguaje DPC++
- La Referencia del desarrollador (en formatos C, Fortran y DPC++) contiene descripciones detalladas de las funciones e interfaces para todos los dominios de la biblioteca.
Asesor de búsqueda de funciones de la biblioteca Intel® oneAPI Math Kernel
- Utilice el asesor de búsqueda de funciones de LAPACK para explorar las rutinas de LAPACK que son útiles para un problema en particular. por ejemploamparchivo, si especifica una operación como:
- Tipo de rutina: Computacional
- Problema computacional: factorización ortogonal
- Tipo de matriz: General
- Operación: Realizar factorización QR
Paso 3: vincula tu código
Utilice el asesor de línea de enlace de oneMKL para configurar el comando de enlace de acuerdo con las características de su programa.
Algunas limitaciones y requisitos adicionales:
Intel® oneAPI Math Kernel Library para DPC++ solo admite el uso de la biblioteca de interfaz mkl_intel_ilp64 y subprocesos secuenciales o TBB.
Para interfaces DPC++ con enlace estático en 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
Por ejemploample, compilando/vinculando estáticamente main.cpp con interfaces ilp64 y subprocesos TBB:
icpx -fsycl -fsycl-device-code-split=per_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 ejemploample, compilando/vinculando dinámicamente main.cpp con interfaces ilp64 y subprocesos TBB:
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
Para interfaces DPC++ con enlace estático en 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
Por ejemploample, compilando/vinculando estáticamente main.cpp con interfaces ilp64 y subprocesos TBB:
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
Para interfaces DPC++ con enlace dinámico 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 ejemploample, compilando/vinculando dinámicamente main.cpp con interfaces ilp64 y subprocesos 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_ilp64_dll.lib mkl_tbb_thread_dll.lib mkl_core_dll.lib tbb .lib sycl.lib OpenCL.lib
Para interfaces C/Fortran con soporte de descarga de OpenMP
Utilice las interfaces C/Fotran Intel® oneAPI Math Kernel Library con la función de descarga de OpenMP en la GPU.
Consulte la Guía para desarrolladores de C OpenMP Offload para obtener más detalles sobre esta función.
Agregue los siguientes cambios a las líneas de compilación/enlace de C/Fortran oneMKL para habilitar la función de descarga de OpenMP a la GPU:
- Opciones adicionales de compilación/enlace: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
- Biblioteca oneMKL adicional: biblioteca oneMKL DPC++
Por ejemploample, compilando/vinculando dinámicamente main.cpp en Linux con interfaces ilp64 y 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 las demás configuraciones admitidas, consulte Intel® oneAPI Math Kernel Library Link Line Advisor.
Encuentra más
Recurso: Descripción
Tutorial: Uso de Intel® oneAPI Math Kernel Library para la multiplicación de matrices:
- Tutorial – Lenguaje C
- Tutorial – Lenguaje Fortran
Este tutorial demuestra cómo puede usar oneMKL para multiplicar matrices, medir el rendimiento de la multiplicación de matrices y controlar el subprocesamiento.
Las notas de la versión de Intel® oneAPI Math Kernel Library (oneMKL) controlan los subprocesos.
Las notas de la versión contienen información específica de la última versión de oneMKL, incluidas funciones nuevas y modificadas. Las notas de la versión incluyen enlaces a los principales recursos de información en línea relacionados con la versión. También puede encontrar información sobre:
- Novedades en el lanzamiento
- Contenido del producto
- Obtención de soporte técnico
- Definiciones de licencia
Biblioteca del núcleo matemático Intel® oneAPI
La página del producto Intel® oneAPI Math Kernel Library (oneMKL). Consulte esta página para obtener soporte y documentación en línea.
Libro de recetas de la biblioteca del núcleo matemático Intel® oneAPI
La biblioteca Intel® oneAPI Math Kernel contiene muchas rutinas para ayudarlo a resolver varios problemas numéricos, como multiplicar matrices, resolver un sistema de ecuaciones y realizar una transformada de Fourier.
Notas para las estadísticas vectoriales de la biblioteca Intel® oneAPI Math Kernel
Este documento incluye másview, un modelo de uso y resultados de pruebas de generadores de números aleatorios incluidos en VS.
Intel® oneAPI Math Kernel Library Estadísticas vectoriales Generador de números aleatorios Datos de rendimiento
Datos de rendimiento obtenidos utilizando estadísticas vectoriales (VS), generador de números aleatorios (RNG), incluida la unidad de medida CPE (relojes por elemento), generadores básicos de números aleatorios (BRNG), generadores de distribución generados y la longitud de los vectores generados.
Intel® oneAPI Math Kernel Library Vector Matemáticas Rendimiento y datos de precisión
Vector Mathematics (VM) calcula funciones elementales en argumentos vectoriales. VM incluye un conjunto de implementaciones altamente optimizadas de funciones matemáticas centrales computacionalmente costosas (potencia, trigonométricas, exponenciales, hiperbólicas y otras) que operan en vectores.
Notas de aplicación para Intel® oneAPI Math Kernel Library Resumen de estadísticas
Resumen de estadísticas es un subcomponente del dominio de estadísticas vectoriales de Intel® oneAPI Math Kernel Library. Summary Statistics le proporciona funciones para el análisis estadístico inicial y ofrece soluciones para el procesamiento paralelo de conjuntos de datos multidimensionales.
LAPACK ExampLos
Este documento proporciona código examparchivos para las rutinas oneMKL LAPACK (Paquete de álgebra lineal).
Avisos y exenciones de responsabilidad
Es posible que el software y las cargas de trabajo utilizadas en las pruebas de rendimiento se hayan optimizado para el rendimiento solo en microprocesadores Intel. Las pruebas de rendimiento, como SYSmark y MobileMark, se miden utilizando sistemas informáticos, componentes, software, operaciones y funciones específicos. Cualquier cambio en cualquiera de esos factores puede hacer que los resultados varíen. Debe consultar otra información y pruebas de rendimiento para ayudarlo a evaluar completamente sus compras contempladas, incluido el rendimiento de ese producto cuando se combina con otros productos. Para información más completa visita www.intel.com/benchmarks.
Las tecnologías Intel pueden requerir la activación de hardware, software o servicio habilitado.
Ningún producto o componente puede ser absolutamente seguro.
Sus costos y resultados pueden variar.
© Corporación Intel. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Otros nombres y marcas pueden reclamarse como propiedad de terceros.
Información sobre el producto y el rendimiento
El rendimiento varía según el uso, la configuración y otros factores. Obtenga más información en www.Intel.com/PerformanceIndex.
Aviso revisión #20201201
Este documento no concede ninguna licencia (expresa o implícita, por impedimento legal o de otro modo) sobre ningún derecho de propiedad intelectual.
Los productos descritos pueden contener defectos de diseño o errores conocidos como erratas que pueden hacer que el producto se desvíe de las especificaciones publicadas. Las erratas caracterizadas actuales están disponibles a pedido.
Intel renuncia a todas las garantías expresas e implícitas, incluidas, entre otras, las garantías implícitas de comerciabilidad, idoneidad para un propósito particular y no infracción, así como cualquier garantía que surja del curso del desempeño, el curso de la negociación o el uso en el comercio.
Documentos / Recursos
![]() |
Intel oneAPI Math Kernel Library [pdf] Guía del usuario oneAPI Math Kernel Library, Math Kernel Library, Kernel Library, Biblioteca |