Subprogramas de Álgebra Lineal Básica
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 16 de marzo de 2021; las comprobaciones requieren
2 ediciones .
BLAS ( Subprogramas de álgebra lineal básica en inglés - subrutinas de álgebra lineal básica) es un estándar de facto para la interfaz de programación de aplicaciones para crear bibliotecas que realizan operaciones básicas de álgebra lineal , como la multiplicación de vectores y matrices.
Publicado por primera vez en 1979 y utilizado para crear paquetes grandes como LAPACK . Los fabricantes de hardware como Intel , entre otros, han desarrollado implementaciones altamente optimizadas de la interfaz BLAS, que se utilizan de forma intensiva en la informática de alto rendimiento (por ejemplo, ATLAS, BLAS portátil de optimización automática).
El LINPACK Benchmark se basa en gran medida en DGEMM , una subrutina de BLAS.
Funcionalidad
La funcionalidad de BLAS se divide en tres niveles.
Nivel 1
Este nivel contiene operaciones vectoriales de la forma:
operaciones de producto escalar , tomando la norma de un vector , y otras operaciones.
Nivel 2
Este nivel contiene operaciones matriciales-vectoriales de la forma:
solución para con una matriz triangular y otras operaciones.


Nivel 3
Contiene operaciones matriz-matriz de la forma:
solución de matriz triangular y otras operaciones. Este nivel contiene la operación GEMM ( General Matrix Multiply )
ampliamente utilizada .
Implementaciones
Refblas
La implementación de referencia oficial de netlib . Las versiones
C y
Fortran 77 están disponibles .
Acelerar
Framework de
Apple para
Mac OS X , incluidas versiones optimizadas de BLAS y LAPACK para
procesadores PowerPC e
Intel Core .
LCA
Biblioteca matemática Core AMD compatible con los procesadores
AMD Athlon y
Opteron en
Linux y
Windows .
ATLAS
Software de álgebra lineal de optimización automática ( en
inglés: Automatically Tuned Linear Algebra Software ), una implementación de código abierto de la interfaz BLAS para C y Fortran 77.
SDK de CUDA
NVIDIA CUDA SDK incluye la funcionalidad BLAS (cuBLAS) para escribir programas en C para tarjetas de video de la serie
GeForce 8 ,
GeForce 200 ,
GeForce 300 (Fermi) .
ESSL
Biblioteca de subrutinas científicas y de ingeniería de
IBM que admite la
arquitectura PowerPC en
AIX y
Linux .
llama libre
Implementación de una biblioteca de álgebra lineal que incluye BLAS por el proyecto FLAME.
Ir a BLAS
Implementación
de Kazushige Goto .
HP MLIB
Biblioteca matemática de
HP que admite
arquitecturas IA-64 ,
PA-RISC ,
x86 y
Opteron en
HP-UX y
Linux .
Intel MKL
Intel Math
Kernel Library compatible con procesadores Intel en Linux , Windows y Mac OS X.
MatemáticasKeisan
Biblioteca matemática
NEC compatible con la arquitectura
NEC SX en
SUPER-UX e
Itanium en
Linux .
PDLIB/SX
Biblioteca matemática de dominio público de NEC para el sistema NEC SX-4
.
SCSL
La biblioteca de software de computación científica de SGI contiene implementaciones de BLAS y LAPACK para estaciones de
trabajo SGI Irix .
Rendimiento solar Linaray
Sun Performance Library contiene BLAS y LAPACK optimizados para las
arquitecturas SPARC y
AMD64 en
Solaris 8, 9 y 10.
uBLAS
Una biblioteca de clases de plantilla de
C++ que proporciona la funcionalidad BLAS. Parte de la biblioteca de
Boost . A diferencia de otras implementaciones, uBLAS se enfoca más en la corrección del algoritmo utilizando funciones avanzadas de C++ que en el alto rendimiento.
GSL
La Biblioteca Científica GNU contiene una implementación C no optimizada multiplataforma que se distribuye bajo la
GPL de GNU .
CLBlast
Una biblioteca de C++ multiplataforma ( Windows , Linux , MacOS ) implementada con OpenCL puede ejecutarse en una amplia gama de GPU u otros dispositivos compatibles con la computación paralela.
Véase también
Enlaces