bibliothèque de noyau mathématique intel oneAPI
Premiers pas avec la bibliothèque de noyau mathématique Intel® oneAPI
La bibliothèque Intel® oneAPI Math Kernel Library (oneMKL) vous aide à atteindre des performances maximales avec une bibliothèque de calcul mathématique de routines hautement optimisées et largement parallélisées pour CPU et GPU. La bibliothèque possède des interfaces C et Fortran pour la plupart des routines sur CPU et des interfaces DPC++ pour certaines routines sur CPU et GPU. Vous pouvez trouver une prise en charge complète de plusieurs opérations mathématiques dans diverses interfaces, notamment :
Pour C et Fortran sur CPU
- Algèbre linéaire
- Transformées de Fourier rapides (FFT)
- Mathématiques vectorielles
- Solveurs creux directs et itératifs
- Générateurs de nombres aléatoires
Pour DPC++ sur CPU et GPU (reportez-vous à Intel® oneAPI Math Kernel Library—Data Parallel C++ Developer Reference pour plus de détails.)
- Algèbre linéaire
- BLAS
- Fonctionnalité Sparse BLAS sélectionnée
- Fonctionnalité LAPACK sélectionnée
- Transformées de Fourier rapides (FFT)
- 1D, 2D et 3D
- Générateurs de nombres aléatoires
- Fonctionnalité sélectionnée
- Fonctionnalité de mathématiques vectorielles sélectionnées
Avant de commencer
Visitez la page Notes de version pour les problèmes connus et les informations les plus récentes.
Visitez la page Configuration système requise de la bibliothèque Intel® oneAPI Math Kernel pour connaître la configuration système requise.
Visitez le Get Started with the Intel® oneAPI DPC++/C++ Compiler for DPC++ Compiler requirements.
Étape 1 : Installer la bibliothèque de noyau mathématique Intel® oneAPI
Téléchargez la bibliothèque Intel® oneAPI Math Kernel à partir de la boîte à outils de base Intel® oneAPI.
Pour les distributions Python, reportez-vous à Installation de la distribution Intel® pour Python* et des bibliothèques Intel® Performance avec pip et PyPI.
Pour les distributions Python, notez la limitation suivante :
Le package de développement oneMKL (mkl-devel) pour la distribution PIP sur Linux* et macOS* ne fournit pas de liens symboliques de bibliothèques dynamiques (pour plus d'informations, consultez le numéro 5919 de PIP GitHub).
Dans le cas d'une liaison de bibliothèque dynamique ou dynamique unique avec le package de développement oneMKL (pour plus d'informations, voir oneMKL Link Line Advisor ), vous devez modifier la ligne de liaison avec les noms complets et les versions des bibliothèques oneMKL.
Reportez-vous à Intel® oneAPI Math Kernel Library et à l'outil pkg-config pour plus d'informations sur la compilation et la liaison avec l'outil pkg-config.
ligne de liaison oneMKL exampfichier avec le kit d'outils de base oneAPI via des liens symboliques :
- 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 ligne de liaison oneMKL exampfichier avec le package de développement PIP via les bibliothèques noms complets et versions : 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
Étape 2 : Sélectionnez une fonction ou une routine
Sélectionnez une fonction ou une routine de oneMKL qui convient le mieux à votre problème. Utilisez ces ressources :
Lien vers la ressource : contenu
Guide du développeur oneMKL pour Linux*
Guide du développeur oneMKL pour Windows*
Guide du développeur oneMKL pour macOS*
Le Guide du développeur contient des informations détaillées sur plusieurs sujets, notamment :
- Compiler et lier des applications
- Construire des DLL personnalisées
- Enfilage
- Gestion de la mémoire
Référence du développeur oneMKL – C
Référence du développeur oneMKL – Langage Fortran
Référence du développeur oneMKL – Langage DPC++
- La référence du développeur (aux formats C, Fortran et DPC++) contient des descriptions détaillées des fonctions et des interfaces pour tous les domaines de la bibliothèque.
Conseiller de recherche de fonctions de la bibliothèque Intel® oneAPI Math Kernel
- Utilisez le LAPACK Function Finding Advisor pour explorer les routines LAPACK qui sont utiles pour un problème particulier. Par exempleample, si vous spécifiez une opération comme suit :
- Type de routine : informatique
- Problème informatique : factorisation orthogonale
- Type de matrice : Général
- Opération : Effectuer une factorisation QR
Étape 3 : Liez votre code
Utilisez le oneMKL Link Line Advisor pour configurer la commande de liaison en fonction des fonctionnalités de votre programme.
Quelques limitations et exigences supplémentaires :
La bibliothèque de noyau mathématique Intel® oneAPI pour DPC++ prend uniquement en charge l'utilisation de la bibliothèque d'interface mkl_intel_ilp64 et le threading séquentiel ou TBB.
Pour les interfaces DPC++ avec liaison statique sous 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
Par exempleample, construisant/liant statiquement main.cpp avec les interfaces ilp64 et le threading 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
Pour les interfaces DPC++ avec liaison dynamique sous Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
Par exempleample, construisant/reliant dynamiquement main.cpp avec les interfaces ilp64 et le threading 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
Pour les interfaces DPC++ avec liaison statique sous 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
Par exempleample, construisant/liant statiquement main.cpp avec les interfaces ilp64 et le 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_ilp64.lib mkl_tbb_thread.lib mkl_core.lib sycl .lib OpenCL.lib tbb.lib
Pour les interfaces DPC++ avec liaison dynamique sous 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
Par exempleample, construisant/reliant dynamiquement main.cpp avec les interfaces ilp64 et le 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_ilp64_dll.lib mkl_tbb_thread_dll.lib mkl_core_dll.lib tbb .lib sycl.lib OpenCL.lib
Pour les interfaces C/Fortran avec prise en charge du déchargement OpenMP
Utilisez les interfaces C/Fotran Intel® oneAPI Math Kernel Library avec la fonction de déchargement OpenMP vers le GPU.
Consultez le Guide du développeur C OpenMP Offload pour plus de détails sur cette fonctionnalité.
Ajoutez les modifications suivantes aux lignes de compilation/liaison C/Fortran oneMKL pour activer la fonctionnalité de déchargement OpenMP vers le GPU :
- Options de compilation/lien supplémentaires : -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
- Bibliothèque oneMKL supplémentaire : bibliothèque oneMKL DPC++
Par exempleample, construisant/reliant dynamiquement main.cpp sous Linux avec des interfaces ilp64 et des threads 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
Pour toutes les autres configurations prises en charge, consultez Intel® oneAPI Math Kernel Library Link Line Advisor.
En savoir plus
Ressource : Description
Tutoriel : Utilisation de la bibliothèque Intel® oneAPI Math Kernel pour la multiplication matricielle :
- Tutoriel – Langage C
- Tutoriel – Langage Fortran
Ce didacticiel montre comment vous pouvez utiliser oneMKL pour multiplier des matrices, mesurer les performances de la multiplication matricielle et contrôler le threading.
Les notes de mise à jour de la bibliothèque Intel® oneAPI Math Kernel Library (oneMKL) contrôlent le threading.
Les notes de version contiennent des informations spécifiques à la dernière version de oneMKL, y compris les fonctionnalités nouvelles et modifiées. Les notes de version incluent des liens vers les principales ressources d'information en ligne liées à la version. Vous pouvez également trouver des informations sur :
- Quoi de neuf dans la version
- Contenu du produit
- Obtenir un support technique
- Définitions de licence
Bibliothèque de noyau mathématique Intel® oneAPI
La page du produit Intel® oneAPI Math Kernel Library (oneMKL). Consultez cette page pour obtenir de l'aide et de la documentation en ligne.
Livre de recettes de la bibliothèque du noyau mathématique Intel® oneAPI
La bibliothèque de noyaux mathématiques Intel® oneAPI contient de nombreuses routines pour vous aider à résoudre divers problèmes numériques, tels que la multiplication de matrices, la résolution d'un système d'équations et l'exécution d'une transformée de Fourier.
Notes pour les statistiques vectorielles de la bibliothèque du noyau mathématique Intel® oneAPI
Ce document comprend un survolview, un modèle d'utilisation et les résultats des tests des générateurs de nombres aléatoires inclus dans VS.
Intel® oneAPI Math Kernel Library Statistiques vectorielles Générateur de nombres aléatoires Données de performances
Données de performances obtenues à l'aide du générateur de nombres aléatoires (RNG) de statistiques vectorielles (VS), y compris l'unité de mesure CPE (horloges par élément), les générateurs de nombres aléatoires de base (BRNG), les générateurs de distribution générés et la longueur des vecteurs générés.
Données de performance et de précision des mathématiques vectorielles de la bibliothèque Intel® oneAPI Math Kernel Library
Vector Mathematics (VM) calcule des fonctions élémentaires sur des arguments vectoriels. VM comprend un ensemble d'implémentations hautement optimisées de fonctions mathématiques de base coûteuses en calcul (puissance, trigonométrique, exponentielle, hyperbolique et autres) qui fonctionnent sur des vecteurs.
Notes d'application pour les statistiques récapitulatives de la bibliothèque du noyau mathématique Intel® oneAPI
Summary Statistics est un sous-composant du domaine Vector Statistics de Intel® oneAPI Math Kernel Library. Summary Statistics vous fournit des fonctions d'analyse statistique initiale et propose des solutions pour le traitement parallèle d'ensembles de données multidimensionnels.
LAPACKExamples
Ce document fournit le code exampfichiers pour les routines oneMKL LAPACK (Linear Algebra PACKage).
Avis et avis de non-responsabilité
Les logiciels et les charges de travail utilisés dans les tests de performances peuvent avoir été optimisés pour les performances uniquement sur les microprocesseurs Intel. Les tests de performance, tels que SYSmark et MobileMark, sont mesurés à l'aide de systèmes informatiques, de composants, de logiciels, d'opérations et de fonctions spécifiques. Toute modification de l'un de ces facteurs peut entraîner une variation des résultats. Vous devriez consulter d'autres informations et tests de performance pour vous aider à évaluer pleinement vos achats envisagés, y compris la performance de ce produit lorsqu'il est combiné avec d'autres produits. Pour plus d'informations, visitez www.intel.com/benchmarks.
Les technologies Intel peuvent nécessiter une activation matérielle, logicielle ou de service activée.
Aucun produit ou composant ne peut être absolument sûr.
Vos coûts et vos résultats peuvent varier.
©Intel Corporation. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.
Informations sur le produit et les performances
Les performances varient en fonction de l'utilisation, de la configuration et d'autres facteurs. En savoir plus sur www.Intel.com/PerformanceIndex.
Avis de révision #20201201
Aucune licence (expresse ou implicite, par préclusion ou autre) sur aucun droit de propriété intellectuelle n'est accordée par ce document.
Les produits décrits peuvent contenir des défauts de conception ou des erreurs appelés errata qui peuvent entraîner un écart par rapport aux spécifications publiées. Les errata caractérisés actuels sont disponibles sur demande.
Intel décline toute garantie expresse et implicite, y compris, sans s'y limiter, les garanties implicites de qualité marchande, d'adéquation à un usage particulier et d'absence de contrefaçon, ainsi que toute garantie découlant du cours des performances, du cours des transactions ou de l'utilisation dans le commerce.
Documents / Ressources
![]() |
bibliothèque de noyau mathématique intel oneAPI [pdf] Guide de l'utilisateur Bibliothèque du noyau mathématique oneAPI, Bibliothèque du noyau mathématique, Bibliothèque du noyau, Bibliothèque |