~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 3CD9DF81F2848CBB7ECD6D3C3268E104__1710668640 ✰
Заголовок документа оригинал.:
✰ Basic Linear Algebra Subprograms - Wikipedia ✰
Заголовок документа перевод.:
✰ Основные подпрограммы линейной алгебры — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/3c/04/3cd9df81f2848cbb7ecd6d3c3268e104.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/3c/04/3cd9df81f2848cbb7ecd6d3c3268e104__translat.html ✰
Дата и время сохранения документа:
✰ 11.06.2024 15:27:40 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 17 March 2024, at 12:44 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Основные подпрограммы линейной алгебры — Википедия Jump to content

Основные подпрограммы линейной алгебры

Из Википедии, бесплатной энциклопедии

БЛАС
Стабильная версия
3.11.0 / 11 ноября 2022 г .; 19 месяцев назад ( 11.11.2022 )
Написано в зависит от реализации
Платформа Кросс-платформенный
Тип Библиотека
Веб-сайт www .netlib .org /блас /

Базовые подпрограммы линейной алгебры ( BLAS ) — это спецификация , которая предписывает набор подпрограмм низкого уровня для выполнения общих операций линейной алгебры , таких как сложение векторов , скалярное умножение , скалярное произведение , линейные комбинации и умножение матриц . Это де-факто стандартные низкоуровневые процедуры для библиотек линейной алгебры; подпрограммы имеют привязки как для C («интерфейс CBLAS»), так и для Fortran («интерфейс BLAS»). Хотя спецификация BLAS является общей, реализации BLAS часто оптимизированы для скорости на конкретной машине, поэтому их использование может принести существенный выигрыш в производительности. Реализации BLAS будут использовать преимущества специального оборудования с плавающей запятой, такого как векторные регистры или инструкции SIMD .

Она возникла как библиотека Фортрана в 1979 году. [1] а его интерфейс был стандартизирован Техническим форумом BLAS (BLAST), последний отчет которого по BLAS можно найти на веб-сайте netlib . [2] Эта библиотека Фортрана известна как эталонная реализация (иногда ее ошибочно называют библиотекой BLAS) и не оптимизирована по скорости, но находится в свободном доступе . [3] [4]

Большинство библиотек, предлагающих процедуры линейной алгебры, соответствуют интерфейсу BLAS, что позволяет пользователям библиотеки разрабатывать программы, безразличные к используемой библиотеке BLAS.

Было разработано множество библиотек BLAS для различных аппаратных платформ. Примеры включают cuBLAS (NVIDIA GPU, GPGPU ), rocBLAS (AMD GPU) и OpenBLAS . Примеры ветвей библиотеки BLAS на базе ЦП: OpenBLAS , BLIS (программное обеспечение для создания экземпляров библиотек, подобных BLAS) , библиотеки Arm Performance Libraries, [5] ATLAS и библиотека математического ядра Intel (iMKL). AMD поддерживает версию BLIS, оптимизированную для платформы AMD . [6] ATLAS — это переносимая библиотека, которая автоматически оптимизируется под произвольную архитектуру. iMKL — бесплатная программа [7] и собственность [8] библиотека поставщика, оптимизированная для x86 и x86-64 с упором на производительность процессоров Intel . [9] OpenBLAS — это библиотека с открытым исходным кодом, вручную оптимизированная для многих популярных архитектур. в Тесты LINPACK значительной степени зависят от процедуры BLAS. gemm для измерения его производительности.

Многие численные программные приложения используют BLAS-совместимые библиотеки для выполнения вычислений линейной алгебры, включая LAPACK , LINPACK , Armadillo , GNU Octave , Mathematica , [10] МАТЛАБ , [11] НумПи , [12] R , Джулия и Lisp-Stat.

Предыстория [ править ]

