Проект llama.cpp выпустил сборку b10545, которая устраняет критическую ошибку в ядре умножения матриц тензорного API бэкенда Metal. Обновление предотвращает неопределённое поведение и искажённые результаты при обработке тензоров, у которых размерность K не кратна 32.

  • Операция matmul2d теперь использует dynamic_extent для K вместо статического размера тайла.
  • Представления операндов тензоров обрезаются по оставшемуся допустимому диапазону K на каждой итерации.
  • Это изменение устраняет чтение за пределами массива, которое ранее вызывало значения NaN или повреждение данных.
  • Были добавлены тестовые случаи для проверки пути с невыровненным K и подтверждения исправления.

Это исправление обеспечивает численную стабильность для моделей с невыровненными размерами матриц на устройствах Apple Silicon, предотвращая скрытые ошибки во время вывода.