Tempo9 性能测量
同一台 Mac,
明确的测试条件。
English · 中文
评价本地推理运行时,需要分别回答四个问题:多个 Agent 并发时需要等待多久,内存如何随上下文增长,工具调用是否准确,以及处理图像时能否为语言模型保留足够的 GPU 资源。
多个 Agent
四个会话并发时,缩短首个 token 的等待
Continuous batching 将新请求加入正在执行的批次;Paged KV 只为实际存在的 token 分配缓存;Prefix cache 则复用多个会话共有的系统提示词和工具历史。以下测量关注 Agent 用户直接感知的指标:首个 token 延迟。
四个 Agent · 数值越低越好
Tempo9 的各组延迟区间均低于对应的比较结果
每格包含两至三轮测试,每轮十二个请求。横轴为首个 token 延迟。
10K 提示词接近 OpenClaw 每轮发送的系统提示词长度。两个引擎读取相同的 GGUF,并保留各自默认的前缀缓存设置。并发解码吞吐尚未达到可公开比较的复现标准,因此不在本页列出。
来源报告:results_p13_serving_retest.md
长上下文
声明的上下文容量不等于预分配的内存
Tempo9 根据实际到达的 token 分配 Paged KV。将上下文上限从 8K 提高到 128K,启动内存仍保持在约 0.55 GB。冷 KV 页面卸载后,数据只位于 GPU 可访问的统一内存或 SSD,不设置额外的主机内存中转层。
KV + 工作内存 · 数值越低越好
从 8K 到 128K,Tempo9 的启动内存基本不变
声明容量后的启动占用
刻度:0–4 GB
填入 token 后的实际占用
刻度:0–2.2 GB
左右两栏采用不同刻度。左栏为使用上下文前的启动占用,右栏为 token 实际驻留后的内存。
图中统计 KV 缓存与工作内存,不含文件映射的模型权重。实际驻留的 token 仍然占用内存;分页机制避免的是为尚未使用的容量提前预留内存。
来源报告:results_p4b_boundary.md
工具调用
先验证准确率,再测量生成速度
BFCL 测试覆盖 Agent 实际使用的完整服务链:解析请求与工具定义,执行结构化生成,并通过 OpenAI API 兼容端点返回工具名称和参数。
分类得分
| BFCL v4 分类 | Tempo9 |
|---|---|
| simple (Python) | 95.25% |
| multiple | 94.50% |
| parallel | 89.00% |
| parallel multiple | 83.50% |
| Non-Live irrelevance | 84.17% |
结构化输出与投机解码
200 token 以上的工具调用 JSON · 单流
在结构化输出条件下达到 104.9 tok/s
解码吞吐已扣除 TTFT。投机解码需要显式启用,默认关闭。
使用官方 BFCL v4 evaluator 评测全部 3,641 个已完成的单轮样本。104.9 tok/s 仅适用于结构化 JSON 负载;相同的投机设置在散文生成中没有净收益。
来源报告:results_p11_bfcl_fixed.md · results_p6_mtp.md
从 LLM 到 VLM
同一张图片,视觉计算分别运行在 NPU 与 GPU
Tempo9 可以将视觉 Transformer 部署在 Neural Engine,同时由 GPU 继续执行语言模型。以下测试固定图片和语言模型负载,仅改变视觉计算的位置。
纯文本基线 · 同一张图片 · 仅改变执行位置
处理图片时,NPU 方案为 LLM 保留 2.8 倍解码吞吐
“不带图片”为纯文本基线。2.8 倍比较的是同一图片负载下 NPU 与 GPU 两种部署方式。
同一套内存机制还使 Qwen3-VL-30B-A3B 能够在这台 24 GB 设备上完成图像问答。对于两个引擎均可运行的较小模型,测试结果并非单向领先:
| Gemma 4 12B · 单图 | Tempo9 | llama.cpp |
|---|---|---|
| 图像编码 | 28 ms | 131 ms |
| 回答解码 | 28.2 tok/s | 33.9 tok/s |
NPU 测试说明的是系统层面的部署收益,不表示 Neural Engine 的孤立性能高于 GPU。Gemma 对比中,两个引擎读取相同的 GGUF 与 mmproj。
来源报告:results_p7_power.md · results_p4_p5_tickets_vlm.md
方法与来源
这些数据所对应的测试条件
设备
16 英寸 MacBook Pro,Apple M5 Pro,24 GB 统一内存,macOS Tahoe 26.5。本页全部结果均来自该设备。
系统设置
iogpu.wired_limit_mb 保持系统默认值,没有为任一引擎提高 wired memory 上限。
主要模型
Qwen3.5-35B-A3B q3km,15.98 GiB。引擎对比项目读取相同的 GGUF 文件。
数据解释
每个章节回答不同问题。不同负载下的吞吐、延迟、内存和准确率数值不可直接横向比较。
引擎版本、比较对象版本、测试脚本、原始输出、无效条件和被后续测试取代的结果,均保留在 benchmarks 仓库中。该仓库将在首个公开版本发布时开放。