Kernels matemáticos acelerados con SIMD para distancias, productos punto y operaciones con matrices en más de 15 tipos numéricos, con bindings para Python, Rust, C/C++, JS, Swift y Go.
OpenMathLib/OpenBLAS
Biblioteca de código abierto BLAS y LAPACK optimizada para muchas arquitecturas de CPU, sin incluir GPU.
Alternativa open source a:Intel MKL
- Estrellas
- 7,669
- Forks
- 1,751
- Issues abiertos
- 163
- Último commit
- hace 5 horas
¿Qué es?
OpenBLAS es una biblioteca que implementa rutinas BLAS (Basic Linear Algebra Subprograms), los componentes básicos estándar de bajo nivel para operaciones con vectores y matrices que usan los programas numéricos. Se basa en GotoBLAS2 1.13, con licencia BSD, e incluye también LAPACK, el paquete de álgebra lineal de nivel superior, junto con una interfaz C de LAPACKE.
La biblioteca incluye kernels optimizados para una amplia variedad de procesadores, entre ellos distintas generaciones de Intel x86-64, desde Sandy Bridge hasta Sapphire Rapids; AMD Zen; núcleos ARM64 como Neoverse y la serie Cortex-A; POWER; IBM Z; extensiones vectoriales RISC-V y LoongArch. Una compilación DYNAMIC_ARCH puede incluir varios destinos en una sola biblioteca y seleccionar los kernels adecuados durante la ejecución. Las compilaciones se gestionan con make o CMake y se admite la compilación cruzada.
OpenBLAS funciona en GNU/Linux, Windows (MinGW o Visual Studio), macOS y varias variantes de BSD, y también se puede usar desde WebAssembly. El número de hilos se puede controlar mediante variables de entorno o funciones en tiempo de ejecución.
Funciones clave
- 01Implementa BLAS e incluye LAPACK con una interfaz C de LAPACKE.
- 02Ofrece kernels optimizados para muchas CPU x86, ARM64, POWER, IBM Z, RISC-V y LoongArch.
- 03Las compilaciones DYNAMIC_ARCH incluyen varios destinos de CPU y eligen los kernels durante la ejecución.
- 04Admite compilaciones con make y CMake, incluida la compilación cruzada.
- 05El número de hilos se puede configurar mediante variables de entorno o funciones en tiempo de ejecución.
- 06Disponible como paquetes binarios para Windows y a través de muchos gestores de paquetes.
Casos de uso
- Acelerar operaciones con matrices y vectores en computación científica y bibliotecas numéricas.
- Proporcionar el backend BLAS/LAPACK para R, NumPy, SciPy u otras pilas numéricas.
- Desarrollar código de álgebra lineal de alto rendimiento para CPU integradas o de servidor de distintas arquitecturas.
- Ejecutar cargas de trabajo numéricas en navegadores mediante compilaciones de WebAssembly.
Inicio rápido
- 1
Obtén el código fuente de GitHub (la rama predeterminada es develop).
- 2
Compila la biblioteca con make (la CPU se detecta automáticamente).
make - 3
Instálala en el directorio que elijas.
make install PREFIX=your_installation_directory
Antes de usarlo
- No es compatible con GPU.
- Para compilar desde el código fuente se necesita un compilador de C, y algunos destinos de CPU solo cuentan con soporte preliminar.
Temas
Preguntas frecuentes
- ¿Qué es OpenBLAS?
- Biblioteca de código abierto BLAS y LAPACK optimizada para muchas arquitecturas de CPU, sin incluir GPU. OpenBLAS es una biblioteca que implementa rutinas BLAS (Basic Linear Algebra Subprograms), los componentes básicos estándar de bajo nivel para operaciones con vectores y matrices que usan los programas numéricos. Se basa en GotoBLAS2 1.13, con licencia BSD, e incluye también LAPACK, el paquete de álgebra lineal de nivel superior, junto con una interfaz C de LAPACKE.
- ¿OpenBLAS es gratuito? ¿Qué licencia tiene?
- OpenBLAS es open source bajo la licencia BSD-3-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿OpenBLAS sigue mantenido?
- Mantenimiento activo. El último commit de OpenBLAS fue el 7 nov 2026.
- ¿Para qué puedo usar OpenBLAS?
- Acelerar operaciones con matrices y vectores en computación científica y bibliotecas numéricas. Proporcionar el backend BLAS/LAPACK para R, NumPy, SciPy u otras pilas numéricas. Desarrollar código de álgebra lineal de alto rendimiento para CPU integradas o de servidor de distintas arquitecturas. Ejecutar cargas de trabajo numéricas en navegadores mediante compilaciones de WebAssembly.
- ¿Cómo se instala OpenBLAS?
- Obtén el código fuente de GitHub (la rama predeterminada es develop). Compila la biblioteca con make (la CPU se detecta automáticamente).: make Instálala en el directorio que elijas.: make install PREFIX=your_installation_directory
- ¿Dónde consigo OpenBLAS?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/OpenMathLib/OpenBLAS
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
El paquete fundamental de Python para la computación científica, centrado en un objeto de arreglo N-dimensional de alto rendimiento.
Una biblioteca header-only de C++20 para expresiones de tensores al estilo NumPy que se ejecutan en GPU NVIDIA o en CPU multinúcleo, con fusión de kernels opcional.
Biblioteca de plantillas de CUDA C++ y DSL de Python para escribir kernels GEMM y de álgebra lineal de alto rendimiento en GPU NVIDIA.
Una biblioteca estándar fundamental de cálculo numérico y científico para JavaScript y TypeScript, compatible con navegadores y Node.js.
Evaluador rápido de expresiones sobre arrays de NumPy que calcula expresiones como 3*a+4*b en bloques, con menos memoria y varios núcleos.