为了在从SSD实时流式读取参数时保持高效推断,TurboFieldfare 并没有直接使用现有的 MLX 或 llama.cpp 框架,而是使用 Swift 6.2 与 Metal Compute Shading Language 从零打造了自研推理引擎。
为什么选择自研 Swift + Metal 引擎?#
深入集成 macOS 系统硬件需要对内存缓存和底层 I/O 管道拥有绝对的掌控力:
- Swift Concurrency: 负责异步管理磁盘读取与 GPU 计算任务派发的并发协调。
- Metal Kernel Shaders: 直接在 Apple Silicon GPU 核心上高效执行矩阵乘法与 MoE 激活计算。
MoEKernel.metal
#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]]
) {
// 执行已加载 Expert 重量的矩阵计算
output[id] = input[id] * expert_weights[id];
}text克服 SSD 读取延迟的核心优化#
磁盘读取延迟是参数流式传输的最大瓶颈。TurboFieldfare 采用了三大核心技术手段:
- LFU (Least Frequently Used) 缓存策略: 将使用频率最高的热门 Expert(Hot Experts)保留在有限的 2GB 内存中。
- Chunked Prefill (分块预填充): 将输入 Prompt 拆分为小块依次处理,提升顺序 I/O 吞吐率。
- 量化权重格式: 对 Expert 模块数据进行高效量化压缩,减少每次 Token 生成时从 SSD 传输的数据量。
[!IMPORTANT] 该仓库包含了100多项严格记录的性能测试实验,全面验证了 LFU 缓存算法与 Metal GPU Pipeline 结合的降迟效果。
参考资料#
- 官方 Swift & Metal 源代码: drumih/turbo-fieldfare ↗
- Apple Developer Metal 着色语言文档.