Aller au contenu

Basic Linear Algebra Subprograms

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 14 avril 2013 à 11:40 et modifiée en dernier par Charpentier franck (discuter | contributions) (Mises en œuvre). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

Basic Linear Algebra Subprograms (BLAS) sont un ensemble de fonctions standardisées (interface de programmation) réalisant des opérations de base de l'algèbre linéaire comme des additions de vecteurs ou des multiplications de matrices. Ces fonctions ont d'abord été publiées en 1979 et sont utilisées dans des bibliothèques plus développées comme LAPACK. Largement utilisées pour le calcul haute performance, ces fonctions ont été développées de manière très optimisée par des constructeurs de calculateurs comme Intel et AMD, ou encore par d'autres auteurs (Goto (en) BLAS et ATLAS (en) - une version portable de BLAS - en sont des exemples). Les tests de performance LINPACK utilisent massivement la fonction multiplication de matrices générales (DGEMM) de BLAS.

Trois niveaux de complexité

Les opérations d'algèbre linéaire mises en œuvre dans BLAS sont réparties en 3 niveaux de complexité croissante.

Niveau 1
Ce niveau contient les opérations sur les vecteurs de la forme
est un scalaire et et sont des vecteurs ; ainsi que les opérations produit scalaire et norme, parmi tant d'autres.
Niveau 2
Ce niveau contient entre autres les opérations de type matrice-vecteur de la forme
et sont des scalaires, et sont des vecteurs et est une matrice ; ainsi que la résolution de en lorsque étant une matrice triangulaire.
Niveau 3
Ce niveau contient entre autres les opérations de type matrice-matrice de la forme
et sont des scalaires et , et sont des matrices ; ainsi que la résolution de pour des matrices triangulaires . Le niveau 3 contient notamment la très usitée opération de multiplication de matrices générales (DGEMM).

Mises en œuvre

ATLAS
Automatically Tuned Linear Algebra Software (en), une implémentation en source libre de BLAS pour les langages C (par interface de programmation) et Fortran 77. Voir [1]
BLAS de Goto
Mise en œuvre de BLAS de Kazushige Goto (en), sous licence BSD, adaptée en particulier aux architectures Intel Nehalem/Atom, VIA Nano, AMD Opteron. Voir [2]
BLAS de Netlib
C'est la mise en œuvre officielle, de référence, disponible sur le site Netlib, écrite en Fortran 77. Voir [3]
CBLAS de Netlib
Interfaçage de référence de BLAS pour le langage C. Il est également possible (et coutumier) d'appeler BLAS en Fortran, directement depuis un code écrit en C. Voir [4]
clAmdBlas
Une implémentation d'AMD en OpenCL des niveaux 1, 2 et 3, et optimisée pour les processeurs graphiques d'AMD. Voir [5]

Voir aussi

Liens externes