llama.cpp Phát Hành Bản b10791 Tối Ưu Hóa Kernel OpenCL
Bản phát hành b10791 của llama.cpp giới thiệu các tối ưu hóa hiệu năng OpenCL dành riêng cho việc thực thi LM head định lượng, decode GEMV và các thao tác GEMM batch trung bình. Các cập nhật này giúp cải thiện tốc độ xử lý cho các công việc suy luận đầu cơ (speculative decoding) và Dự đoán đa token (MTP) trên phần cứng được hỗ trợ. Cập nhật này giúp nâng cao hiệu suất suy luận LLM trên các thiết bị di động và vi xử lý tương thích OpenCL như chip Qualcomm Adreno. Việc tối ưu hóa các kernel decode GEMV và GEMM batch bị giới hạn bởi băng thông bộ nhớ sẽ trực tiếp giúp tăng tốc độ sinh token trên các thiết bị tiêu thụ ít năng lượng. Các cải tiến kỹ thuật chính bao gồm hỗ trợ kỹ thuật split-K cho kernel decode GEMV kiểu q8_0 và q4_K, cũng như gộp phép nhân ma trận q4_K với GLU dành riêng cho GPU Adreno. Ngoài ra, bản phát hành này giới hạn cấu hình tiled GEMV mặc định cho một số kiến trúc dựa trên đo đạc thực tế và sửa lỗi bố cục dữ liệu khi đọc lại tensor.
## KIẾN THỨC NỀN
Trong quá trình suy luận LLM, giai đoạn decode sinh token theo chuỗi và phụ thuộc lớn vào các phép toán Ma trận - Vector (GEMV), vốn thường bị giới hạn bởi băng thông bộ nhớ. Các kỹ thuật như Dự đoán đa token (MTP) và suy luận đầu cơ sinh nhiều token song song, chuyển dần tải công việc sang dạng nhân ma trận batch trung bình (GEMM). OpenCL cung cấp một khung làm việc mở cho phép llama.cpp thực thi hiệu quả các phép toán ma trận này trên nhiều phần cứng GPU khác ngoài NVIDIA CUDA.