Проект 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.