BLAS ( — базовые подпрограммы линейной алгебры) — стандарт де-факто интерфейса программирования приложений для создания библиотек, выполняющих основные операции линейной алгебры, такие как умножение векторов и матриц.

Впервые опубликован в 1979 году, и использован для создания больших пакетов, например LAPACK. Интенсивно используемые в высокопроизводительных вычислениях, высокооптимизированные реализации интерфейса BLAS были разработаны производителями аппаратного обеспечения, такими как Intel, а также другими авторами (например, ATLAS — переносимый самооптимизирующийся BLAS).

Тест LINPACK Benchmark в своей работе основывается в большой степени на DGEMM, подпрограмме BLAS.

Функциональность Функциональность BLAS делится на три уровня.

Уровень 1 Этот уровень содержит векторные операции вида:

операции скалярного произведения, взятия нормы вектора и другие операции.

Уровень 2 Этот уровень содержит операции матрица-вектор вида:

решение для с треугольной матрицей и другие операции.

Уровень 3 Содержит операции матрица-матрица вида:

решение для треугольной матрицы и другие операции. Этот уровень содержит широко используемую операцию GEMM ().

Реализации refblas Официальная эталонная реализация из netlib. Доступны версии на C и Fortran 77. Accelerate Фреймворк от Apple для Mac OS X, включающий оптимизированные версии BLAS и LAPACK для процессоров PowerPC и Intel Core. ACML Основная математическая библиотека AMD, поддерживающая процессоры AMD Athlon и Opteron под Linux и Windows. ATLAS Самооптимизирующийся программный пакет линейной алгебры (), реализация интерфейса BLAS с открытым исходным кодом для C и Fortran 77. CUDA SDK NVIDIA CUDA SDK включает функциональность BLAS (cuBLAS) для написания программ на C для видеокарт серии GeForce 8, GeForce 200, GeForce 300 (Fermi). ESSL Библиотека инженерных и научных подпрограмм () от IBM, поддерживающая архитектуру PowerPC под AIX и Linux. libflame Реализация библиотеки линейной алгебры, включающей BLAS, проектом FLAME. Goto BLAS Реализация Кадзусигэ Гото. HP MLIB Математическая библиотека от HP, поддерживающая архитектуры IA-64, PA-RISC, x86 и Opteron под HP-UX и Linux. Intel MKL Основная математическая библиотека Intel (), поддерживающая процессоры Intel под Linux, Windows и Mac OS X. MathKeisan Математическая библиотека от NEC, поддерживающая архитектуру NEC SX под SUPER-UX, и Itanium под Linux. PDLIB/SX Математическая библиотека, находящаяся в общественном достоянии (), от NEC для системы NEC SX-4. SCSL Программная библиотека для научных вычислений () от SGI содержит реализации BLAS и LAPACK для рабочих станций SGI Irix. Sun Performance Linaray Sun Performance Library содержит оптимизированные BLAS и LAPACK для архитектур SPARC и AMD64 под Solaris 8, 9, и 10. uBLAS Библиотека шаблонных классов C++, обеспечивающая функциональность BLAS. Часть библиотеки Boost. В отличие от других реализаций uBLAS фокусируется больше на правильности алгоритмов, используя продвинутые возможности C++, чем на высокой производительности. GSL Научная библиотека GNU () содержит кроссплатформенную неоптимизированную реализацию на C, которая распространяется под GNU GPL. CLBlast Кросплатформенная библиотека (Windows, Linux, MacOS) C++, реализованная с помощью OpenCL может исполнятся на широком спектре графических процессоров или других устройств поддерживающих параллельные вычисления.

См. также LINPACK LAPACK

Ссылки Страница BLAS на Netlib.org

Категория:Линейная алгебра Категория:Библиотеки программ Категория:Свободное программное обеспечение, написанное на Фортране Категория:Численные методы линейной алгебры