blog.dopana

Back

为了在从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 采用了三大核心技术手段:

  1. LFU (Least Frequently Used) 缓存策略: 将使用频率最高的热门 Expert(Hot Experts)保留在有限的 2GB 内存中。
  2. Chunked Prefill (分块预填充): 将输入 Prompt 拆分为小块依次处理,提升顺序 I/O 吞吐率。
  3. 量化权重格式: 对 Expert 模块数据进行高效量化压缩,减少每次 Token 生成时从 SSD 传输的数据量。

[!IMPORTANT] 该仓库包含了100多项严格记录的性能测试实验,全面验证了 LFU 缓存算法与 Metal GPU Pipeline 结合的降迟效果。

参考资料#