llama.cpp Releases

[إصدار ما قبل الإطلاق / بناء مستمر] b11404

[Pre-release / continuous build] metal : ضرب مصفوفات MMA ذات الصفوف القليلة (#29869) * metal : ضرب مصفوفات MMA ذات الصفوف القليلة ونسخ مجمّعة لفك التشفير التخميني يتحقق فك التشفير التخميني من عدد قليل من الرموز المرشحة…

إصدار ما قبل الإطلاق / بناء مستمر: هذا بناء تجريبي، وليس إصدارًا مستقرًا.

metal : ضرب مصفوفات MMA ذات الصفوف القليلة (#29869) * metal : ضرب مصفوفات MMA ذات الصفوف القليلة ونسخ مجمّعة لفك التشفير التخميني يتحقق فك التشفير التخميني من عدد قليل من الرموز المرشحة في كل خطوة. بدون واجهة tensor API، كان Metal ينفّذ عمليات ضرب المصفوفات هذه بنوى mat-vec، التي يزداد زمنها مع كل صف من src1، لذا كان فك تشفير DFlash2 على M3 Ultra أبطأ من فك التشفير التسلسلي. - إضافة نوى ضرب مصفوفات لصفوف 2..16 من src1 على مصفوفات simdgroup بحجم 8x8: يتم إلغاء ترميز كل وزن مرة واحدة لجميع الصفوف، وتقسّم مجموعات simdgroup في مجموعة الخيوط البُعد K. أنواع Q4_0 وQ8_0 وQ5_K لها نوًى خاصة بها، وتستخدم F32 وF16 وQ4_1 وQ5_0 وQ5_1 وQ4_K وQ6_K مسارًا عامًا عبر أدوات إلغاء الترميز ذات الـ16 وزنًا، ويستخدم Q4_0 عند 2 صفوف نسخة ذات 2 صفوف من نواة mat-vec - استخدامها فقط على MTLGPUFamilyApple7+ بدون واجهة tensor API، بدءًا من عدد الصفوف الذي تتفوّق فيه على نوى mat-vec على M3 Ultra (F32: 6، F16 وQ4_K وQ5_0 وQ5_1: 3، الأنواع الأخرى: 2) - جدول الدمج: MUL_MAT + ADD يضيف متبقًا بنفس الشكل في تخزين MMA، وحتى 16 نسخة f32 متجاورة بنفس التخطيط بين نفس المصفوفتين تعمل كإرسال واحد - تأخذ فحوصات الدمج وggml_graph_optimize خصائص الجهاز، لذا يجمّع إعادة الترتيب MUL_MAT + ADD فقط على الأجهزة القادرة على دمجه، وعند كل عدد من صفوف src1 - لا تُحتسب الـviews ضمن GGML_METAL_FUSION_MAX عندما يجمّع إعادة الترتيب مجموعة، لذا تبقى 16 نسخة من لقطات الحالة المتكررة مع views بينها مجموعة واحدة - يفحص المُرمِّز العقد الداخلية للمجموعة المدمجة بحثًا عن التزامن، ويتتبع الـviews المكتوبة حسب امتدادها، ولا يحتسب وجهة عملية CPY كقراءة - يقسّم CONCAT الصفوف الطويلة عبر مجموعات الخيوط عندما تكون الصفوف قليلة - الاختبارات: حالات MUL_MAT وMUL_MAT_ADD وCPY_BATCH وCONCAT ذات الصفوف القليلة في test-backend-ops (مع خطاف prepare_graph لترتيب النسخ)، وtest-metal-graph-optimize، وtest-metal-cpy-batch-alias * metal : إزالة دمج CPY_BATCH وتغييرات نطاق الذاكرة إزالة دمج النسخ المجمّع مع نواته واختباراته، والتراجع عن تغييرات نطاق الذاكرة، كما اقتُرح في المراجعة. نطاقات الذاكرة، وإعادة ترتيب الرسم البياني، ومُشفِّر CPY أصبحت مرة أخرى كما هي على master. * cont : تنظيف * cont : إزالة بوابة has_tensor * cont : تنظيف منطق operand/residual * cont : إزالة الحالة الخاصة Q4_0 ne11=2 * cont : إضافة kernels/mul_mv_mma.metal * cont : توحيد منطق اختيار مسار mma * cont : فصل منطق الدمج عن خصائص الجهاز --------- Co-authored-by: Georgi Gerganov

الموقع الإلكتروني: - https://llama.app

إثباتات الأصل (Attestations): - https://github.com/ggml-org/llama.cpp/attestations/52722020

macOS/iOS: - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64، مع تفعيل KleidiAI) معطّل - macOS Intel (x64) - iOS XCFramework

لينكس: - Ubuntu x64 (CPU) - Ubuntu arm64 (CPU) - Ubuntu s390x (CPU) - Ubuntu x64 (Vulkan) - Ubuntu arm64 (Vulkan) - Ubuntu x64 (CUDA 12) - مكتبات CUDA 12.8 - Ubuntu x64 (CUDA 13) - مكتبات CUDA 13.4 - Ubuntu arm64 (CUDA 13) - مكتبات CUDA 13.4 - Ubuntu x64 (ROCm 10.0) - Ubuntu x64 (OpenVINO) - Ubuntu x64 (SYCL FP32) - Ubuntu x64 (SYCL FP16) - Linux arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - دليل الإعداد

أندرويد: - Android arm64 (CPU) - Android arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - دليل الإعداد

ويندوز: - Windows x64 (CPU) - Windows arm64 (CPU) - Windows arm64 (OpenCL Adreno) - Windows x64 (CUDA 12) - CUDA 12.4 DLLs - Windows x64 (CUDA 13) - CUDA 13.4 DLLs - Windows arm64 (CUDA 13) - CUDA 13.4 DLLs - Windows x64 (Vulkan) - Windows arm64 (Vulkan) - Windows x64 (OpenVINO) - Windows x64 (SYCL) - Windows x64 (ROCm 10.0)

openEuler: - معطّل - openEuler على معمارية x86 (310p) - openEuler على معمارية x86 (910b، ACL Graph) - openEuler على معمارية aarch64 (310p) - openEuler على معمارية aarch64 (910b، ACL Graph)

الواجهة: - الواجهة

المصدر الأصلي

llama.cpp Releases

ملاحظات المحتوى

النشر الأصلي والحقوق تعود إلى المصدر.

ترجمة آلية · يُرجى الرجوع إلى الأصل