# openmathlib/openblas

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/openmathlib-openblas).**

7,470 stars · 1,690 forks · C · BSD-3-Clause

## Links

- GitHub: https://github.com/OpenMathLib/OpenBLAS
- Homepage: http://www.openblas.net
- awesome-repositories: https://awesome-repositories.com/repository/openmathlib-openblas.md

## Topics

`blas` `lapack` `lapacke`

## Description

OpenBLAS is a high-performance implementation of the Basic Linear Algebra Subprograms standard designed for numerical computing and matrix operations. It serves as a hardware-accelerated numerical library and optimized math kernel library, providing a computational engine for large-scale matrix multiplication and vector operations.

The library distinguishes itself through the use of hand-tuned assembly kernels and SIMD instruction mapping, such as AVX and SVE, to maximize floating-point performance on specific CPU architectures. It features a multi-threaded framework that manages parallel execution and thread affinity, allowing for the distribution of heavy numerical workloads across multiple CPU cores.

Its broader capabilities include automatic and manual CPU architecture detection to select the most efficient binary kernels at runtime. It supports various floating-point precision levels, including single, double, complex, and half-precision formats, as well as configurable integer precision for handling larger data sets. The project provides C and Fortran interfaces for BLAS and LAPACK routines and supports cross-compilation for targeting specific hardware architectures.

## Tags

### Scientific & Mathematical Computing

