Jump to content

Автоматически настраиваемое программное обеспечение для линейной алгебры

Автоматически настраиваемое программное обеспечение для линейной алгебры
Стабильная версия
3.10.3 / 28 июля 2016 г .; 8 лет назад ( 28 июля 2016 )
Репозиторий
Написано в С , ФОРТРАН 77
Тип Библиотека программного обеспечения
Лицензия Лицензия БСД
Веб-сайт математический атлас .sourceforge .сеть  Edit this on Wikidata

Автоматически настроенное программное обеспечение для линейной алгебры ( ATLAS ) — это библиотека программного обеспечения для линейной алгебры . Он обеспечивает зрелую с открытым исходным кодом реализацию BLAS API для C и FORTRAN 77 .

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

ATLAS работает в большинстве Unix -подобных операционных систем и в Microsoft Windows (с использованием Cygwin ). Он выпускается под лицензией в стиле BSD многие известные математические приложения, включая MATLAB , Mathematica , Scilab , SageMath и некоторые сборки GNU Octave без пункта о рекламе, и его могут использовать .

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

[ редактировать ]

ATLAS обеспечивает полную реализацию API-интерфейсов BLAS, а также некоторые дополнительные функции из LAPACK , библиотеки более высокого уровня, построенной на основе BLAS. В BLAS функциональность разделена на три группы, называемые уровнями 1, 2 и 3.

  • Уровень 1 содержит векторные операции вида
а также скалярные скалярные произведения и векторные нормы , среди прочего.
  • Уровень 2 содержит матрично-векторные операции вида
а также решение для с среди прочего быть треугольным.
а также решение для треугольных матриц , среди прочего.

Оптимизационный подход

[ редактировать ]

Подход к оптимизации называется автоматической эмпирической оптимизацией программного обеспечения (AEOS), который определяет четыре фундаментальных подхода к компьютерной оптимизации, из которых ATLAS использует три: [1]

  1. Параметризация — поиск в пространстве параметров функции, используемой для коэффициента блокировки, края кэша и т. д.
  2. Множественная реализация — поиск различных подходов к реализации одной и той же функции, например, поддержка SSE до того, как встроенные функции сделали их доступными в коде C.
  3. Генерация кода — программы, которые пишут программы, используя все возможные знания о том, что обеспечит наилучшую производительность системы.
  • Оптимизация BLAS уровня 1 использует параметризацию и множественную реализацию.
Каждая функция BLAS ATLAS уровня 1 имеет собственное ядро. Поскольку в ATLAS было бы сложно поддерживать тысячи случаев, для BLAS уровня 1 существует небольшая оптимизация архитектуры. Вместо этого используется множественная реализация, позволяющая оптимизировать компилятор для создания высокопроизводительной реализации системы.
  • Оптимизация BLAS уровня 2 использует параметризацию и множественную реализацию.
С данные и операции по выполнению функции обычно ограничены пропускной способностью памяти, поэтому возможностей для оптимизации не так много.
Все процедуры в BLAS ATLAS уровня 2 построены на основе двух ядер BLAS уровня 2:
  • GEMV — обновление матрицы путем векторного умножения:
  • GER — общее обновление ранга 1 от внешнего продукта:
  • Оптимизация BLAS уровня 3 использует генерацию кода и два других метода.
Поскольку у нас есть упс только с данные, есть много возможностей для оптимизации

Уровень 3 БЛАС

[ редактировать ]

Большая часть BLAS уровня 3 получена из GEMM , поэтому оптимизация является основной задачей.

операции против. данные

Интуиция о том, что операции будут доминировать над доступ к данным работает только для примерно квадратных матриц.Настоящей мерой должно быть какое-то отношение площади поверхности к объему.Разница становится важной для очень неквадратных матриц.

Может ли он позволить себе копирование?

[ редактировать ]

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

Итак, первый вопрос, который стоит перед GEMM, заключается в том, может ли он себе позволить копировать входные данные?

Если так,

  • Поместить в основной формат блока с хорошим выравниванием.
  • Воспользуйтесь преимуществами ядер и очистки, предоставленных пользователями.
  • Обработайте случаи транспонирования с помощью копии: преобразуйте все в TN (транспонировать - не транспонировать)
  • Разобраться с α в копии

Если не,

  • Используйте версию nocopy
  • Не делайте предположений о шаге матриц A и B в памяти.
  • Явно обрабатывайте все случаи транспонирования
  • Нет гарантий относительно выравнивания данных
  • Поддержка специального кода α
  • Вы рискуете столкнуться с проблемами TLB , плохими успехами и т. д.

Фактическое решение принимается с помощью простой эвристики , которая проверяет «узкие случаи».

Край кэша

[ редактировать ]

Для блокировки кэша 2-го уровня используется один параметр края кэша.Высокий уровень выбирает порядок прохождения блоков: ijk, jik, ikj, jki, kij, kji . Это не обязательно должен быть тот же порядок, поскольку продукт создается внутри блока.

Обычно выбираются ордера ijk или jik .Для jik идеальной ситуацией было бы скопировать A и NB панель B. широкую Для ijk роли A и B. поменяйте

Выбор большего из M или N для внешнего цикла уменьшает размер копии.А вот для больших K ATLAS даже не выделяет такого большого объёма памяти.Вместо этого он определяет параметр Kp , чтобы наилучшим образом использовать кэш L2. панелей ограничена Kp Длина .Сначала он пытается выделить (в случае с jik ) .Если это не удается, он пытается .(Если это не удается, используется версия GEMM без копирования, но этот случай маловероятен при разумном выборе края кэша.) Kp является функцией края кэша и NB .

При интеграции ATLAS BLAS с LAPACK важным фактором является выбор коэффициента блокировки для LAPACK. Если коэффициент блокировки ATLAS достаточно мал, коэффициент блокировки LAPACK может быть установлен в соответствии с коэффициентом блокировки ATLAS.

Чтобы воспользоваться преимуществами рекурсивной факторизации, ATLAS предоставляет процедуры замены некоторых процедур LAPACK. Они просто перезаписывают соответствующие процедуры LAPACK из Netlib .

Необходимость установки

[ редактировать ]

Установка ATLAS на конкретной платформе — это сложный процесс, который обычно выполняется поставщиком системы или местным экспертом и доступен более широкой аудитории.

Для многих систем доступны архитектурные параметры по умолчанию; по сути это сохраненные поиски плюс результаты ручной настройки. Если настройки Arch по умолчанию работают, они, вероятно, получат на 10-15% лучшую производительность, чем поиск по установке. В таких системах процесс установки значительно упрощается.

  1. ^ Р. Клинт Уэйли; Антуан Петите и Джек Дж. Донгарра (2001). «Автоматическая эмпирическая оптимизация программного обеспечения и проект ATLAS» (PDF) . Параллельные вычисления . 27 (1–2): 3–35. CiteSeerX   10.1.1.35.2297 . дои : 10.1016/S0167-8191(00)00087-9 . Проверено 6 октября 2006 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 88da6492f4d737c7b373c5a86f035644__1716952260
URL1:https://arc.ask3.ru/arc/aa/88/44/88da6492f4d737c7b373c5a86f035644.html
Заголовок, (Title) документа по адресу, URL1:
Automatically Tuned Linear Algebra Software - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)