أصدر مشروع llama.cpp الإصدار b10545، الذي يعالج خطأً حرجًا في نواة ضرب المصفوفات لواجهة برمجة التطبيقات للترس في الخلفية Metal. يمنع التحديث السلوك غير المحدد والنتائج التالفة عند معالجة الترسات حيث لا يكون البعد K مضاعفًا لـ 32.
- تستخدم عملية matmul2d الآن dynamic_extent لـ K بدلاً من حجم بلاطة ثابت.
- يتم تقييد عروض ترسات المشغلات إلى نطاق K الصالح المتبقي في كل تكرار.
- يلغي هذا التغيير القراءات خارج الحدود التي كانت تسبب قيم NaN أو تلف البيانات سابقًا.
- تمت إضافة حالات اختبار لممارسة مسار K غير المحاذاة والتحقق من الإصلاح.
يضمن هذا الإصلاح الاستقرار العددي للنماذج ذات أبعاد المصفوفات غير المحاذاة على أجهزة Apple Silicon، مما يمنع الأخطاء الصامتة أثناء الاستدلال.