- [Linear Algebra Libraries](https://awesome-repositories.com/f/scientific-mathematical-computing/linear-algebra-libraries.md) — Provides a high-performance implementation of the BLAS standard for numerical computing and matrix operations.
- [Linear Algebra](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/linear-algebra.md) — Provides high-performance mathematical routines for vector and matrix operations used in scientific computing.
- [Hardware-Accelerated Numerical Libraries](https://awesome-repositories.com/f/scientific-mathematical-computing/hardware-accelerated-numerical-libraries.md) — Leverages SIMD instructions like AVX and SVE to accelerate complex mathematical computations on modern processors.
- [Kernel Optimizations](https://awesome-repositories.com/f/scientific-mathematical-computing/linear-algebra-libraries/kernel-optimizations.md) — Implements hand-tuned assembly kernels and C routines to maximize floating-point performance on specific CPUs.
- [Linear Algebra Routines](https://awesome-repositories.com/f/scientific-mathematical-computing/linear-algebra-routines.md) — Provides high-performance implementations of fundamental linear algebra routines for matrix and vector operations. ([source](http://www.openmathlib.org/OpenBLAS/docs/build_system/))
- [Floating Point Computation](https://awesome-repositories.com/f/scientific-mathematical-computing/floating-point-computation.md) — Supports multiple floating-point formats, including single, double, complex, and half-precision, using native hardware instructions. ([source](http://www.openmathlib.org/OpenBLAS/docs/build_system/))
- [CPU Cache Block Tuning](https://awesome-repositories.com/f/scientific-mathematical-computing/linear-algebra-libraries/kernel-optimizations/cpu-cache-block-tuning.md) — Increases matrix multiplication speed by tuning cache block sizes and using hand-tuned assembly kernels. ([source](http://www.openmathlib.org/OpenBLAS/docs/developers/))
- [Precision-Agnostic Wrappers](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/arithmetic-number-types/floating-point-handlers/floating-point-precision-utilities/precision-switched-float-builds/precision-agnostic-wrappers.md) — Creates C and Fortran wrappers that map generic mathematical calls to specific floating-point precision implementations.
- [Numerical Thread Control](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-thread-control.md) — Limits the maximum number of threads used for computations via environment variables to manage resources. ([source](https://cdn.jsdelivr.net/gh/openmathlib/openblas@develop/README.md))
- [Parallel Computation Thread Pools](https://awesome-repositories.com/f/scientific-mathematical-computing/parallel-computation-thread-pools.md) — Uses parallel computation thread pools to balance performance and resource usage across different hardware. ([source](http://www.openmathlib.org/OpenBLAS/docs/runtime_variables/))

### Artificial Intelligence & ML

- [Numerical Computing Libraries](https://awesome-repositories.com/f/artificial-intelligence-ml/numerical-computing-libraries.md) — Provides a low-level library for high-performance linear algebra and multidimensional array operations.
- [CPU Kernel Selection](https://awesome-repositories.com/f/artificial-intelligence-ml/model-architecture-selection/heuristic-selection-logic/gpu-kernel-selection-heuristics/cpu-kernel-selection.md) — Automatically detects the processor model at runtime to select the most efficient binary kernels. ([source](http://www.openmathlib.org/OpenBLAS/docs/distributing/))

### Data & Databases

- [Multi-threaded Matrix Operations](https://awesome-repositories.com/f/data-databases/parallel-matrix-operations/multi-threaded-matrix-operations.md) — Executes large-scale linear algebra operations across multiple CPU threads to accelerate computation.

### Education & Learning Resources

- [Assembly Kernels](https://awesome-repositories.com/f/education-learning-resources/educational-resources/systems-applied-computing/machine-learning-education/computational-performance-optimization/assembly-optimization-guides/assembly-kernels.md) — Uses hand-tuned assembly kernels to maximize floating-point performance on specific CPU architectures.

### Operating Systems & Systems Programming

- [CPU Instruction Optimizations](https://awesome-repositories.com/f/operating-systems-systems-programming/cpu-instruction-optimizations.md) — Implements low-level optimizations targeting specific processor instruction sets to maximize mathematical throughput.
- [Architecture Detection](https://awesome-repositories.com/f/operating-systems-systems-programming/architecture-detection.md) — Identifies the processor model and revision at runtime to select the most compatible optimized binary. ([source](http://www.openmathlib.org/OpenBLAS/docs/developers/))
- [CPU Affinity Binding](https://awesome-repositories.com/f/operating-systems-systems-programming/cpu-affinity-binding.md) — Binds specific threads to CPU cores to optimize cache usage and maximize processing efficiency. ([source](http://www.openmathlib.org/OpenBLAS/docs/extensions/))
- [Multi-threaded Memory Management](https://awesome-repositories.com/f/operating-systems-systems-programming/multi-threaded-memory-management.md) — Manages internal memory buffers and threading backends to scale linear algebra operations across CPU cores. ([source](http://www.openmathlib.org/OpenBLAS/docs/build_system/))

### Programming Languages & Runtimes

- [Hardware-Targeted Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/multi-target-compilers/hardware-targeted-compilation.md) — Compiles routines into binaries specifically optimized for particular hardware revisions to maximize performance. ([source](http://www.openmathlib.org/OpenBLAS/docs/build_system/))
- [Binary Cross-Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/cross-platform-library-compilations/binary-cross-compilation.md) — Compiles optimized mathematical source code into executable binaries for diverse target architectures.

### Software Engineering & Architecture

- [Vector Instruction Mapping](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/computational-efficiency/cpu-optimization-strategies/hardware-instruction-targeting/vector-instruction-mapping.md) — Maps specialized wide-bit vector instructions like AVX and SVE to hardware-accelerated intrinsics.
- [Vector Instruction Targets](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/computational-efficiency/cpu-optimization-strategies/hardware-instruction-targeting/instruction-set-targets/vector-instruction-targets.md) — Utilizes specific vector instruction sets such as AVX and SVE to increase performance for math kernels. ([source](https://cdn.jsdelivr.net/gh/openmathlib/openblas@develop/README.md))

### Development Tools & Productivity

- [Hardware-Specific Binaries](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/binary-compilation-toolchains/server-binary-compilers/hardware-specific-binaries.md) — Produces machine code tailored to specific processor architectures through optimized build-time configurations.
- [Cross-Compilation Toolchains](https://awesome-repositories.com/f/development-tools-productivity/cross-compilation-toolchains.md) — Provides build environments to generate executable binaries for diverse hardware architectures from a single host. ([source](http://www.openmathlib.org/OpenBLAS/docs/user_manual/))
- [Hardware Capability Detection](https://awesome-repositories.com/f/development-tools-productivity/runtime-hardware-configuration/hardware-capability-detection.md) — Identifies processor models at startup to automatically configure the software runtime for the best available kernels. ([source](https://cdn.jsdelivr.net/gh/openmathlib/openblas@develop/README.md))

### DevOps & Infrastructure

- [Multi-Architecture Hardware Targeting](https://awesome-repositories.com/f/devops-infrastructure/multi-architecture-hardware-targeting.md) — Defines kernel configurations and maps hardware parameters to support multiple CPU architectures. ([source](http://www.openmathlib.org/OpenBLAS/docs/developers/))
