SIMD-accelerated math kernels for distances, dot products, and matrix ops across 15+ numeric types, with bindings for Python, Rust, C/C++, JS, Swift, and Go.
OpenMathLib/OpenBLAS
An optimized open-source BLAS and LAPACK linear algebra library tuned for many CPU architectures, GPUs excluded.
Open-source alternative to:Intel MKL
- Stars
- 7,669
- Forks
- 1,751
- Open issues
- 163
- Last commit
- 5 hours ago
What is it?
OpenBLAS is a library that implements BLAS (Basic Linear Algebra Subprograms) routines, the standard low-level building blocks for vector and matrix operations used by numerical software. It is based on GotoBLAS2 1.13 under the BSD license and also bundles LAPACK, the higher-level linear algebra package, along with a LAPACKE C interface.
The library ships optimized kernels for a wide range of processors, including Intel x86-64 generations from Sandy Bridge through Sapphire Rapids, AMD Zen, ARM64 cores such as Neoverse and Cortex-A series, POWER, IBM Z, RISC-V vector extensions and LoongArch. A DYNAMIC_ARCH build can include several targets in one library and select the right kernels at runtime. Builds are driven by make or CMake, and cross compilation is supported.
OpenBLAS runs on GNU/Linux, Windows (MinGW or Visual Studio), macOS, and several BSD variants, and is also usable from WebAssembly. Thread count can be controlled through environment variables or runtime functions.
Key features
- 01Implements BLAS and bundles LAPACK with a LAPACKE C interface.
- 02Provides optimized kernels for many x86, ARM64, POWER, IBM Z, RISC-V and LoongArch CPUs.
- 03DYNAMIC_ARCH builds include multiple CPU targets and choose kernels at runtime.
- 04Supports make and CMake builds, including cross compilation.
- 05Thread count is configurable via environment variables or runtime functions.
- 06Available as Windows binary packages and through many package managers.
Use cases
- Accelerating matrix and vector computations in scientific computing and numerical libraries.
- Providing the BLAS/LAPACK backend for R, NumPy, SciPy or other numerical stacks.
- Building high-performance linear algebra code for embedded or server CPUs across different architectures.
- Running numerical workloads in browsers via WebAssembly builds.
Quick start
- 1
Get the source code from GitHub (default branch is develop)
- 2
Build the library with make (CPU is detected automatically)
make - 3
Install to a chosen directory
make install PREFIX=your_installation_directory
Things to know
- Does not support GPUs.
- Building from source requires a C compiler, and some CPU targets have only preliminary support.
Topics
FAQ
- What is OpenBLAS?
- An optimized open-source BLAS and LAPACK linear algebra library tuned for many CPU architectures, GPUs excluded. OpenBLAS is a library that implements BLAS (Basic Linear Algebra Subprograms) routines, the standard low-level building blocks for vector and matrix operations used by numerical software. It is based on GotoBLAS2 1.13 under the BSD license and also bundles LAPACK, the higher-level linear algebra package, along with a LAPACKE C interface.
- Is OpenBLAS free to use? What license does it have?
- OpenBLAS is open source under the BSD-3-Clause license. Check the license terms before using it in commercial products.
- Is OpenBLAS still maintained?
- Actively maintained. The last commit to OpenBLAS was on Nov 7, 2026.
- What can I use OpenBLAS for?
- Accelerating matrix and vector computations in scientific computing and numerical libraries. Providing the BLAS/LAPACK backend for R, NumPy, SciPy or other numerical stacks. Building high-performance linear algebra code for embedded or server CPUs across different architectures. Running numerical workloads in browsers via WebAssembly builds.
- How do I install OpenBLAS?
- Get the source code from GitHub (default branch is develop) Build the library with make (CPU is detected automatically): make Install to a chosen directory: make install PREFIX=your_installation_directory
- Where can I get OpenBLAS?
- The source code and installation instructions are on GitHub: https://github.com/OpenMathLib/OpenBLAS
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
The fundamental Python package for scientific computing, centered on a fast N-dimensional array object.
A C++20 header-only library for NumPy-style tensor expressions that run on NVIDIA GPUs or multithreaded CPUs, with optional kernel fusion.
CUDA C++ template library and Python DSL for writing high-performance GEMM and related linear algebra kernels on NVIDIA GPUs.
A fundamental numerical and scientific computing standard library for JavaScript and TypeScript, running in browsers and Node.js.
Fast NumPy array expression evaluator that computes expressions like 3*a+4*b in chunks, using less memory and multiple cores.