基于 SIMD 加速的数值计算库,提供距离、点积与矩阵运算,支持 15 种以上数值类型,并提供多语言绑定。
- Star
- 7,667
- Fork
- 1,750
- 未关闭 Issue
- 163
- 最近提交
- 20小时前
这是什么?
OpenBLAS 实现了 BLAS(基础线性代数子程序)例程,这是数值计算软件中向量和矩阵运算最常用的底层基础库。项目基于 GotoBLAS2 1.13 BSD 版本开发,并内置了 LAPACK 线性代数库及 LAPACKE 的 C 接口。
库中为多种处理器提供了优化内核,覆盖 Intel x86-64(从 Sandy Bridge 到 Sapphire Rapids)、AMD Zen、Neoverse 和 Cortex-A 等 ARM64 核心、POWER、IBM Z、支持 RISC-V 向量扩展和 LoongArch 的芯片。通过 DYNAMIC_ARCH 构建方式,可以在一个库中包含多个目标架构,并在运行时自动选择合适的内核。构建支持 make 和 CMake,也支持交叉编译。
OpenBLAS 可运行于 GNU/Linux、Windows(MinGW 或 Visual Studio)、macOS 以及多种 BSD 系统,也可用于 WebAssembly。线程数可通过环境变量或运行时函数进行设置。
核心功能
- 01实现 BLAS,并内置 LAPACK 及 LAPACKE C 接口。
- 02为多种 x86、ARM64、POWER、IBM Z、RISC-V 和 LoongArch 处理器提供优化内核。
- 03DYNAMIC_ARCH 构建可在一个库中包含多个 CPU 目标,并在运行时选择内核。
- 04支持 make 和 CMake 构建,包括交叉编译。
- 05可通过环境变量或运行时函数设置线程数。
- 06提供 Windows 预编译包,并可通过多种包管理器安装。
适用场景
- 加速科学计算和数值库中的矩阵与向量运算。
- 为 R、NumPy、SciPy 等数值计算环境提供 BLAS/LAPACK 后端。
- 在不同架构的嵌入式或服务器 CPU 上构建高性能线性代数程序。
- 通过 WebAssembly 构建在浏览器中运行数值计算。
快速上手
- 1
从 GitHub 获取源代码(默认分支为 develop)
- 2
使用 make 构建库(自动检测 CPU)
make - 3
安装到指定目录
make install PREFIX=your_installation_directory
使用前须知
- 不支持 GPU。
- 从源码构建需要 C 编译器,部分 CPU 目标仅为初步支持。
标签
常见问题
- OpenBLAS 是什么?
- 面向多种 CPU 架构优化的开源 BLAS/LAPACK 线性代数库。 OpenBLAS 实现了 BLAS(基础线性代数子程序)例程,这是数值计算软件中向量和矩阵运算最常用的底层基础库。项目基于 GotoBLAS2 1.13 BSD 版本开发,并内置了 LAPACK 线性代数库及 LAPACKE 的 C 接口。
- OpenBLAS 可以免费使用吗?用的什么许可证?
- OpenBLAS 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
- OpenBLAS 还在维护吗?
- 活跃维护中。OpenBLAS 最近一次提交是在 2026年11月6日。
- OpenBLAS 适合用来做什么?
- 加速科学计算和数值库中的矩阵与向量运算。 为 R、NumPy、SciPy 等数值计算环境提供 BLAS/LAPACK 后端。 在不同架构的嵌入式或服务器 CPU 上构建高性能线性代数程序。 通过 WebAssembly 构建在浏览器中运行数值计算。
- OpenBLAS 怎么安装和运行?
- 从 GitHub 获取源代码(默认分支为 develop) 使用 make 构建库(自动检测 CPU): make 安装到指定目录: make install PREFIX=your_installation_directory
- 在哪里获取 OpenBLAS?
- 源代码和安装说明在 GitHub 上:https://github.com/OpenMathLib/OpenBLAS
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
Python 科学计算的基础包,核心是高效的 N 维数组对象。
基于 C++20 的头文件库,以 NumPy 风格的张量表达式在 NVIDIA GPU 或多线程 CPU 上进行数值计算,支持可选的内核融合。
面向 NVIDIA GPU 的 CUDA C++ 模板库与 Python DSL,用于编写高性能矩阵乘法等线性代数内核。
面向 JavaScript 与 TypeScript 的基础数值与科学计算标准库,可在浏览器和 Node.js 中运行。
面向 NumPy 的快速数组表达式求值库,分块并行计算,减少内存占用。