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
Habr
RU

Попробуйте найти примеры кода для SME — я подожду

В этой части мы проверим, есть ли у SME учебная дорога, сравнимая с той, которую получили тензорные ядра GPU; затем разберём два реально полезных ис…

SME2ARMматричное умножениемикроядровекторизацияSIMDSVEоптимизациятензорные ядрамашинное обучение