llama.cpp प्रोजेक्ट ने संस्करण b10321 जारी किया, जिसमें Metal पर GGML_OP_NORM और GGML_OP_RMS_NORM संचालनों के लिए एक महत्वपूर्ण सुधार शामिल है। यह अपडेट एक समस्या को हल करता है जहां थ्रेडगुप्स का आकार आंशिक SIMD समूह छोड़ने के लिए निर्धारित होता था, जिसके कारण गिराए गए आंशिक योगों के कारण माध्य और प्रसरण की गणना गलत हो जाती थी।
- बग तब होता था जब पंक्ति लंबाई SIMD समूह के आकार के गुणज नहीं होती थीं, जिसके कारण क्रॉस-SIMD समूह ह्रास के दौरान अंतिम लेन का योगदान अनदेखा कर दिया जाता था।
- सुधार थ्रेडगुप के आकार को निकटतम पूर्ण संख्या में SIMD समूहों तक राउंड करता है, यह सुनिश्चित करते हुए कि सभी आंशिक योग बिना अत्यधिक निष्क्रिय लेनों के सही ढंग से एकीकृत हों।
- M3 Pro पर टेस्ट परिणाम दिखाते हैं कि NORM और RMS_NORM टेस्ट क्रमशः 50/50 और 51/51 पास हो गए, जबकि पिछली विफलताएं (25/50 और 26/51) थीं।
- इस रिलीज में macOS (Apple Silicon और Intel), iOS, Linux (CPU, Vulkan, ROCm, OpenVINO, SYCL), Android, Windows (CPU, CUDA, Vulkan, OpenCL, ROCm, OpenVINO, SYCL, HIP), और openEuler के लिए बाइनरी प्रदान की गई हैं।
यह अपडेट उन मॉडलों के लिए आवश्यक है जो वेक्टराइजेशन फैक्टर से समान रूप से विभाजित न होने वाले चैनल आयामों का उपयोग करते हैं, जिससे गैर-मानक सदिश लंबाई पर नॉर्म संचालनों की संख्यात्मक सटीकता सुनिश्चित होती है।