إصدار ما قبل الإطلاق / بناء مستمر: هذا بناء تجريبي وليس إصدارًا مستقرًا.
hexagon: تحديثات قابلية التوسع في matmul و flash-atten (#29974) * hexagon: تقسيم flash_attn متوازيًا بالرؤوس للأنوية المتعددة بوضع row-split في وضع row-split تحسب كل نواة شريحة صف المخرجات الخاصة بها لكل MUL_MAT، لكن flash_attn كانت تُقسَّم سابقًا حسب رموز Q (تقسيم qrow مسطح) بدلاً من الرؤوس. هذا أجبر كل نواة على قراءة كامل ذاكرة KV المؤقتة (كل n_kv_heads)، مما ألغى فائدة عرض نطاق الذاكرة من تعدد الأنوية في flash_attn. تم تغيير نواتي HMX و HVX لـ flash_attn لتقسيم حسب رؤوس KV عندما تكون n_kv_heads قابلة للقسمة على n_cores: النواة i تعالج الرؤوس [i*n_kv_heads/N, (i+1)*n_kv_heads/N) حصريًا، تقرأ فقط شريحة الرأس الخاصة بها من ذاكرة KV المؤقتة. يعود إلى تقسيم كتل الرموز الأصلي عندما n_kv_heads % n_cores != 0 (مثل Gemma-4 بـ 2 رأس KV على 4 أنوية). يُتحكم فيه عبر GGML_HEXAGON_FA_HEAD_SPLIT (الافتراضي 1 = مفعّل). تم حزم العلم في البت 1 من بايت kparams الموجود is_dst_fp32 للبقاء ضمن حد الـ 128 بايت لـ kernel_params. المكاسب المقيسة عند 4c row-split (PP t/s, ubatch=1024): Qwen3-0.6B: 6977 -> 11026 (+58%) llama-3.2-3B: 3717 -> 5522 (+49%) Qwen3.5-4B: 2739 -> 2855 (+4%) Gemma-4 MoE: لا تغيير (MoE FFN يهيمن، المسار الاحتياطي) TG بدون تغيير (flash_attn تمثل جزءًا صغيرًا من زمن فك الترميز مقارنة بتكلفة matmul+الحاجز لكل طبقة). * hex-fa: تنظيف kern_params واختيار head-split * hex-fa: إضافة خيار -fa-head-split إلى run.py * hex-mdev: تحديث محلل matmul ليأخذ في الاعتبار تقليل العمل في سيناريوهات row-split * hex-mmid: تقسيم أفضل للعمل حسب expers في سيناريوهات multi-dev * hex-fa: تحديث تفعيل HMX بناءً على مسح model/n-hvx/ctx-len * hex-fa: حساب softcap/scale مسبقًا على المضيف * hexagon: تسطيح matmul إلى 2d لاستخدام HMX في multi-sequence * hex-mm: تنظيف kparams واستخدام تعيين collapse من 3/4D -> 2D * hex-mm: إصلاح خطأ إملائي في collapse الاحتياطي * hex-mm: جولة أخرى نحو تسمية متسقة لمصفوفات act * hex-mm: إضافة دعم لطي الأبعاد في matmuls المدمجة * hex-build: إصلاح أخطاء بناء WoS * hex-mm: التأكد من فرض خطوة dst في can_collapse * hex-fa: إضافة سطر commit من سطر واحد لفحص head-split * hex-fa: إزالة المتغير المحلي غير المستخدم head_split * hex-fa: تشديد فحوصات can_split * hex-mm: تحديث المسارات غير المدمجة لاستخدام act بدلاً من src1 * hex-mm: التأكد من فحص جميع dsts للتقسيم * hexagon: إصلاح عنوان كتلة الأوزان الثانية في مقدمة HMX matmul المجمّعة * hexagon: تنشيط F16 و N غير منتظم في HMX matmul * hex-mm: تشديد فحوصات ragged/split في حالات mdev * hex-mm: تفعيل دمج MM لتنشيطات F16 * hex-mm: تمرير الأحجام المبلّطة إلى المحلل في المسارات المدمجة * hex-mmid: إزالة القسمات العددية من حلقات تعيين الخبراء * hex-mmid: فرض سلامة cacheline بشكل صحيح لتقسيمات mdev * hex-mm: تحسين المحلل لسيناريوهات mdev split والتعامل مع الأجزاء الأخيرة * hex-mm: إزالة الفحوصات الزائدة * hex-mm: إصلاح fused HMX MUL_MAT_NX يُسقط البلاطة الجزئية الأخيرة للأوزان المكمّمة * hex-mm: تعامل أفضل مع الأشكال غير المنتظمة (يزيل memset العددي لـ vtcm) --------- Co-authored-by: ebateni Co-authored-by: Jhen-Jie Hong Co-authored-by: Yiwei Shaoالموقع الإلكتروني: - https://llama.app
إثباتات الأصالة: - https://github.com/ggml-org/llama.cpp/attestations/52957661
macOS/iOS: - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64, KleidiAI مفعّل) معطّل - macOS Intel (x64) - إطار XCFramework لنظام iOS
لينكس: - أوبونتو x64 (CPU) - أوبونتو arm64 (CPU) - أوبونتو s390x (CPU) - أوبونتو x64 (Vulkan) - أوبونتو arm64 (Vulkan) - أوبونتو x64 (CUDA 12) - مكتبات CUDA 12.8 - أوبونتو x64 (CUDA 13) - مكتبات CUDA 13.4 - أوبونتو arm64 (CUDA 13) - مكتبات CUDA 13.4 - أوبونتو x64 (ROCm 10.0) - أوبونتو x64 (OpenVINO) - أوبونتو x64 (SYCL FP32) - أوبونتو x64 (SYCL FP16) - لينكس arm64 (Snapdragon: CPU، Adreno GPU، Hexagon NPU) - دليل الإعداد
أندرويد: - أندرويد arm64 (CPU) - أندرويد arm64 (Snapdragon: CPU، Adreno GPU، Hexagon NPU) - دليل الإعداد
ويندوز: - ويندوز إصدار x64 (المعالج المركزي CPU) - ويندوز إصدار arm64 (المعالج المركزي CPU) - ويندوز إصدار arm64 (OpenCL Adreno) - ويندوز إصدار x64 (CUDA 12) - ملفات CUDA 12.4 DLLs - ويندوز إصدار x64 (CUDA 13) - ملفات CUDA 13.4 DLLs - ويندوز إصدار arm64 (CUDA 13) - ملفات CUDA 13.4 DLLs - ويندوز إصدار x64 (Vulkan) - ويندوز إصدار arm64 (Vulkan) - ويندوز إصدار x64 (OpenVINO) - ويندوز إصدار x64 (SYCL) - ويندوز إصدار x64 (ROCm 10.0)
openEuler: - مُعطَّل - openEuler بنظام x86 (310p) - openEuler بنظام x86 (910b, ACL Graph) - openEuler بنظام aarch64 (310p) - openEuler بنظام aarch64 (910b, ACL Graph)
واجهة المستخدم: - واجهة المستخدم