أصدر مشروع llama.cpp الإصدار b10839، الذي يحل مشكلات الانهيار الحاد في الخلفية (backend) الخاصة بـ Vulkan الناتجة عن انزياحات غير محاذاة أثناء عمليات استرجاع صفوف الموترات. سابقاً، كانت نماذج مثل Qwen3-TTS وQwen3-VL تفشل عند استخدام `ggml_view` مع إزاحات عرض غير صفرية لأن الشادر (shader) كان يفرض شرط المحاذاة بالنسبة إلى `minStorageBufferOffsetAlignment`. يطبق هذا التحديث دعماً أصلياً للإزاحات المحاذاة في كل من المسارات الكمّية وغير الكمّية، مما يلغي الحاجة إلى التراجع إلى وحدة المعالجة المركزية.
تشمل التغييرات التقنية الرئيسية:
- ربط إزاحات المخزن المؤقت بموضع محاذاة قريب من إزاحة العرض ونقل الانزياح غير المحاذاة المعدل عبر ثوابت الدفع (push constants) لمنع أخطاء التقطيع.
- إضافة معلمة `use_view_offs` إلى `ggml_vk_tensor_subbuffer` للتعامل بشكل صحيح مع الإزاحات الفيزيائية على كل من وحدات الذاكرة المشتركة (UMA) ووحدات معالجة الرسومات المنفصلة.
- إدخال `ggml_vk_get_adjusted_misalign` لإيجاد أصغر انزياح غير محاذاة صالح يفي بمتطلبات محاذاة المخزن المؤقت للتخزين.
- إزالة التراجع الدفاعي السابق لوحدة المعالجة المركزية في `supports_op()` حيث أن الخلفية الخاصة بـ Vulkan تتعامل الآن مع هذه الحالات بشكل أصلي.
- إضافة تغطية شاملة لاختبارات الخلفية لإزاحات العرض غير الصفرية عبر أنواع بيانات متعددة، مع نجاح جميع اختبارات GET_ROWS البالغ عددها 223 على NVIDIA RTX 5060 Ti.
يضمن هذا الإصلاح التنفيذ المستقر للنماذج التي تعتمد على مشاهد الموترات المعقدة وقطعات ذاكرة التخزين المؤقت للسياق (KV cache) على عتاد Vulkan دون الحاجة إلى إخراج العمليات إلى وحدة المعالجة المركزية.