新闻
我们的实验配置:在预算 RTX 3060 上本地运行的 ~83.6 GB 模型
RTX 3060 12 GB 上的 Qwen3.8-Flash-Next IQ3_S 仅具有 48 GB 系统 RAM。没有云推理。只是价格实惠的消费级硬件。

这太不可思议了!
Qwen3.8-Flash-Next IQ3_S (~83.6 GB) 在预算 RTX 3060 12 GB 上本地运行,系统 RAM 仅 48 GB!
解码速度高达 68 个令牌/秒,提示处理速度约为 916 个令牌/秒,只需 34 秒即可处理 30K 令牌提示。
由 coldniko 的 Strata 提供支持。没有云推理。只是价格实惠的消费级硬件!
下面是完整的基准测试、硬件规格、优化和权衡。
这些结果背后的硬件
没有数据中心 GPU、没有昂贵的多 GPU 服务器、也没有海量 RAM 配置。
整个实验是在相当普通的消费者/工作站 PC 上进行的。

CPU
- Intel Core Ultra 7 265 (Arrow Lake)
- 20 核/20 线程
- 高达 5.3 GHz
- 30 MB 三级缓存
- AVX-VNNI/BF16 支持;无 AVX-512
主板
- ASUS Pro Q870I-C
- 英特尔Q870芯片组,LGA1851
- Mini-ITX 外形规格
内存
- 48 GB DDR5-5600 (2 × 24 GB Micron)
- 大约 46 GiB 可用空间
GPU
- NVIDIA GeForce RTX 3060 12 GB
- GA106,计算能力8.6
- PCIe 4.0 ×16
- 170 W 配置功率限制
存储
- Lexar NM1090 PRO 2 TB
- PCIe 5.0 ×4 NVMe
OS
- Ubuntu 24.04.5 LTS
- Linux内核7.0.0-38
- NVIDIA 驱动程序 615.71.10
网络
- Intel 1 GbE Ethernet
关键细节:该模型比可用 VRAM 和 RAM 的总和要大得多。
这正是这个实验的有趣之处。
模型、引擎和内存架构
型号
Qwen3.8-Flash-Next-GSQ-RCO-IQ3_S
两个 GGUF 分片:
- 54.82 GB
- 28.80 GB
- 总计:83.62 GB (77.87 GiB)
附加组件
- 压缩密集权重:~1.5 GiB
- MTP推测解码起草者
- BF16 视觉适配器:~866 MB
- 基于CPU的视觉编码器(12线程)
推理机
- Strata engine 0.1.52
- CUDA 13.0后端
- CUDA架构sm_86
实际内存分配
- GPU VRAM:使用 11.14 GiB
- 常驻专家系统 RAM:24 GiB
- 从 NVMe 传输的剩余专家数据
- 正常推理期间没有交换活动
重要配置设置
--expert-cache auto
--prefill 4096
--spec 4
--spec-min-p 0.5
--mtp mtp/rt
--max-context 32768
--kv int8
--kv-grow
--kv-resident 32768
--vision
--vram-reserve-mib 960
--pool-workers 12
--conversation-cache-mib 1536
--prompt-cache-tail
--prompt-cache-spread
--resident-experts
--resident-budget-gib 24
这不是传统的“将整个模型加载到 GPU 内存中”设置。
Strata 将 GPU 内存、系统 RAM、专家缓存和 NVMe 存储结合使用。
重要的优化是最大限度地减少昂贵的专家传输,同时保持 GPU 的生产力。
真实基准测试结果
相同的型号、相同的硬件、两种路由配置。
模式 A:快速、偏向居住地的专家路由(优先级 = 1.5)
| 背景 | 预填充 | 冷解码 | 温解码 |
|---|---|---|---|
| 1K | 285 tok/s | 42 tok/s | 61 tok/s |
| 4K | 804 tok/s | 50 tok/s | 65 tok/s |
| 8K | 819 tok/s | 61 tok/s | 68 tok/s |
| 16K | 916 tok/s | 60 tok/s | 68 tok/s |
| 30K | 890 tok/s | 58 tok/s | 61 tok/s |
第一个令牌的冷时间:
- 1K: 3.7 s
- 4K: 4.9 s
- 8K: 9.7 s
- 16K: 17.3 s
- 30K: 33.9 s
为了进行比较,模式 B 禁用驻留偏向路由(prior = 0):
| 背景 | 预填充 | 冷解码 | 温解码 |
|---|---|---|---|
| 1K | 282 tok/s | 24 tok/s | 27 tok/s |
| 4K | 781 tok/s | 29 tok/s | 26 tok/s |
| 8K | 789 tok/s | 30 tok/s | 32 tok/s |
| 16K | 889 tok/s | 30 tok/s | 29 tok/s |
| 30K | 878 tok/s | 26 tok/s | 27 tok/s |
500 个代币生成运行:
- 快速:62 tok/s,总共 7.1 秒
- 精确:21 tok/s,总共 20.8 秒
速度测量值与客户端流计时进行交叉检查。
主要观察:
禁用缓存偏向路由可将解码速度降低约 2–2.4 倍。
但有一个重要原因是不要为每个工作负载启用激进路由。下一节将详细介绍这一点。
速度与模型质量:隐藏的权衡
在此 Strata 引擎版本中,具有 ≤13 GB VRAM 的 GPU 自动使用驻留偏向路由:
STRATA_ROUTE_PRIOR=1.5
这有利于快速内存中已有的专家,而不是总是选择原始路由器更喜欢的专家。
其好处是巨大的:
- 专家缓存命中率:快速模式下为 97.2%
- 没有偏见:65.3%
- 比较工作负载期间的存储读取:5.5 GiB 与 46 GiB
- 解码速度:大约快 2 倍
但这不是免费的优化。
更改专家选择可能会改变模型行为,增加与原始模型的差异,并影响长推理或代理工作流程。
根据开发者对10个代理任务的评价:
- 1.5 之前的路由:4.5/10
- 路由优先 0:5.6/10
基线结果本身在运行之间有所不同,因此这是一个方向性结果,而不是明确的质量测量。
我自己的六次简短的代理检查在两种模式下都通过了。
然而,单独的唯一性压力运行暴露了重复:
- 快速模式:205 行,96 个重复项
- 精确模式:209 行,79 个重复项
结论很简单:
- 用于聊天、交互式使用和短任务的快速路由。
- 原始路由适用于更长、对质量敏感的座席工作流程。
基准速度本身不应与模型质量混淆。
提示缓存改变了一切
最令人印象深刻的结果之一不是解码速度。这是使用相同提示重复请求的响应时间。
使用完全缓存的提示:
| 背景 | 冷TFT | 缓存 TTFT |
|---|---|---|
| 1K | 3.7 s | 0.08 s |
| 4K | 4.9 s | 0.08 s |
| 8K | 9.7 s | 0.27 s |
| 16K | 17.3 s | 0.34 s |
| 30K | 33.9 s | 0.44 s |
在这些运行中,第一个令牌的时间大约减少了 45-90 倍。
当重复查询相同的长文档或维护稳定上下文的对话时,提示缓存会产生巨大的差异。
该引擎还配置为对话缓存:
- 1,536 MiB 缓存预算
- 至少 4,096 个停车代币
- 最小可用内存阈值:1,536 MiB
有一个问题:这些结果适用于具有完全可重用缓存的相同提示。
它们并不意味着任意新的 30K 令牌提示将在半秒内处理。
但对于交互式本地人工智能来说,温暖的缓存可以改变游戏规则。
SSD之谜:PCIe 5.0不是瓶颈
起初,NVMe 驱动器显得速度慢得令人怀疑。我们研究了 PCIe 链路、存储拓扑和实际 I/O 行为。
驱动器:Lexar NM1090 PRO 2 TB,PCIe 5.0 ×4。
已验证的 PCIe 连接:
- 当前链路:32.0 GT/s ×4
- 最大链路:32.0 GT/s ×4
- CPU根端口:32.0 GT/s ×4
因此,该驱动器正在以其完整的 PCIe 5.0 链路速度运行。
直接未缓存读取基准:
- 单流,1–4 MiB 块:2.9–3.4 GB/s
- 四个并行流:10.94 GB/s
- 四个流,64 KiB 块:2.25 GB/s
- 四个流,4 KiB 块:0.26 GB/s (~63K IOPS)
10.94 GB/s 的并行结果尤为重要:它超过了 PCIe 4.0 ×4 的实际带宽。
为什么单流吞吐量低很多?
因为 PCIe 带宽与应用程序级吞吐量不同。
队列深度、I/O 大小、请求并行性和延迟都很重要。
Strata 的专家加载模式更接近于低并发情况,而不是合成的最大吞吐量基准。
观察到的引擎存储吞吐量:
- 快速路由:~0.3 GB/s
- 原始路由:~2.4 GB/s
差异来自于必须获取多少专家,而不是来自 PCIe 降级。
另一个有用的细节:RTX 3060 本身就是一款 PCIe 4.0 设备。在空闲时看到其链路下降到 Gen1 是正常的电源管理行为。
在诊断 PCIe 问题之前,请务必检查您正在测量的设备。
一个重要的教训:不要让 Linux 在 48 GB 机器上缓存 83.6 GB 模型
我们在初始启动过程中遇到了严重的问题。
第一个配置允许缓冲加载模型文件。
该型号约为 83.6 GB,而系统只有 48 GB 物理 RAM。
在这样的工作负载下,Linux 面临着严峻的内存回收压力。机器几乎没有响应,包括 SSH 连接,并且需要强制重新启动。
解决方案是更改加载策略并引入内存保护措施。
当前设置:
- STRATA_UNBUFFERED_LOAD=1
- STRATA_RESIDENT_HEADROOM_GIB=10
- 24 GiB 常驻专家预算
- 启动前检查内存可用性
- 启动政策中的 12 GiB 额外安全裕度
这些更改之后:
- 正常推理期间没有交换活动
- 观察点使用了大约 34.6 GiB RAM
- 大约 12.7 GiB 可用空间
- 带载稳定发电
教训:
运行大于物理内存的模型是可能的,但内存计算绝对至关重要。
页面缓存压力、固定模型数据、常驻专家和 KV 缓存必须一起考虑。
不要盲目地从 RAM 配置更大的机器上复制最高性能标志。
功耗、热量和推理成本
这又是一个惊喜。
测得的元件功率:
加载模型后空闲:
- CPU: ~5.8 W
- GPU: 15–18 W
生成期间:
- CPU: ~62.8 W
- GPU: 152–167 W
- GPU 短暂峰值约为 174 W
墙上的估计总系统功率(未使用壁表测量):
- 空闲:~54 W
- 发电:~280 W
观测温度:
- GPU 负载下:62–68°C
- GPU 空闲时:~40°C
- NVMe: 38–47°C
没有观察到热节流。
假定电价为 0.25 欧元/千瓦时:
- 24 小时闲置:~0.32 欧元
- 连续闲置 30 天:~9.72 欧元
- 一小时的活跃发电量:~€0.07
这使得在家中操作功能强大、保护隐私的本地人工智能端点变得完全现实。
当然,这些是估计的电力成本,而不是总拥有成本。不包括硬件折旧、冷却和维护。
RTX 3060 设置不再有意义的地方
这种配置非常适合短交互请求,但它也有局限性。
最重要的是:
- 最大上下文:32,768 个令牌
- 接近 32K 的提示留下了足够的空间来生成
- 实际基准上限约为 30,165 个输入代币
- 思考/推理可以消耗数百个额外生成的代币
- 长时间运行的代理会话很快就会受到限制
为了进行比较,我在具有 24 GB GPU 的更强大的本地系统上运行了相同的模型。
该系统上测得的性能:
- 4K 提示预填充:1,339 tok/s
- 4K解码:94 tok/s
- 16K 提示预填充:2,956 tok/s
- 16K解码:125 tok/s
- 最大上下文:262,144 个令牌
- 15 个工作线程
RTX 3060 系统在可比情况下提供低得多的预填充吞吐量和大约一半的解码吞吐量,而可用上下文仅为八分之一。
然而,12 GB 卡更易于使用并且仍然非常有用。
我目前的做法:
- 适用于复杂、长时间运行的代理的更强大的硬件
- 经济实惠的 12 GB GPU,用于聊天、短工作流程、实验和备份推理
重点不是假装廉价 GPU 取代了高端机器。
关键是本地人工智能已经可以在廉价的硬件上运行多少有用的内容。
哪些方面还可以优化?
该系统已经表现良好,但还有一些有趣的途径可以进行进一步的实验。
并发推理
--slots 2 选项可以提高两个同时对话的总吞吐量。
对于此工作负载,预计总吞吐量可能会增加 10-12%,但需要验证。
这并不意味着单个对话速度提高 12%。
更大的预填充批次
当前:--prefill 4096
候选:--prefill auto:16384
更大的预填充窗口可能会改善长提示处理,但可用的 VRAM 已经很紧张。
由于占用了 GPU 12 GiB 中的大约 11.14 GiB,因此必须仔细测量内存行为。
更多系统内存
使用 --ple-io ram 可以将更多模型数据放入系统内存并减少存储读取。
开发人员的文档建议:
- +16–31% 预填充性能
- +3–11% 解码性能
但这种配置需要更多的 RAM,对于测量的布局大约需要 72+ GiB。
这对于当前的 48 GB 配置来说并不实用。
推测性解码
MTP 推测解码已启用。
观察到的接受情况:在 50-60 个起草的令牌中,约有 33-41 个被接受,即大约 65-70%。
更长的上下文
当前的 32K 限制是操作配置限制,并不表明该型号本身仅支持 32K。
增加它需要重新检查内存容量、KV 缓存行为、延迟和稳定性。
对于这种工作负载,减少昂贵的专家读取和改进访问模式可能比提高驱动器的最大顺序带宽更重要。
一如既往:对实际工作负载进行基准测试,而不仅仅是硬件营销数据。
最后的想法
这是这个实验所展示的内容。
约 83.6 GB 的量化 MoE 模型可以在本地运行:
- RTX 3060 12 GB
- 48 GB DDR5 RAM
- 消费类英特尔CPU
- PCIe 5.0 NVMe SSD
- Ubuntu + Strata
测量结果高达:
- 68 tok/s 热解码
- 916 tok/s 提示处理
- 约 34 秒内 30K 代币冷提示
- 完全缓存的 30K 提示:第一个令牌约 0.44 秒
- 正常操作条件下不交换
但有一些重要的警告。
- 最大配置上下文为 32K
- 快速专家路由改变模型行为
- 最高的速度不一定是最高的质量
- 存储性能取决于访问模式
- 内存管理需要仔细调整
- 长期运行的代理受益于更强大的硬件
我对本地人工智能的实际经济学特别感兴趣。
不仅是 10,000 欧元系统的最高基准,而且是消费类机器和 1,000 欧元左右起价的经济型配置可达到的有用性能。
隐私、独立、受控的运营成本和现实世界的实用性比仅仅追求令人印象深刻的基准数字更重要。
这仍然是一个不断发展的实验,我将继续分享测量结果、失败、配置更改和改进。
本地人工智能的未来已经变得令人惊讶地负担得起。
后来补充
哦,我忘了提一下,GPU 正在运行 NVIDIA Unlock,它是在几天前(上周)发布的。
我现在要求我的 AI 代理在没有解锁的情况下运行相同的基准测试,这样我们就可以在大约 15-20 分钟内比较结果。
在接下来的几天里(虽然不是今天),我将在一个成本不到 1,000 美元的系统中安装这个 GPU,看看它在那里的表现如何。