Repolode
OpenMathLib

OpenMathLib/OpenBLAS

面向多种 CPU 架构优化的开源 BLAS/LAPACK 线性代数库。

可替代:Intel MKL

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. 1

    从 GitHub 获取源代码(默认分支为 develop)

  2. 2

    使用 make 构建库(自动检测 CPU)

    make
  3. 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 数据每日更新。

相关项目