llama.cpp Phát Hành Bản b11338 Tối Ưu Hóa DMA Cho Qualcomm Hexagon
Phiên bản b11338 của llama.cpp bổ sung các tối ưu hóa sao chép truy cập bộ nhớ trực tiếp (DMA) bước nhảy chia sẻ cho các thao tác tensor CPY và CONCAT trên Qualcomm Hexagon DSP. Bản cập nhật này hỗ trợ các thao tác nối mảng (CONCAT) trên bất kỳ chiều nào qua DMA cùng nhiều sửa lỗi ổn định và bổ sung rào chắn bảo vệ cho các điều kiện không được hỗ trợ. Những tối ưu hóa này cải thiện hiệu quả truyền tải bộ nhớ và tăng tốc phần cứng khi chạy các mô hình ngôn ngữ lớn trên nền tảng di động và thiết bị biên Snapdragon sử dụng Hexagon NPU/DSP. Việc đẩy các tác vụ sao chép và nối mảng tensor sang DMA giúp giảm tải CPU và nâng cao độ trễ suy luận tổng thể trên thiết bị Snapdragon. Bản cập nhật loại bỏ logic `CONCAT_DMA_MIN_ROW` bị lỗi ở chế độ DMA 64-bit và bổ sung các lệnh gọi `dma_queue_flush()` còn thiếu để đảm bảo xả dữ liệu chính xác. Thay đổi này cũng đảm bảo các tensor bộ đệm mở rộng ánh xạ tới bộ nhớ phần cứng có thể được đọc chính xác qua DMA, dựa trên sự hợp tác trực tiếp với các kỹ sư Qualcomm.
## KIẾN THỨC NỀN
llama.cpp là một công cụ suy luận LLM mã nguồn mở phổ biến được thiết kế để thực thi mô hình hiệu quả trên nhiều nền tảng phần cứng khác nhau. Qualcomm Hexagon là kiến trúc bộ xử lý tín hiệu số (DSP) và NPU chuyên dụng tích hợp trong vi xử lý Snapdragon nhằm tăng tốc các tác vụ học máy. Truy cập bộ nhớ trực tiếp (DMA) cho phép các phân hệ phần cứng truyền dữ liệu độc lập với CPU chính, giúp đẩy nhanh các thao tác xử lý tensor tiêu tốn nhiều bộ nhớ.