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