Проект llama.cpp выпустил версию b10839, устраняющую критические сбои в бэкенде Vulkan, вызванные несовпадением смещений при операциях извлечения строк тензора. Ранее модели Qwen3-TTS и Qwen3-VL давали сбой при использовании `ggml_view` со смещениями вида, отличными от нуля, поскольку шейдер выдавал ошибку при нарушении выравнивания относительно `minStorageBufferOffsetAlignment`. Данное обновление реализует нативную поддержку выровненных смещений как в квантованных, так и в неквантованных путях, устраняя необходимость возврата к CPU.

Ключевые технические изменения включают:

  • Привязку смещений буфера к выровненной позиции рядом со смещением вида и передачу скорректированного несовпадения через push-константы для предотвращения ошибок усечения.
  • Добавление параметра `use_view_offs` в `ggml_vk_tensor_subbuffer` для корректной обработки физических смещений как на UMA, так и на дискретных GPU.
  • Введение функции `ggml_vk_get_adjusted_misalign` для поиска наименьшего допустимого несовпадения, удовлетворяющего требованиям выравнивания буфера хранения.
  • Удаление предыдущего защитного возврата к CPU в `supports_op()`, поскольку бэкенд Vulkan теперь обрабатывает эти случаи нативно.
  • Добавление комплексного покрытия тестами бэкенда для смещений вида, отличных от нуля, с различными типами данных, при этом все 223 теста GET_ROWS прошли успешно на NVIDIA RTX 5060 Ti.

Это исправление обеспечивает стабильное выполнение моделей, полагающихся на сложные виды тензоров и срезы KV-кэша на оборудовании Vulkan, без необходимости выгрузки на CPU.