Проект llama.cpp выпустил сборку b11375, которая устраняет критическую проблему, при которой неконгруэнтные ячейки ubatch вызывали перераспределение графа, приводившее к аварийному завершению при установленном флаге GGML_SCHED_NO_REALLOC.

  • Исправление собирает рекуррентные состояния один раз, чтобы резерв покрывал каждый раздел, обеспечивая достаточность размера резерва в худшем случае.
  • Один вызов get_rows теперь собирает n_rs состояний, при этом ubatch и дополнительные состояния рассматриваются как представления этого единого выделения памяти.
  • Пользовательские функции получения данных, такие как mamba ssm_scan, обращаются ко второму состоянию, чтобы избежать копирования состояний для односеквенционных ubatch.
  • Представления создаются один раз на граф, чтобы оставить накладные расходы на хосте без изменений.

Это изменение обеспечивает стабильное выполнение в средах с ограниченным планированием, предотвращая аварийные завершения, вызванные ограничениями перераспределения памяти.