От sgemm к dgemm: двойная точность и неожиданные находки в оптимизации
Оригинал: Двойная точность: в основном «найти и заменить», плюс два настоящих сюрприза
Конспект редакции
Переход от sgemm к dgemm на ARM — не просто замена типов: разбираем тайлинг, FEAT_SME_F64F64 и динамическую регистрацию ядра.
Статья продолжает цикл оптимизации матричных умножений на ARM-процессорах, переводя реализацию sgemm (одинарная точность) в dgemm (двойная точность). Автор отмечает, что большая часть изменений сводится к механическому «найти и заменить» типов данных, однако встречаются и нетривиальные решения.
Особое внимание уделено прямоугольному тайлингу 16×32, который оказывается эффективным компромиссом между утилизацией регистров и пропускной способностью памяти. Также разбираются возможности расширения FEAT_SME_F64F64 и механизм динамической регистрации ядра — именно эти два аспекта автор называет настоящими сюрпризами перехода к двойной точности.
Для инженеров, работающих с высокопроизводительными вычислениями на ARM, статья представляет практический разбор того, какие подводные камни ожидают при переходе от fp32 к fp64.
Материал агрегирован; полный текст — на сайте Хабр — ИТ-новости.
Контекст
Статья продолжает цикл оптимизации матричных операций: берётся sgemm как шаблон и исследуется, что меняется при переходе к dgemm.
Фото (4)
Увеличить1 / 4


