Proyek llama.cpp merilis versi b10322, yang mencakup perbaikan kritis untuk operasi GGML_OP_NORM dan GGML_OP_RMS_NORM pada Metal. Pembaruan ini menyelesaikan masalah di mana threadgroups dengan ukuran yang menyisakan kelompok SIMD parsial menyebabkan perhitungan mean dan varians yang salah akibat hilangnya jumlah parsial.
- Bug terjadi ketika panjang baris bukan kelipatan dari ukuran kelompok SIMD, menyebabkan kontribusi lane terakhir diabaikan selama reduksi lintas-kelompok SIMD.
- Perbaikan membulatkan ukuran threadgroup ke atas ke bilangan bulat terdekat dari kelompok SIMD, memastikan semua jumlah parsial terakumulasi dengan benar tanpa lane menganggur berlebihan.
- Hasil pengujian pada M3 Pro menunjukkan tes NORM dan RMS_NORM berhasil 50/50 dan 51/51 masing-masing, dibandingkan kegagalan sebelumnya (25/50 dan 26/51).
- Rilis ini menyediakan biner untuk macOS (Apple Silicon dan Intel), iOS, Linux (CPU, Vulkan, ROCm, OpenVINO, SYCL), Android, Windows (CPU, CUDA, Vulkan, OpenCL, ROCm, OpenVINO, SYCL, HIP), dan openEuler.
Pembaruan ini memastikan kebenaran numerik untuk operasi norm pada panjang vektor non-standar, yang penting untuk model yang menggunakan dimensi saluran yang tidak habis dibagi oleh faktor vektorisasi.