llama.cpp Bản Phát Hành b11413 Tối Ưu Hóa Backend Vulkan Cho Sparse Flash Attention
Bản phát hành b11413 của llama.cpp mang đến các tối ưu hóa cho backend Vulkan, đặc biệt dành cho kỹ thuật sparse flash attention với bộ nhớ đệm Key-Value (K/V) nén (quantized). Cập nhật này tái cấu trúc quá trình nén chỉ số (index compaction) thành phương pháp quét phân đoạn đơn, giúp loại bỏ các điểm nghẽn hiệu năng trong quá trình giải mã. Việc chạy các mô hình ngôn ngữ lớn trên phần cứng đa nền tảng qua Vulkan thường gặp phải các điểm nghẽn về băng thông bộ nhớ và năng lực tính toán khi xử lý ngữ cảnh dài. Những tối ưu hóa này giảm chi phí xử lý cho bộ đệm K/V nén, giúp suy luận nhanh hơn và tiết kiệm bộ nhớ hơn trên các GPU của AMD, Intel và thiết bị di động. Trước đây, bước nén chỉ số thưa trên Vulkan thực thi một workgroup cho mỗi hàng mask với các vòng lặp barrier, dẫn đến việc ở quy mô 128k ô ngữ cảnh, chi phí xử lý còn tốn thời gian hơn chính phép tính attention. Giải pháp mới chia các hàng thành các phân đoạn liền kề cho mỗi subgroup kết hợp với ballot counting trên dữ liệu nạp hợp nhất, chỉ cần một lượt quét duy nhất để tính toán offset đầu ra mà vẫn duy trì thứ tự tăng dần.
## KIẾN THỨC NỀN
llama.cpp là một công cụ suy luận mã nguồn mở được thiết kế để chạy các Mô hình Ngôn ngữ Lớn (LLM) một cách hiệu quả trên nhiều loại phần cứng cá nhân. Việc nén (quantize) bộ đệm K/V giúp giảm lượng VRAM tiêu thụ bằng cách lưu trữ key và value ở độ chính xác thấp hơn (như INT8 hoặc INT4), trong khi kỹ thuật sparse flash attention giúp bỏ qua các phép tính dư thừa trên chuỗi ngữ cảnh dài để tăng tốc độ tạo văn bản.