llama.cppプロジェクトはバージョンb10839をリリースし、テンソル行の取得操作中にアラインメントされていないオフセットが原因で発生していたVulkanバックエンドでの深刻なクラッシュを解消しました。従来、Qwen3-TTSやQwen3-VLなどのモデルでは、`minStorageBufferOffsetAlignment`に対するアラインメント違反に対してシェーダーがアサートを行うため、非ゼロのビューオフセットを持つ`ggml_view`を使用すると失敗していました。今回の更新では、量子化済みおよび非量子化済みの両方のパスでアラインメントされたオフセットのネイティブサポートを実装し、CPUフォールバックを不要にしました。

主な技術的変更点は以下の通りです:

  • ビューオフセット付近のアラインメントされた位置にバッファオフセットをバインドし、プッシュ定数を通じて調整されたミスアラインメントを渡すことで、切り捨てエラーを防ぐ。
  • `ggml_vk_tensor_subbuffer`に`use_view_offs`パラメータを追加し、UMAおよびディスクリートGPUの両方で物理的オフセットを正しく処理できるようにする。
  • ストレージバッファのアラインメント要件を満たす最小の有効なミスアラインメントを見つけるための`ggml_vk_get_adjusted_misalign`を導入する。
  • Vulkanバックエンドがこれらのケースをネイティブで処理できるようになったため、`supports_op()`内の従来の防御的なCPUフォールバックを削除する。
  • 複数のデータタイプにわたる非ゼロのビューオフセットに対する包括的なバックエンドテストカバレッジを追加し、NVIDIA RTX 5060 Ti上で223件のGET_ROWSテストがすべてパスしたことを確認する。

この修正により、CPUオフロードを必要とせずに、複雑なテンソルビューやKVキャッシュスライスに依存するモデルのVulkanハードウェア上での安定した実行が可能になります。