Бэкенд Metal вводит новые ядра умножения матриц для 2–16 исходных строк, обеспечивая более быстрое спекулятивное декодирование на устройствах Apple Silicon без поддержки тензорного API. Эти ядра один раз деквантуют веса и разделяют измерения K по группам потоков, предлагая значительный прирост производительности по сравнению с предыдущими подходами mat-vec.
- Реализует специфичные MMA-ядра для Q4_0, Q8_0, Q5_K и общие пути для F32, F16 и других типов квантования.
- Активирует эти ядра на оборудовании MTLGPUFamilyApple7+ при превышении порогов количества строк, где они превосходят ядра mat-vec.
- Добавляет логику слияния для объединения операций MUL_MAT + ADD и группировки до 16 соседних копий f32 одинакового формата в один вызов.
- Обновляет оптимизатор графов и кодировщик для обработки свойств устройства, проверок параллелизма и отслеживания представлений для слитых групп.
Эта оптимизация устраняет регрессию производительности при спекулятивном декодировании на оборудовании M3 Ultra, обеспечивая эффективность тензорных операций даже при малых размерах пакетов.