RU

Упаковщик наносит ответный удар: ZA как машина транспонирования

В этой части мы вернёмся к работе, которую предыдущие главы принимали как готовую: упаковке. Сначала найдём скалярную ловушку в упаковке B, затем ис…

SME2Apple SiliconBLISGEMMZAтранспонированиеупаковка панелейSVE2микроядровысокопроизводительные вычисления
Habr
RU

Комплексный GEMM: четыре вещественных внешних произведения в одном флаконе

В этой части мы сначала отделим прямой комплексный путь от готового метода 1m; затем покажем конфликт между чередующимся форматом памяти и раздельно…

SME2dgemmтайлы ZA64FMOPAдинамическая диспетчеризацияApple SiliconBLIS
Habr
RU

Двойная точность: в основном «найти и заменить», плюс два настоящих сюрприза

В этой части мы используем sgemm как шаблон и проверим, что действительно меняется при переходе к dgemm : сначала пройдём скучную часть с удвоенными…

SME2dgemmдвойная точностьFEAT_SME_F64F64тайлы ZA64FMOPAдинамическая диспетчеризацияApple SiliconBLIS
Habr
RU

Микроядро SME2 sgemm: 1024 умножения-сложения за проход

В этой части мы возьмём первый из пропусков BLIS — микроядро sgemm ; сначала зафиксируем форму аккумулятора 32×32 в четырёх тайлах ZA, затем разберё…

BLISGEMMSME2Apple Siliconмикроядрокэш-блокингупаковка данныхвысокопроизводительные вычислениялинейная алгебраBLAS
Habr
RU

BLIS: недостающую среднюю ступеньку построили тридцать лет назад

В этой части мы начнём с тупика, в который приводит голый цикл FMOPA ; затем покажем, какую часть GEMM BLIS уже построил за нас; после этого разберё…

BLISGEMMSME2Apple Siliconмикроядрокэш-блокингупаковка данныхвысокопроизводительные вычислениялинейная алгебраBLAS