openblas

Оптимизированная библиотека подпрограмм линейной алгебры (BLAS, Basic Linear Algebra Subprograms), основанная на GotoBLAS2. Она предоставляет высокопроизводительные реализации стандартных интерфейсов BLAS и LAPACK (Linear Algebra PACKage) для широкого спектра процессорных архитектур. Библиотека широко используется в научных вычислениях, машинном обучении и других областях, требующих эффективных матричных операций.

Особенности

  • оптимизированные реализации BLAS уровней 1, 2 и 3 (векторные, матрично-векторные и матрично-матричные операции);
  • встроенная поддержка LAPACK для решения сложных задач линейной алгебры;
  • автоматическое определение и оптимизация под конкретную архитектуру процессора во время сборки;
  • многопоточность для ускорения вычислений на многоядерных системах;
  • интерфейсы CBLAS для C/C++ и стандартные Fortran-интерфейсы BLAS/LAPACK.

Основные компоненты

OpenBLAS предоставляет реализации стандартных интерфейсов BLAS и LAPACK, а также ряд дополнительных функций для управления поведением библиотеки во время выполнения (подробнее с документацией можно ознакомиться здесь).

BLAS и CBLAS интерфейсы

BLAS разделён на три уровня, каждый из которых предоставляет функции для определённого класса операций. CBLAS предоставляет C-обёртку для этих функций.

Основные категории функций BLAS:

  • Уровень 1 — векторные операции:

    • *dot / *dotu — скалярное произведение векторов;
    • *axpy — операция y <- a*x + y;
    • *nrm2 — евклидова норма вектора;
    • *asum — сумма абсолютных значений;
    • *swap, *copy, *scal — обмен, копирование и масштабирование векторов.
  • Уровень 2 — матрично-векторные операции:

    • *gemv — умножение матрицы на вектор;
    • *ger, *syr, *her — rank-1 и rank-2 обновления матриц;
    • *trsv, *tpsv — решение треугольных систем.
  • Уровень 3 — матрично-матричные операции:

    • *gemm — общее умножение матриц (ключевая операция для многих приложений);
    • *symm, *hemm, *syrk, *herk — умножение симметричных/эрмитовых матриц;
    • *trmm, *trsm — умножение на треугольную матрицу и решение треугольных систем.

LAPACK и LAPACKE интерфейсы

OpenBLAS включает полную реализацию LAPACK — библиотеки для решения сложных задач линейной алгебры. Доступны как оригинальные Fortran-интерфейсы, так и C-обёртка LAPACKE.

Основные категории функций LAPACK:

  • Решение систем линейных уравнений:

    • *gesv — общая система;
    • *posv — для положительно определённых матриц;
    • *sysv, *hesv — для симметричных/эрмитовых матриц.
  • Разложения матриц:

    • *getrf — LU-разложение;
    • *potrf — разложение Холецкого;
    • *geqrf — QR-разложение;
    • *syev, *heev — вычисление собственных значений и векторов;
    • *gesvd — сингулярное разложение (SVD).
  • Методы наименьших квадратов:

    • *gels — решение задач методом наименьших квадратов.

Управление памятью и дополнительные функции

Библиотека предоставляет функции для контроля над выделением памяти и получения информации о версии.

Основные функции:

  • openblas_set_affinity(enable) — включение/отключение привязки к ядрам;
  • openblas_get_parallel() — определение типа параллелизма (0 — нет, 1 — pthreads, 2 — OpenMP);
  • openblas_get_config() — получение строки с конфигурацией сборки;
  • openblas_get_corename() — имя целевой архитектуры, под которую скомпилирована библиотека;

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "openblas/0.3.27@aurora",
    )    

Процесс локальной сборки описан в документации.

openblas

An optimized BLAS library based on GotoBLAS2 1.13 BSD version
Лицензия
BSD-3-Clause
Версия
Автор
Daniil Markevich <d.markevich@omp.ru>
Домашняя страница
Скачать
armv7
4.46 Mb
MD5: 1e99891208dc897786fe55b80cfadea2
Updated: 08.04.2026, 19:58:59
armv8
5.66 Mb
MD5: 2d3a9356897a3bab51e4a4d80ac884d0
Updated: 08.04.2026, 19:58:52
x86_64
6.17 Mb
MD5: e95116d09c3139febf987522bb729cf3
Updated: 08.04.2026, 19:59:02
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.