Article de reference

Bibliothèque du noyau mathématique

Intel oneAPI Math Kernel Library (Intel oneMKL ), anciennement connue sous le nom d'Intel Math Kernel Library, est une bibliothèque de routines mathématiques optimisées pour les...

Intel oneAPI Math Kernel Library (Intel oneMKL ), anciennement connue sous le nom d'Intel Math Kernel Library, est une bibliothèque de routines mathématiques optimisées pour les applications scientifiques, d'ingénierie et financières. Les fonctions mathématiques de base incluent BLAS , LAPACK , ScaLAPACK , les solveurs clairsemés, les transformées de Fourier rapides et les mathématiques vectorielles.

La bibliothèque prend en charge les processeurs x86 et les GPU Intel et est disponible pour les systèmes d'exploitation Windows et Linux .

La bibliothèque Intel oneAPI Math Kernel ne doit pas être confondue avec les interfaces oneMKL, une bibliothèque wrapper open source qui permet aux applications DPC++ d'appeler des routines oneMKL qui peuvent être déchargées vers plusieurs architectures matérielles et fournisseurs définis pendant l'exécution.

Histoire et licences

Intel a lancé la bibliothèque oneAPI Math Kernel en novembre 1994 et l'a appelée Intel BLAS Library. En 1996, la bibliothèque a été renommée Intel Math Kernel Library jusqu'en avril 2020, date à laquelle Intel oneMKL est devenu une partie de l'initiative oneAPI pour prendre en charge plusieurs architectures matérielles, portant le nom actuel Intel oneAPI Math Kernel Library.

La bibliothèque est disponible dans le cadre des kits d'outils oneAPI et sous une forme autonome, gratuitement selon les termes de la licence logicielle simplifiée Intel qui autorise la redistribution. Le support commercial pour Intel oneMKL est disponible lors de l'achat dans le cadre du kit d'outils de base oneAPI .

Suite à la transition d'Apple vers l'abandon des processeurs x86, la dernière version d'Intel oneMKL disponible pour macOS est la version 2023.2.2 et sa suppression est prévue d'ici la fin de 2024.

Performance et dépendance vis-à-vis des fournisseurs

MKL et d'autres programmes générés par le compilateur Intel C++ et le compilateur Intel DPC++ améliorent les performances grâce à une technique appelée multi-versioning de fonction : une fonction est compilée ou écrite pour de nombreuses extensions de jeu d'instructions x86 , et au moment de l'exécution, une « fonction maître » utilise l' instruction CPUID pour sélectionner la version la plus appropriée pour le processeur actuel. Cependant, tant que la fonction maître détecte un processeur non Intel, elle choisit presque toujours la fonction la plus basique (et la plus lente) à utiliser, quels que soient les jeux d'instructions que le processeur prétend prendre en charge. Cela a valu au système le surnom de routine « AMD paralysante » depuis 2009. En 2020 , MKL d'Intel reste la bibliothèque numérique installée par défaut avec de nombreuses applications mathématiques précompilées sur Windows (telles que NumPy , SymPy ). Bien que s'appuyant sur le MKL, MATLAB a mis en œuvre une solution de contournement à partir de la version 2020a qui garantit la prise en charge complète d'AVX2 par le MKL également pour les processeurs non Intel (AMD).

Détails

Catégories fonctionnelles

Intel oneMKL possède les catégories fonctionnelles suivantes :

  • Algèbre linéaire : les routines BLAS sont des opérations vecteur-vecteur (Niveau 1), matrice-vecteur (Niveau 2) et matrice-matrice (Niveau 3) pour des données réelles et complexes en simple et double précision. LAPACK comprend des factorisations LU, Cholesky et QR optimisées, des solveurs de valeurs propres et de moindres carrés. MKL comprend également Sparse BLAS, ScaLAPACK , Sparse Solver, Extended Eigensolver (FEAST, PARDISO), PBLAS et BLACS. MKL est encore meilleur en petites dimensions que libxsmm.
    Étant donné que oneMKL utilise des interfaces standard pour BLAS et LAPACK, l'application qui utilise d'autres implémentations peut obtenir de meilleures performances sur les processeurs Intel et compatibles en se reliant aux bibliothèques MKL.
  • oneMKL inclut une variété de transformées de Fourier rapides (FFT) de 1D à multidimensionnelles, complexes à complexes, réelles à complexes et réelles à réelles de longueurs arbitraires. Les applications écrites avec le FFTW open source peuvent être facilement portées vers MKL en les reliant aux bibliothèques wrapper d'interface fournies dans le cadre de MKL pour une migration facile.
    Des versions en cluster de LAPACK et de FFT sont également disponibles dans le cadre de MKL pour profiter du parallélisme MPI en plus du parallélisme à nœud unique du multithreading.
  • Les fonctions mathématiques vectorielles incluent des opérations mathématiques de base gourmandes en calcul pour les types de données réels et complexes à simple et double précision. Elles sont similaires aux fonctions libm des bibliothèques de compilateurs, mais fonctionnent sur des vecteurs plutôt que sur des scalaires pour offrir de meilleures performances. Il existe différents contrôles pour définir la précision, le mode d'erreur et la gestion des nombres dénormalisés afin de personnaliser le comportement des routines.
  • Les fonctions statistiques incluent des générateurs de nombres aléatoires et des distributions de probabilités, optimisés pour les processeurs multicœurs. Sont également incluses des routines de calcul intensif en interne et en externe pour calculer des statistiques de base, l'estimation des dépendances, etc.
  • Les fonctions d'ajustement des données incluent des splines (linéaires, quadratiques, cubiques, de recherche, constantes par paliers) pour l'interpolation unidimensionnelle qui peuvent être utilisées dans les applications d'analyse de données, de modélisation géométrique et d'approximation de surface.
  • Équations aux dérivées partielles
  • Résolution de problèmes d'optimisation non linéaire

Autrefois, oneMKL incluait des fonctions de réseau neuronal profond , mais elles ont été supprimées dans la version 2020 en tant que spin-off à l'origine de la bibliothèque de réseau neuronal profond Intel oneAPI open source.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index