С появлением численного программирования стали полезны сложные библиотеки подпрограмм. Эти библиотеки будут содержать подпрограммы для общих математических операций высокого уровня, таких как поиск корня, обращение матрицы и решение систем уравнений. Языком выбора был FORTRAN . Самой известной библиотекой числового программирования была IBM Scientific Subroutine Package (SSP). [13] Эти библиотеки подпрограмм позволяли программистам сосредоточиться на своих конкретных проблемах и избежать повторной реализации хорошо известных алгоритмов. Библиотечные процедуры также будут лучше, чем средние реализации; матричные алгоритмы, например, могут использовать полный поворот для повышения числовой точности. Библиотечные процедуры также будут иметь более эффективные процедуры. Например, библиотека может включать программу для решения матрицы верхней треугольной формы. Библиотеки будут включать версии некоторых алгоритмов с одинарной и двойной точностью.

Первоначально эти подпрограммы использовали жестко запрограммированные циклы для своих низкоуровневых операций. Например, если подпрограмме необходимо выполнить умножение матриц, то она будет иметь три вложенных цикла. Программы линейной алгебры имеют множество общих операций низкого уровня (так называемые «ядерные» операции, не относящиеся к операционным системам ). [14] Между 1973 и 1977 годами было обнаружено несколько таких операций ядра. [15] Эти операции ядра стали определенными подпрограммами, которые могли вызывать математические библиотеки. Вызовы ядра имели преимущества перед жестко запрограммированными циклами: библиотечная процедура была бы более читабельной, было бы меньше шансов на ошибки, а реализацию ядра можно было бы оптимизировать по скорости. Спецификация для этих операций ядра с использованием скаляров и векторов , базовых подпрограмм линейной алгебры уровня 1 (BLAS), была опубликована в 1979 году. [16] BLAS использовался для реализации библиотеки подпрограмм линейной алгебры LINPACK .

Абстракция BLAS позволяет настроить высокую производительность. Например, LINPACK — это библиотека общего назначения, которую можно использовать на многих разных машинах без изменений. LINPACK может использовать общую версию BLAS. Для повышения производительности разные машины могут использовать адаптированные версии BLAS. По мере усложнения компьютерной архитектуры векторные машины появились . BLAS для векторной машины может использовать быстрые векторные операции машины. (Хотя векторные процессоры со временем вышли из моды, векторные инструкции в современных процессорах необходимы для оптимальной производительности в процедурах BLAS.)

Другие функции машины стали доступны и их также можно было использовать. Следовательно, с 1984 по 1986 год BLAS был дополнен операциями ядра уровня 2, которые касались векторно-матричных операций. Иерархия памяти также была признана объектом использования. Многие компьютеры имеют кэш-память , которая намного быстрее основной памяти; локализация манипуляций с матрицами позволяет лучше использовать кеш. В 1987 и 1988 годах было установлено, что BLAS уровня 3 выполняет матрично-матричные операции. BLAS уровня 3 поощрял алгоритмы, разделенные на блоки. Библиотека LAPACK использует BLAS уровня 3. [17]

Оригинальный BLAS касался только плотно хранящихся векторов и матриц. Были рассмотрены дальнейшие расширения BLAS, например, для разреженных матриц. [18]

Функциональность [ править ]

Функциональность BLAS разделена на три набора процедур, называемых «уровнями», которые соответствуют как хронологическому порядку определения и публикации, так и степени полиномиальной сложности алгоритмов; Операции BLAS уровня 1 обычно занимают линейное время , O ( n ) операции уровня 2 квадратичное время и операции уровня 3 кубическое время. [19] Современные реализации BLAS обычно обеспечивают все три уровня.

Уровень 1 [ править ]

Этот уровень состоит из всех процедур, описанных в оригинальной презентации BLAS (1979). [1] который определял только векторные операции над пошаговыми массивами : скалярное произведение , векторные нормы , обобщенное векторное сложение формы

(называется " axpy", "топор плюс y") и ряд других операций.

Уровень 2 [ править ]

Этот уровень содержит матрично-векторные операции в том числе обобщенное - матрично векторное , умножение ( gemv):

а также решатель для x в линейном уравнении

при этом T треугольный. Разработка BLAS уровня 2 началась в 1984 году, а результаты были опубликованы в 1988 году. [20] Подпрограммы уровня 2 специально предназначены для повышения производительности программ, использующих BLAS на векторных процессорах , где BLAS уровня 1 неоптимальны, «поскольку скрывают от компилятора матрично-векторный характер операций». [20]

Уровень 3 [ править ]

