llama.cpp 프로젝트가 버전 b10839를 출시하여, 텐서 행 검색 작업 중 정렬되지 않은 오프셋으로 인해 Vulkan 백엔드에서 발생하는 심각한 충돌을 해결했습니다. 이전에는 `ggml_view`와 비영(view) 오프셋 사용 시, `minStorageBufferOffsetAlignment`에 대한 정렬 위반으로 셰이더가 어설션에 도달하면서 Qwen3-TTS 및 Qwen3-VL 같은 모델이 실패했습니다. 이번 업데이트는 양자화 경로와 비양자화 경로 모두에서 정렬된 오프셋에 대한 네이티브 지원을 구현하여 CPU 폴백의 필요성을 제거했습니다.

주요 기술적 변경 사항:

  • 뷰 오프셋 근처의 정렬된 위치에 버퍼 오프셋을 바인딩하고, 잘림 오류를 방지하기 위해 푸시 상수를 통해 조정된 불일치 값을 전달합니다.
  • UMA 및 전용 GPU 모두에서 물리적 오프셋을 올바르게 처리하기 위해 `ggml_vk_tensor_subbuffer`에 `use_view_offs` 매개변수를 추가했습니다.
  • 스토리지 버퍼 정렬 요구사항을 충족하는 가장 작은 유효한 불일치를 찾기 위해 `ggml_vk_get_adjusted_misalign`을 도입했습니다.
  • Vulkan 백엔드가 이러한 경우를 이제 네이티브로 처리하므로, `supports_op()`에서 이전의 방어적 CPU 폴백을 제거했습니다.
  • 여러 데이터 유형에 걸쳐 비영 뷰 오프셋에 대한 포괄적인 백엔드 테스트 커버리지를 추가했으며, NVIDIA RTX 5060 Ti에서 모든 223개 GET_ROWS 테스트가 통과했습니다.

이 수정은 CPU 오프로딩 없이 Vulkan 하드웨어에서 복잡한 텐서 뷰와 KV 캐시 슬라이스에 의존하는 모델의 안정적인 실행을 보장합니다.