Basic Linear Algebra Subprograms
Basic Linear Algebra Subprograms (BLAS) (укр. Основні підпрограми з лінійної алгебри) — встановлений де факто стандард інтерфейсу бібліотек підпрограм, призначених для виконання основних операцій лінійної алгебри, таких як, наприклад, множення матриць та векторів. Уперше такі підпрограми були опубліковані в 1979 році. На їх основі будуються більші пакети, такі як LAPACK. Конкретні втілення протоколу у вигляді бібліотек розробляються як провідними лідерами комп'ютерної технології, наприклад, Intelом, так і іншими авторами. Підпограми лінійної алгебри широко використовуються в застосуваннях, які вимагають інтенсивних обчислень, а тому вимагають особливо уважної розробки й оптимізації. Наприклад, ATLAS — варіант BLAS, який може легко переноситися з однієї платформи на іншу й оптимізуватися для використання на машинах конкретної архітектури.
Бенчмарк LINPACK сильно залежить від швидкості виконання підпрограми DGEMM, яка входить до BLAS.
Функціональність
Функціональність BLAS розбивається на три рівні
Рівень 1
Цей рівень містить операції загального вигляду
а також скалярного добутку, норми вектора та деякі інші.
Рівень 2
Цей рівень містить операції дій між векторами й матрицями загального вигляду
а також підпрограми знаходження розв'язку рівняння для трикутної матриці .
Рівень 3
Цей рівень містить операції з матрицями вигляду
а також розв'язок рівняння для трикутної матриці та інше підпрограми. Зокрема сюди входить популярна у використаннях операція перемноження матриць.
Впровадження
- refblas
- Офіційна реалізація з netlib. Існують ферсії на мовах програмування C та Fortran 77
- GSL
- GNU Scientific Library містить мульти-платформенне впровадження на C, що розповсюджується під ліцензією GNU General Public License.