MacMLXCore 由应用、CLI 与本地 API 共享代码,而各进程拥有自己的引擎实例示意图
多个产品入口共享一套核心代码;内存状态仍属于各自进程。

已发布架构与当前边界

已发布0.1.0

Swift 进程内推理

默认引擎在 Swift 进程内加载并运行 MLX 模型。

模型加载、生成、缓存与服务通过 MacMLXCore 使用 Apple MLX;默认推理路径不需要 Python 运行时。

核验

已发布0.1.0

Apple 芯片统一内存

MLX 数组使用 Mac 的 CPU/GPU 共享内存系统。

统一内存减少 CPU 编排与集成 GPU 计算之间的显式传输,但模型权重、激活值和 KV 缓存仍会占用有限的物理内存。

核验

已发布0.1.0

共享代码,进程内各自运行

应用与 CLI 都导入 MacMLXCore,推理和服务由核心负责。

两个产品共享实现与行为;当应用和 CLI 分别运行在不同进程时,它们不会共享同一个内存中引擎实例。

核验

已发布0.1.0

默认路径无需 Python

已发布的默认引擎为 Swift 原生,不需要 Python 运行时。

可选兼容引擎可能使用子进程与其他运行时,因此这并不表示项目任何地方都没有 Python。

核验

已发布0.5.0

精确前缀 RAM 与 SSD 缓存

内存热层与内容寻址 SSD 冷层支持提升和降级。

v0.5.0 发布的缓存复用完整精确前缀,不包含已发布的块共享或分页 KV 分配。

核验

已发布0.6.0

Trie 最长前缀复用

v0.6.0 可复用最长兼容缓存词元前缀。

多轮提示可裁剪到最长公共前缀,只增量预填充新增后缀,同时用量统计仍按完整提示计算。

核验

已发布0.5.0

有界模型池

预算、LRU 淘汰、固定、冷切换、空闲 TTL 与探针共同约束多模型使用。

模型池在 v0.5.0 发布并于 v0.5.3 加固;它不是统一自适应控制器。

核验

已发布0.6.0

资格门控的连续批处理

v0.6.0 仅在真实并发下批处理符合条件的稠密文本请求,并自动回退到串行路径。

标签版 4 客户端基准测得 2.5–3.2× 聚合吞吐量;VLM、推测解码、Ollama、Anthropic 与嵌入仍保持串行。

核验

已发布0.6.0

固定预填充准入节流

固定 prefillBatchSize 限制每个调度步骤接纳的行数。

已发布的节流采用固定配置,并非规划中的自适应内存控制器。

核验

已发布0.6.0

推测解码

v0.6.0 通过 API 与 GUI 交付经典草稿模型路径。

接受率遥测用于呈现草稿效率;若目标使用不可裁剪的混合或线性注意力缓存,系统会检测并回退到标准解码。

核验

已发布0.6.0

KV 缓存量化

v0.6.0 为兼容请求开放 kv_bits、kv_group_size 与 quantized_kv_start。

这些参数改变 KV 缓存精度,而非模型权重精度;非正数 kv_bits 会禁用该功能,兼容矩阵会拒绝不支持的模型或请求组合。

核验

已发布0.7.0

硅活动面板

新的主窗口活动标签页显示实时 Apple 芯片读数、预填充/解码吞吐拆分,以及当前推理瓶颈与相应建议。

面板读取 GPU 占用、内存带宽、热与内存压力以及各电轨功耗,无需管理员权限或辅助进程。它是可观测性,而非性能保证:不可用的计数器会显示破折号并给出原因,空闲引擎显示无活动生成,估算值会被标注而非当作实测值。

核验

已发布0.7.0

推理瓶颈分类器

v0.7.0 将硬件采样与引擎实时的预填充或解码阶段融合,归因限制生成的因素。

由于分类器在进程内运行,它知道当前处于哪个推理阶段——这是外部 GPU 监视器无法获取的信号。它是经过平滑的启发式判断,而非性能剖析器:优先级为内存高于热、热高于计算或带宽,应用迟滞与三帧平滑,并自校准带宽上限,因此结论是指引而非真值测量。

核验

已发布0.7.0

免 sudo 的硅采样

运行时 IOReport 桥接与一组采样器读取 GPU 占用、内存带宽、热与内存压力以及 ANE 功耗。

IOReport 桥接通过 dlopen 解析,因此未来若某个 macOS 重命名或移除该私有框架,读数会降级为不可用而非无法启动。内存带宽以估算值呈现,ANE 提供功耗代理且不虚构利用率百分比,而无占空比信号的媒体引擎则被省略而非猜测。

核验

已发布0.9.0

应用已链接受控 MLX 构建

v0.9.0 是首个 GUI 真正链接 macMLX 自有补丁版 mlx-swift(而非上游版本)的 DMG。

Xcode 工程此前没有声明自己的 mlx-swift 依赖,因此在包 identity 冲突时,间接引入的上游副本获胜并被应用链接;此前每个版本发布的 GUI 都不包含那些 MacMLXCore 自身测试已逐条验证过的正确性 cherry-pick。CLI 因另一个 root 存在同样缺陷,已一并修复。这是把引擎恢复成原本预期的样子,而不是在其携带的修复之外改变推理行为。

核验

已发布0.9.0

已携带的上游 MLX 正确性修复

钉定的 MLX 构建携带十三条上游正确性修复,其中三条会在不报错的情况下返回错误数值。

超过 32K KV 序列后,NAX 注意力核会让 tile 位置在 16 位类型上回绕,并从错误偏移读取掩码(mlx#3361);排序后的专家分发在聚合矩阵超过 32768 行时会漏写若干行(mlx#3922);group size 为 32 的量化向量-矩阵乘法从不分发最后一整块之外的尾列(mlx#4251)。这三条在携带前已在本机复现。其中多数只影响 M5 硬件;携带修复是正确性修补,而非性能宣称。

核验

规划中future

分页 KV、块共享与 CoW

分页分配、共享块与写时复制分支处于规划阶段。

这些缓存虚拟化能力均未发布;已交付的缓存仅复用完整精确前缀。

核验

规划中future

统一自适应内存守卫

跨缓存、模型池与并发的反馈控制器处于规划阶段。

已发布的内存探针和模型池上限是独立机制,不能称为该守卫。

核验

Apple 芯片统一内存服务 CPU 编排与集成 GPU MLX 计算示意图
统一内存避免独立 GPU 的显式复制边界,但容量仍然有限。

官方来源

  1. 已携带的上游 MLX 正确性修复
  2. KV 缓存量化
  3. Apple 芯片统一内存
  4. 共享代码,进程内各自运行
  5. 已携带的上游 MLX 正确性修复
  6. 精确前缀 RAM 与 SSD 缓存
  7. Trie 最长前缀复用
  8. 有界模型池
  9. 固定预填充准入节流
  10. 资格门控的连续批处理
  11. 推测解码
  12. KV 缓存量化
  13. 硅活动面板
  14. 硅活动面板
  15. 推理瓶颈分类器
  16. 推理瓶颈分类器
  17. 免 sudo 的硅采样
  18. 免 sudo 的硅采样
  19. 应用已链接受控 MLX 构建
  20. 已携带的上游 MLX 正确性修复
  21. 统一自适应内存守卫