Basic Linear Algebra Subprograms

Матеріал з testwiki
Перейти до навігації Перейти до пошуку

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

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

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

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

Рівень 1

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

𝒚α𝒙+𝒚

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

Рівень 2

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

𝒚αA𝒙+β𝒚

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

Рівень 3

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

CαAB+βC

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

Реалізації

Accelarate
Платформа від Apple створена для Mac OS X та iOS, яка містить адаптовані версії BLAS і LAPACK. [1] Шаблон:Webarchive [2] Шаблон:Webarchive
C++ AMP BLAS
Бібліотека C++ AMP BLAS є відкритою реалізацією BLAS для Майкрософтівського розширення Visual C++. [3] Шаблон:Webarchive
Goto BLAS
Опублікована під ліцензією BSD реалізація BLAS, адаптована під Intel Nehalem/Atom, VIA VIA Nano, AMD Opteron. [4]
GSL
GNU Scientific Library бібліотека обчислювальних методів для мов C та С++, що розповсюджується під ліцензією GNU General Public License. [5] Шаблон:Webarchive
Intel MKL
Інтелівська математична бібліотека (Math Kernel Library), розрахована на x86 32-бітну і 64-бітну архітектуру. Включає оптимізації для Intel Pentium, Core та Intel Xeon процесорів і Intel Xeon Phi; підтримується Linux, Windows і Mac OS X. [6] Шаблон:Webarchive
Netlib BLAS
Офіційна реалізація з netlib. Існують версії на мовах програмування C та Fortran 77. [7] Шаблон:Webarchive
OpenBLAS
Оптимізований і розпаралелений BLAS на основі Goto BLAS викладений на GitHub Шаблон:Webarchive. [8] Шаблон:Webarchive


Шаблон:Числова лінійна алгебра Шаблон:Без джерел