ГотоБЛАС
Оригинальный автор(ы) | Кадзусигэ Гото |
---|---|
Финальный выпуск | 2-1.13 / 5 февраля 2010 г |
Тип | библиотека линейной алгебры; внедрение БЛАС |
Лицензия | Лицензия БСД |
В сфере вычислений научных GotoBLAS и GotoBLAS2 представляют собой с открытым исходным кодом реализации BLAS (базовые подпрограммы линейной алгебры) API и множеством оптимизаций, созданных вручную для конкретных типов процессоров . GotoBLAS был разработан Кадзусигэ Гото в Техасском центре перспективных вычислений . По состоянию на 2003 год [update], он использовался в семи из десяти самых быстрых суперкомпьютеров мира. [1]
GotoBLAS по-прежнему доступен, но разработка прекратилась с выходом финальной версии, обеспечивающей оптимальную производительность на архитектуре Intel Nehalem (современной в 2008 году). [2] OpenBLAS — это активно поддерживаемая версия GotoBLAS, разработанная в Лаборатории параллельного программного обеспечения и вычислительной техники ISCAS .
GotoBLAS был написан Гото во время его творческого отпуска в Патентном ведомстве Японии в 2002 году. Первоначально он был оптимизирован для процессора Pentium 4 и сумел сразу повысить производительность суперкомпьютера на его базе с 1,5 терафлопс до 2 терафлопс. [1] По состоянию на 2005 год [update], библиотека была доступна бесплатно для некоммерческого использования. [1] Более поздняя версия с открытым исходным кодом была выпущена на условиях лицензии BSD .
GotoBLAS Процедура умножения матриц , называемая GEMM в терминах BLAS, тщательно настроена для процессорных архитектур x86 и AMD64 с помощью созданного вручную ассемблерного кода . [3] Это следует за аналогичной декомпозицией на более мелкие подпрограммы «ядра», которые используют другие реализации BLAS, но там, где более ранние реализации передавали потоковые данные из кэша процессора L1 , GotoBLAS использует кэш L2 . [3] Ядро, используемое для GEMM, представляет собой процедуру под названием GEBP, что означает «Общее умножение блока на панель». [4] экспериментально было установлено, что оно «по своей сути превосходит» несколько других ядер, которые учитывались при разработке. [3]
Некоторые другие процедуры BLAS, как это принято в библиотеках BLAS, реализованы на основе GEMM. [4]
По состоянию на январь 2022 года Техасского центра перспективных вычислений веб-сайт [5] заявляет, что Goto BLAS больше не поддерживается, и предлагает использовать BLIS или MKL .
См. также
[ редактировать ]- Программное обеспечение автоматически настраиваемой линейной алгебры (ATLAS)
- Библиотека математического ядра Intel (MKL)
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с Маркофф, Джон Грегори (28 ноября 2005 г.). «Написание самого быстрого кода вручную для развлечения: человеческий компьютер продолжает ускорять работу чипов» . Нью-Йорк Таймс . Сиэтл, Вашингтон, США. Архивировано из оригинала 23 марта 2020 г. Проверено 4 марта 2010 г. [1]
- ^ Милфельд, Кент. «ГотоБЛАС2» . Техасский центр перспективных вычислений . Архивировано из оригинала 23 марта 2020 г. Проверено 28 августа 2013 г.
- ^ Перейти обратно: а б с Гото, Казусигэ ; ван де Гейн, Роберт А. (2008). «Анатомия высокопроизводительного умножения матриц». Транзакции ACM в математическом программном обеспечении . 34 (3): 12:1–12:25. CiteSeerX 10.1.1.111.3873 . дои : 10.1145/1356052.1356053 . ISSN 0098-3500 . (25 страниц) [2]
- ^ Перейти обратно: а б Гото, Казусигэ ; ван де Гейн, Роберт А. (2008). «Высокопроизводительная реализация BLAS уровня 3» (PDF) . Транзакции ACM в математическом программном обеспечении . 35 (1): 1–14. дои : 10.1145/1377603.1377607 .
- ^ «БЛАС-ЛАПАК в ТАСС» . Техасский центр перспективных вычислений .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь )