10 月 12 日,Project Maya 仓库中出现了一份 RTX 3090 单卡与双卡配置的速度报告。贡献者 briepala 测得的平均解码(生成回答)速度为单卡 26.0 tok/s、双卡 53.0 tok/s。
两块卡的功耗上限都被压到 225W。作者说明出厂上限更高,因此这些并不是默认设置 3090 的数字。
把专家分放在 GPU、内存和 SSD 上的引擎
Project Maya 是专为 GLM-5.3-Flash 这一个模型打造的引擎。README 称它把对话最常用的专家放在 GPU 上,其次的放在内存中,其余放在 NVMe SSD 上,并在对话过程中移动它们。
Maya 的所有量化模型都保留了原模型的 MTP 块。MTP 是预先提出(草拟)后续 token 的模块。
报告中写明的测量条件
环境为 Maya v1.1.2(提交 83044ba)、Maya-S24 模型、Threadripper 3970X、126GB DDR4 和 CachyOS Linux。每块 3090 为 24GB,通过 PCIe 4.0 x16 连接,没有 NVLink。
解码取 3 个 256 token 回答的平均值,采用 greedy 方式并关闭思考模式。这是贡献者的测量,而不是本文亲自进行的测试。
单卡配置把所有层都放在 CUDA0 上,不做草拟。双卡配置把层分为 0~23 和 24~44,并用 MTP 块草拟。
在双卡运行的一个回答中,254 个草稿里有 243 个(95.7%)被接受。预填充分块大小单卡为 32,768,双卡为 8,192。
维护者把第二块卡让速度接近翻倍的原因归于显存中专家比例上升(65% 到约 80%)以及 MTP 草拟。
注意事项:未测量的条件
8K 提示的预填充在单卡上为 913 tok/s,双卡为 885 tok/s。2K 提示时分别为 565 和 592 tok/s。
上下文设置为 131,072 个 token,但作者说明没有测量超过 8K 的提示、并行请求(--parallel)以及与出厂功耗上限的比较。
双卡配置下把预填充分块设为 32,768 的运行也在未测量清单中。
解码与预填充对不同任务的影响
如果任务需要生成大量长回答,解码速度在总时间中占很大比重。
反复输入大段内容的任务,会在第一个 token 出现之前把更多时间花在预填充上。在这份报告中,双卡并没有让预填充变快。
两次运行无法分离的原因
双卡配置同时改变了显存中的专家比例、层的布局和 MTP 草拟。仅凭两次运行,无法区分每个因素对速度贡献了多少。
因此这个结果比较的是两套完整配置的表现,而不是多加一块 GPU 的效果。
在自己的系统上重新比较的项目
如果用类似硬件比较,可以统一模型包、提示、输出长度、功耗上限和草拟方式,并记录实际的层切分和预填充分块。
Project Maya 的双 3090 报告是 GPU 数量与 MTP 草拟同时变化的配置对比,并不能说明仅第二块卡带来的扩展倍率。