Этот уровень, официально опубликованный в 1990 году, [19] содержит матричные операции , включая «общее матричное умножение » ( gemm), вида

где A и B могут быть транспонированы или эрмитово сопряжены внутри процедуры, и все три матрицы могут быть пошаговыми. Обычное умножение матриц AB можно выполнить, присвоив α значение единицы, а C — матрицу соответствующего размера, состоящую из всех нулей.

В уровень 3 также включены процедуры для вычислений.

где T треугольная матрица , помимо других функций.

Из-за повсеместного распространения матричных умножений во многих научных приложениях, в том числе для реализации остальной части BLAS уровня 3, [21] и поскольку существуют более быстрые алгоритмы, помимо очевидного повторения умножения матрицы на вектор, gemmявляется основной целью оптимизации для разработчиков BLAS. Например, разложив один или оба A , B на блочные матрицы , gemmможет быть реализовано рекурсивно . Это одна из причин включения параметра β , [ сомнительно обсудить ] поэтому результаты предыдущих блоков могут быть аккумулированы. Обратите внимание, что это разложение требует особого случая β = 1 , для которого оптимизируются многие реализации, тем самым исключая одно умножение для каждого значения C . Такое разложение обеспечивает лучшую локальность ссылок как в пространстве, так и во времени для данных, используемых в продукте. Это, в свою очередь, использует кэш системы . [22] Для систем с более чем одним уровнем кэша блокировка может применяться второй раз в том порядке, в котором блоки используются в вычислениях. Оба этих уровня оптимизации используются в таких реализациях, как ATLAS . Совсем недавно реализации Казусигэ Гото показали, что блокировка только для кэша L2 в сочетании с тщательной амортизацией копирования в непрерывную память для уменьшения промахов TLB превосходит ATLAS . [23] Тщательно настроенная реализация, основанная на этих идеях, является частью GotoBLAS , OpenBLAS и BLIS .

Распространенная вариация gemm это gemm3m, который вычисляет сложное произведение, используя «три умножения действительных матриц и пять сложений действительных матриц вместо обычных умножений четырех действительных матриц и двух сложения действительных матриц», алгоритм, аналогичный алгоритму Штрассена, впервые описанному Питером Унгаром. [24]

Реализации [ править ]

