Để đạt được hiệu năng cao khi đọc tham số từ SSD trong thời gian thực, TurboFieldfare không sử dụng các khung làm việc có sẵn như MLX hay llama.cpp. Thay vào đó, tác giả đã xây dựng một Custom Inference Engine hoàn toàn bằng Swift 6.2 kết hợp trực tiếp với Metal Compute Shaders.
Tự chế Custom Engine thay vì dùng thư viện có sẵn#
Việc tích hợp sâu vào hệ điều hành macOS đòi hỏi quyền kiểm soát tuyệt đối đối với bộ nhớ đệm (caching) và thao tác đĩa I/O khép kín:
- Swift Async/Await & Concurrency: Quản lý song song tiến trình đọc dữ liệu đĩa và chuẩn bị các khối tính toán.
- Metal Kernel Shaders: Thực thi các phép nhân ma trận và kích hoạt lớp MoE trực tiếp trên GPU Apple Silicon.
#include <metal_stdlib>
using namespace metal;
kernel void moe_expert_compute(
device const float* input [[buffer(0)]],
device const float* expert_weights [[buffer(1)]],
device float* output [[buffer(2)]],
uint id [[thread_position_in_grid]]
) {
// Thực thi tính toán ma trận cho expert được nạp
output[id] = input[id] * expert_weights[id];
}textCác kỹ thuật giảm độ trễ SSD (Latency Reduction)#
Độ trễ khi truy xuất đĩa cứng SSD là rào cản lớn nhất đối với việc stream weights. TurboFieldfare áp dụng 3 giải pháp cốt lõi:
- Bộ nhớ đệm LFU (Least Frequently Used): Duy trì các “hot expert” phổ biến nhất trong dung lượng RAM 2GB có sẵn.
- Chunked Prefill: Chia nhỏ giai đoạn prefill (xử lý prompt đầu vào) thành các chunk để tối ưu hóa luồng dữ liệu I/O.
- Quantized Weight Formats: Nén dữ liệu expert ở định dạng lượng tử hóa phù hợp giúp giảm kích thước khối cần đọc từ SSD.
[!IMPORTANT] Hơn 100 kịch bản thử nghiệm đã được ghi lại trong kho lưu trữ dự án, chứng minh hiệu quả giảm trễ vượt trội của thuật toán LFU Cache kết hợp Metal GPU Pipeline.
Tài liệu tham khảo#
- Mã nguồn Swift & Metal Shader: drumih/turbo-fieldfare ↗
- Tài liệu Metal Shading Language của Apple Developer.