Перейти до вмісту

Basic Linear Algebra Subprograms

Матеріал з Вікіпедії — вільної енциклопедії.

Basic Linear Algebra Subprograms (BLAS) (укр. Основні підпрограми з лінійної алгебри) — встановлений де факто стандард інтерфейсу бібліотек підпрограм, призначених для виконання основних операцій лінійної алгебри, такихї як, наприклад, множення матриць та векторів. Уперше такі підпрограми були опубліковані в 1979 році. На їх основі будуються більші пакунки, такі як LAPACK. Конкретні втілення протоколу у вигляді бібліотек розробляються як провідними лідерами комп'ютерної технології, наприклад, Інтелом, так і іншими авторами. Підпограми лінійної алгебри широко використовуються в застосуваннях, які вимагають інтенсивних обчислень, а тому вимагають особливо уважної розробки й оптимізації. Наприклад, ATLAS — варіант BLAS, який може легко переноситися з однієї платформи на іншу й оптимізуватися для використання на машинах конкретної архітектури.

Бенчмарк LINPACK сильно залежить від швидкості виконання підпрограми DGEMM, яка входить до BLAS.

Функціональність

Функціональність BLAS розбивається на три рівні

Рівень 1

Цей рівень містить операції загального вигляду

а також скалярного добутку, норми вектора та деякі інші.

Рівень 2

Цей рівень містить операції дій між векторами й матрицями загального вигляду

а також підпрограми знаходження розв'язку рівняння для трикутної матриці .

Рівень 3

Цей рівень містить операції з матрицями вигляду

а також розв'язок рівняння для трикутної матриці та інше підпрограми. Зокрема сюди входить популярна у використаннях операція перемноження матриць.


Впровадження

refblas
Офіційна реалізація з netlib. Існують ферсії на мовах програмування C та Fortran 77
GSL
GNU Scientific Library містить мульти-платформенне впровадження на C, що розповсюджується під ліцензією GNU General Public License.