Ускорение
macOS Платформа Apple для и iOS , включающая настроенные версии BLAS и LAPACK . [25] [26]
Библиотеки производительности рук
Библиотеки производительности Arm , поддерживающие 64-битные AArch64 процессоры Arm на базе , доступные на сайте Arm . [5]
АТЛАС
Автоматически настраиваемое программное обеспечение для линейной алгебры с открытым исходным кодом BLAS реализация API для C и Fortran 77 . [27]
ВСПЫШКА
Программное обеспечение для создания экземпляров BLAS-подобных библиотек для быстрого создания экземпляров. Оптимизирован для большинства современных процессоров. BLIS — это полный рефакторинг GotoBLAS, который уменьшает объем кода, который необходимо написать для данной платформы. [28] [29]
C++ AMP-BLAS
Библиотека C++ AMP BLAS — это реализация BLAS с открытым исходным кодом для языкового расширения Microsoft AMP для Visual C++. [30]
куБЛАС
Оптимизированный BLAS для графических карт на базе NVIDIA, требующий небольшого количества дополнительных вызовов библиотеки. [31]
НВБЛАС
Оптимизированный BLAS для карт графического процессора на базе NVIDIA, обеспечивающий только функции уровня 3, но в качестве прямой замены других библиотек BLAS. [32]
clBLAS
OpenCL - реализация BLAS от AMD. Часть вычислительных библиотек AMD. [33]
clBLAST
Настроенная реализация OpenCL большей части API BLAS. [34]
Собственный БЛАС
Библиотека Fortran 77 и C BLAS, реализованная поверх MPL под лицензией библиотеки Eigen , поддерживающая архитектуры x86 , x86-64 , ARM (NEON) и PowerPC .
ЭССЛ
архитектуру Библиотека инженерных и научных подпрограмм IBM, поддерживающая PowerPC под AIX и Linux . [35]
ГотоБЛАС
Kazushige Goto Реализация BLAS под лицензией BSD от , настроенная, в частности, для Intel Nehalem / Atom , VIA Nanoprocessor , AMD Opteron . [36]
Научная библиотека ГНУ
Мультиплатформенная реализация многих числовых процедур. Содержит интерфейс CBLAS.
HP МЛИБ
архитектуру Математическая библиотека HP поддерживает IA-64 , PA-RISC , x86 и Opteron под HP-UX и Linux .
Интел МКЛ
Библиотека Intel Math Kernel Library , поддерживающая 32- и 64-разрядные версии x86, доступна бесплатно на сайте Intel . [7] Включает оптимизацию для процессоров Intel Pentium , Core , Intel Xeon и Intel Xeon Phi ; поддержка Linux , Windows и macOS . [37]
МатКейсан
архитектуру Математическая библиотека NEC, поддерживающая NEC SX под SUPER-UX и Itanium под Linux. [38]
Нетлиб БЛАС
Официальная эталонная реализация Netlib , написанная на Fortran 77 . [39]
Нетлиб CBLAS
Ссылка на интерфейс C для BLAS. Также возможно (и популярно) вызывать Fortran BLAS из C. [40]
OpenBLAS
Оптимизированный BLAS на основе GotoBLAS, поддерживающий процессоры x86 , x86-64 , MIPS и ARM . [41]
ПДЛИБ/SX
системы Общественная математическая библиотека NEC для NEC SX-4 . [42]
рокБЛАС
Реализация, работающая на графических процессорах AMD через ROCm . [43]
SCSL
Библиотека программного обеспечения для научных вычислений SGI содержит реализации BLAS и LAPACK для рабочих станций SGI Irix . [44]
Библиотека производительности Sun
Оптимизированы BLAS и LAPACK для архитектур SPARC , Core и AMD64 под Solaris 8, 9 и 10, а также Linux. [45]
УБЛАС
Универсальная C++ библиотека классов шаблонов , обеспечивающая функциональность BLAS. Часть библиотеки Boost . Он обеспечивает привязки ко многим библиотекам с аппаратным ускорением в унифицированной нотации. Более того, uBLAS фокусируется на корректности алгоритмов с использованием расширенных функций C++. [46]

Библиотеки, использующие BLAS [ править ]

Броненосец
Armadillo — это библиотека линейной алгебры C++, целью которой является обеспечение хорошего баланса между скоростью и простотой использования. Он использует классы шаблонов и имеет дополнительные ссылки на BLAS/ATLAS и LAPACK. Он спонсируется NICTA (в Австралии) и распространяется по свободной лицензии. [47]
ЛАПАК
LAPACK — это библиотека линейной алгебры более высокого уровня, построенная на базе BLAS. Как и в случае с BLAS, существует эталонная реализация, но существует множество альтернатив, таких как libFlame и MKL.
Мне
Универсальная числовая библиотека с ускорением LLVM для науки и машинного обучения, написанная D. на Он предоставляет общие подпрограммы линейной алгебры (GLAS). Он может быть построен на основе реализации CBLAS. [48]

Похожие библиотеки (несовместимы с BLAS) [ править ]

Элементаль
Elemental — это программное обеспечение с открытым исходным кодом для линейной алгебры с плотной и разреженной памятью и оптимизации. [49]
Басем
— это библиотека шаблонов C++, позволяющая решать линейные уравнения и вычислять собственные значения. Он распространяется по лицензии BSD. [50]
ДЛИННЫЙ
Библиотека для приложений ускоренной математики ( LAMA ) — это библиотека шаблонов C++ для написания числовых решателей, предназначенных для различных типов оборудования (например, графических процессоров через CUDA или OpenCL ) в системах с распределенной памятью , скрывая программирование, специфичное для оборудования, от разработчика программы.
МТЛ4
Библиотека шаблонов Matrix версии 4 — это универсальная библиотека шаблонов C++ , обеспечивающая разреженную и плотную функциональность BLAS. MTL4 имеет интуитивно понятный интерфейс (похожий на MATLAB ) и широкую применимость благодаря универсальному программированию .

Разреженный BLAS [ править ]

несколько расширений BLAS для работы с разреженными матрицами За время существования библиотеки было предложено ; небольшой набор подпрограмм ядра с разреженной матрицей был окончательно стандартизирован в 2002 году. [51]

