Проект llama.cpp выпустил сборку b10724, которая значительно улучшает производительность восстановления неконтекстных ячеек KV кэша путем группировки операций scatter-чтения для каждого непрерывного участка.

  • Оптимизировано восстановление состояния для фрагментированных кольцевых буферов за счет предварительного вычисления последовательных индексов назначения и использования одиночных копий вместо копирования отдельных ячеек.
  • Исправлена ошибка assert в устройственном читателе, возникавшая при совпадении количества сохраняемых и восстанавливаемых тензоров, но различии в разбиении на чанки; теперь используется резервный режим копирования через байтовый курсор.
  • Добавлены тесты на хосте и на устройстве, проверяющие восстановление состояния с точностью до байта для ячеек переплетенной последовательности.

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