Пакетный BLAS [ править ]

Традиционные функции BLAS также были перенесены на архитектуры, поддерживающие высокий уровень параллелизма, такие как графические процессоры . Здесь традиционные функции BLAS обычно обеспечивают хорошую производительность для больших матриц. Однако при вычислении, например, произведений матрицы-матрицы множества небольших матриц с использованием процедуры GEMM эти архитектуры демонстрируют значительные потери производительности. Для решения этой проблемы в 2017 году была указана пакетная версия функции BLAS. [52]

Взяв в качестве примера приведенную выше процедуру GEMM, пакетная версия выполняет следующие вычисления одновременно для многих матриц:

Индекс в квадратных скобках указано, что операция выполняется для всех матриц в стопке. Часто эта операция реализуется для пошаговой пакетной компоновки памяти, где все матрицы объединены в массивы. , и .

Пакетные функции BLAS могут быть универсальным инструментом и позволяют, например, быстро реализовать экспоненциальные интеграторы и интеграторы Магнуса , которые обрабатывают длительные периоды интегрирования со многими временными шагами. [53] Здесь возведение матрицы в степень , вычислительно затратная часть интегрирования, может быть реализовано параллельно для всех временных шагов с использованием пакетных функций BLAS.

См. также [ править ]

Ссылки [ править ]

  1. ^ Перейти обратно: а б * Лоусон, CL; Хэнсон, Р.Дж.; Кинкейд, Д.; Крог, FT (1979). «Основные подпрограммы линейной алгебры для использования FORTRAN». АКМ Транс. Математика. Программное обеспечение . 5 (3): 308–323. дои : 10.1145/355841.355847 . hdl : 2060/19780018835 . S2CID   6585321 . Алгоритм 539.
  2. ^ «Технический форум БЛАС» . netlib.org . Проверено 7 июля 2017 г.
  3. ^ blaseman. Архивировано 12 октября 2016 г. на Wayback Machine . «Эти продукты представляют собой реализации общедоступных BLAS (базовые подпрограммы линейной алгебры) и LAPACK (ПАКЕТ линейной алгебры), которые были разработаны такими группами людей, как профессор Джек. Донгарра, Университет Теннесси, США, и все они опубликованы в WWW (URL: https://www.netlib.org/ )». [ постоянная мертвая ссылка ]
  4. ^ Джек Донгарра; Джин Голуб; Эрик Гросс; Клив Молер; Кейт Мур. «Netlib и NA-Net: создание научного вычислительного сообщества» (PDF) . netlib.org . Проверено 13 февраля 2016 г. Репозиторий программного обеспечения Netlib был создан в 1984 году для облегчения быстрого распространения общедоступных программных процедур для использования в научных вычислениях.
  5. ^ Перейти обратно: а б «Библиотеки производительности рук» . Рука . 2020 . Проверено 16 декабря 2020 г.
  6. ^ «Библиотека БЛАС» .
  7. ^ Перейти обратно: а б «Бесплатные варианты использования библиотеки Intel Math Kernel Library (MKL). Поддержите себя, без лицензионных отчислений» . Интел . 2015 . Проверено 31 августа 2015 г.
  8. ^ «Библиотека ядра Intel Math (Intel MKL)» . Интел . 2015 . Проверено 25 августа 2015 г.
  9. ^ «Уведомление об оптимизации» . Интел . 2012 . Проверено 10 апреля 2013 г.
  10. ^ Дуглас Куинни (2003). «Так что же нового в системе Mathematica 5.0?» (PDF) . Соединения МСОР . 3 (4). Академия высшего образования. Архивировано из оригинала (PDF) 29 октября 2013 г.
  11. ^ Клив Молер (2000). «МАТЛАБ объединяет LAPACK» . Матворкс . Проверено 26 октября 2013 г.
  12. ^ Стефан ван дер Вальт; С. Крис Колберт и Гаэль Варокво (2011). «Массив NumPy: структура для эффективных численных вычислений». Вычисления в науке и технике . 13 (2): 22–30. arXiv : 1102.1523 . Бибкод : 2011CSE....13b..22V . дои : 10.1109/MCSE.2011.37 . S2CID   16907816 .
  13. ^ Буасверт, Рональд Ф. (2000). «Математическое программное обеспечение: прошлое, настоящее и будущее». Математика и компьютеры в моделировании . 54 (4–5): 227–241. arXiv : cs/0004004 . Бибкод : 2000cs........4004B . дои : 10.1016/S0378-4754(00)00185-3 . S2CID   15157725 .
  14. ^ Даже в SSP (появившемся примерно в 1966 году) были некоторые базовые процедуры, такие как RADD (добавление строк), CADD (добавление столбцов), SRMA (масштабирование строки и добавление к другой строке) и RINT (обмен строк). Эти процедуры, очевидно, не использовались в качестве операций ядра для реализации других процедур, таких как инверсия матрицы. Видеть IBM (1970), Пакет научных подпрограмм System/360, версия III, Руководство программиста (5-е изд.), International Business Machines, GH20-0205-4 .
  15. ^ Форум BLAST 2001 , с. 1.
  16. ^ Лоусон и др. 1979 год .
  17. ^ BLAST Forum 2001 , стр. 1–2.
  18. ^ Форум BLAST 2001 , с. 2.
  19. ^ Перейти обратно: а б Донгарра, Джек Дж.; Дю Кроз, Джереми; Хаммарлинг, Свен; Дафф, Иэн С. (1990). «Набор базовых подпрограмм линейной алгебры 3-го уровня» . Транзакции ACM в математическом программном обеспечении . 16 (1): 1–17. дои : 10.1145/77626.79170 . ISSN   0098-3500 . S2CID   52873593 .
  20. ^ Перейти обратно: а б Донгарра, Джек Дж.; Дю Кроз, Джереми; Хаммарлинг, Свен; Хэнсон, Ричард Дж. (1988). «Расширенный набор подпрограмм базовой линейной алгебры FORTRAN». АКМ Транс. Математика. Программное обеспечение . 14 : 1–17. CiteSeerX   10.1.1.17.5421 . дои : 10.1145/42288.42291 . S2CID   3579623 .
  21. ^ Гото, Казусигэ ; ван де Гейн, Роберт А. (2008). «Высокопроизводительная реализация BLAS уровня 3» (PDF) . Транзакции ACM в математическом программном обеспечении . 35 (1): 1–14. дои : 10.1145/1377603.1377607 . S2CID   14722514 .
  22. ^ Голуб, Джин Х .; Ван Лоан, Чарльз Ф. (1996), Матричные вычисления (3-е изд.), Джонс Хопкинс, ISBN  978-0-8018-5414-9
  23. ^ Гото, Казусигэ ; ван де Гейн, Роберт А. (2008). «Анатомия высокопроизводительного умножения матриц». Транзакции ACM в математическом программном обеспечении . 34 (3): 12:1–12:25. CiteSeerX   10.1.1.111.3873 . дои : 10.1145/1356052.1356053 . ISSN   0098-3500 . S2CID   9359223 . (25 страниц) [1]
  24. ^ Ван Зи, Филд Г.; Смит, Тайлер М. (24 июля 2017 г.). «Реализация высокопроизводительного умножения комплексных матриц с помощью методов 3m и 4m». Транзакции ACM в математическом программном обеспечении . 44 (1): 1–36. дои : 10.1145/3086466 . S2CID   25580883 .
  25. ^ «Руководства и пример кода» . разработчик.apple.com . Проверено 7 июля 2017 г.
  26. ^ «Руководства и пример кода» . разработчик.apple.com . Проверено 7 июля 2017 г.
  27. ^ «Автоматически настраиваемое программное обеспечение для линейной алгебры (ATLAS)» . math-atlas.sourceforge.net . Проверено 7 июля 2017 г.
  28. ^ blis: Платформа программного обеспечения для создания экземпляров BLAS-подобных библиотек , Flame, 30 июня 2017 г. , получено 7 июля 2017 г.
  29. ^ Репозиторий BLIS на GitHub , 15 октября 2021 г.
  30. ^ «Библиотека C++ AMP BLAS» . КодПлекс . Архивировано из оригинала 8 июля 2017 г. Проверено 7 июля 2017 г.
  31. ^ «куБЛАС» . Разработчик NVIDIA . 29 июля 2013 г. Проверено 7 июля 2017 г.
  32. ^ «НВБЛАС» . Разработчик NVIDIA . 15 мая 2018 г. Проверено 15 мая 2018 г. [ постоянная мертвая ссылка ]
  33. ^ clBLAS: программная библиотека, содержащая функции BLAS, написанные на OpenCL , clMathLibraries, 03 июля 2017 г. , получено 7 июля 2017 г.
  34. ^ Нугтерен, Седрик (05 июля 2017 г.), CLBlast: настроенный OpenCL BLAS , получено 7 июля 2017 г.
  35. ^ Центр знаний IBM: Библиотека инженерных и научных подпрограмм
  36. ^ Милфельд, Кент. «ГотоБЛАС2» . Техасский центр перспективных вычислений . Архивировано из оригинала 23 марта 2020 г. Проверено 17 марта 2024 г.
  37. ^ «Библиотека ядра Intel Math (Intel MKL) | Программное обеспечение Intel» . программное обеспечение.intel.com . Проверено 7 июля 2017 г.
  38. ^ Маткейсан, NEC. «Матикейсан» . www.mathkeisan.com . Проверено 7 июля 2017 г.
  39. ^ «BLAS (Базовые подпрограммы линейной алгебры)» . www.netlib.org . Проверено 7 июля 2017 г.
  40. ^ «BLAS (Базовые подпрограммы линейной алгебры)» . www.netlib.org . Проверено 7 июля 2017 г.
  41. ^ «OpenBLAS: оптимизированная библиотека BLAS» . www.openblas.net . Проверено 7 июля 2017 г.
  42. ^ «PDLIB/SX: Бизнес-решение | NEC» . Архивировано из оригинала 22 февраля 2007 г. Проверено 20 мая 2007 г.
  43. ^ "рокБЛАС" . rocmdocs.amd.com . Проверено 21 мая 2021 г.
  44. ^ "SGI - Научная библиотека SCSL: Домашняя страница" . Архивировано из оригинала 13 мая 2007 г. Проверено 20 мая 2007 г.
  45. ^ «Студия разработчиков Oracle» . www.oracle.com . Проверено 7 июля 2017 г.
  46. ^ «Boost Basic Linear Algebra — 1.60.0» . www.boost.org . Проверено 7 июля 2017 г.
  47. ^ «Армадилло: библиотека линейной алгебры C++» . Arma.sourceforge.net . Проверено 7 июля 2017 г.
  48. ^ «Численные и системные библиотеки Дланга» . Гитхаб .
  49. ^ «Элементал: плотная распределенная память и прямая линейная алгебра с разреженной памятью и оптимизация — Элементал» . libelemental.org . Проверено 7 июля 2017 г.
  50. ^ «ХАСЕМ» . СоурсФордж . 17 августа 2015 г. Проверено 7 июля 2017 г.
  51. ^ Дафф, Иэн С.; Геру, Майкл А.; Посо, Ролдан (2002). «Обзор разреженных базовых подпрограмм линейной алгебры: новый стандарт с Технического форума BLAS». Транзакции ACM в математическом программном обеспечении . 28 (2): 239–267. дои : 10.1145/567806.567810 . S2CID   9411006 .
  52. ^ Донгарра, Джек; Хаммарлинг, Свен; Хайэм, Николас Дж.; Релтон, Сэмюэл Д.; Валеро-Лара, Педро; Зоунон, Мавусси (2017). «Проектирование и производительность пакетного BLAS на современных высокопроизводительных вычислительных системах» . Procedia Информатика . 108 : 495–504. дои : 10.1016/j.procs.2017.05.138 . hdl : 2117/106913 .
  53. ^ Херб, Константин; Велтер, Пол (2022). «Параллельная интеграция по времени с использованием процедур пакетного BLAS (базовые подпрограммы линейной алгебры)». Компьютерная физика. Коммуникации . 270 : 108181. arXiv : 2108.07126 . дои : 10.1016/j.cpc.2021.108181 . S2CID   237091802 .

Дальнейшее чтение [ править ]

  • Форум BLAST (21 августа 2001 г.), Стандарт технического форума по базовым подпрограммам линейной алгебры (BLAST) , Ноксвилл, Теннесси: Университет Теннесси
  • Додсон, Д.С.; Граймс, Р.Г. (1982), «Замечание об алгоритме 539: базовые подпрограммы линейной алгебры для использования Фортрана», ACM Trans. Математика. Программное обеспечение , 8 (4): 403–404, doi : 10.1145/356012.356020 , S2CID   43081631
  • Додсон, Д.С. (1983), «Исправление: Замечание к «Алгоритму 539: базовые подпрограммы линейной алгебры для использования FORTRAN» », ACM Trans. Математика. Программное обеспечение , 9 : 140, doi : 10.1145/356022.356032 , S2CID   22163977
  • Дж. Дж. Донгарра, Дж. Дю Кроз, С. Хаммарлинг и Р. Дж. Хэнсон, Алгоритм 656: расширенный набор подпрограмм базовой линейной алгебры FORTRAN, ACM Trans. Математика. Softw., 14 (1988), стр. 18–32.
  • http://dx.doi.org/10.1037/0033-295X.101.1.13 Донгарра, Дж. Дж. Донгарра, Дж. Дю Кроз, И. С. Дафф и С. Хаммарлинг, Набор базовых подпрограмм линейной алгебры уровня 3, ACM Trans. Математика. Softw., 16 (1990), стр. 101-116. 1–17.
  • Дж. Дж. Донгарра, Дж. Дю Кроз, И. С. Дафф и С. Хаммарлинг, Алгоритм 679: набор базовых подпрограмм линейной алгебры уровня 3, ACM Trans. Математика. Softw., 16 (1990), стр. 101-116. 18–28.
Новый БЛАС
  • Л.С. Блэкфорд, Дж. Деммель, Дж. Донгарра, И. Дафф, С. Хаммарлинг, Г. Генри, М. Геро, Л. Кауфман, А. Ламсдейн, А. Петите, Р. Посо, К. Ремингтон, Р. К. Уэйли, Обновленный набор базовых подпрограмм линейной алгебры (BLAS), ACM Trans. Математика. Softw., 28-2 (2002), стр. 135–151.
  • Дж. Донгарра, Стандарт технического форума по базовым подпрограммам линейной алгебры, Международный журнал высокопроизводительных приложений и суперкомпьютеров, 16 (1) (2002), стр. 1–111, и Международный журнал высокопроизводительных приложений и суперкомпьютеров, 16 (2) ( 2002), стр. 115–199.

Внешние ссылки [ править ]

  • Домашняя страница BLAS на Netlib.org
  • Часто задаваемые вопросы по БЛАС
  • Краткое справочное руководство BLAS из Руководства пользователя LAPACK
  • Устная история Лоусона Один из первоначальных авторов BLAS обсуждает его создание в устном интервью. Чарльз Л. Лоусон Устное историческое интервью Томаса Хейга, 6 и 7 ноября 2004 г., Сан-Клементе, Калифорния. Общество промышленной и прикладной математики, Филадельфия, Пенсильвания.
  • Устная история Донгарры В устном интервью Джек Донгарра исследует раннюю связь BLAS с LINPACK, создание версий BLAS более высокого уровня для новых архитектур и свою более позднюю работу над системой ATLAS для автоматической оптимизации BLAS для конкретных машин. Джек Донгарра, интервью Томаса Хейга по устной истории, 26 апреля 2005 г., Университет Теннесси, Ноксвилл, штат Теннесси. Общество промышленной и прикладной математики, Филадельфия, Пенсильвания
  • Как BLAS достигает такой экстремальной производительности? Десять простых матричных умножений 1000×1000 (10 10 умножение-сложение с плавающей запятой) занимает 15,77 секунды на процессоре с частотой 2,6 ГГц; Реализация BLAS занимает 1,32 секунды.
  • Обзор подпрограмм разреженной базовой линейной алгебры: новый стандарт с Технического форума BLAS [2]
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 3CD9DF81F2848CBB7ECD6D3C3268E104__1710668640
URL1:https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms
Заголовок, (Title) документа по адресу, URL1:
Basic Linear Algebra Subprograms - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)