RTX 5090 搭配 Qwen3.6 能否达到 > 3,000 tok/s?欢迎来拍砖(open-dllm)
摘要
Open-dLLM 将 Qwen3.6 适配为使用扩散式生成,在 RTX 5090 上对于短序列实现了超过 3,000 tok/s 的吞吐量,相关代码已在 GitHub 上发布。
背景——这些人:Fred Zhangzhi Peng、Shuibai Zhang、Alex Tong,他们致力于将自回归模型转换为扩散模型(这在较老的模型上已经可行)。[https://oval-shell-31c.notion.site/Open-dLLM-Open-Diffusion-Large-Language-Model-25e03bf6136480b7a4ebe3d53be9f68a](https://oval-shell-31c.notion.site/Open-dLLM-Open-Diffusion-Large-Language-Model-25e03bf6136480b7a4ebe3d53be9f68a) 我 fork 了代码库,并利用免费的 deepseek-flash / GLM5.1 在 opencode 上运行了一整晚,进行升级以支持 Qwen3.6——因为代码库已有超过 6 个月的历史。我还让 AI 整合了最新的 LDLM 论文 [https://arxiv.org/pdf/2605.07933v1](https://arxiv.org/pdf/2605.07933v1)。作者为 Viacheslav Meshchaninov1、Alexander Shabalin1、Egor Chimbulatov2、Nikita Gushchin3,4、Ilya Koziev5、Alexander Korotin3,4、Dmitry Vetrov1——他们花了三年时间使这篇论文成功运作。[https://x.com/Viacheslav91112/status/2054613430082957443?s=20](https://x.com/Viacheslav91112/status/2054613430082957443?s=20) 我要求它为 Qwen3.6 模型构建配置,并整合 LDLM 进行升级,同时在 "诚实" 假设下粗略估算输出数据——其中最主要的是序列长度,较长的输出会导致吞吐量下降。
# 推理吞吐量(Qwen3.6 LDLM,未经训练,RTX 5090 32GB) [](https://github.com/johndpope/open-dllm#inference-throughput-qwen36-ldlm-untrained-rtx-5090-32gb)
|模型|维度|可训练参数|扩散步数|吞吐量|
|:-|:-|:-|:-|:-|
|Qwen3.6-35B-A3B|2048|1.39B|10|**3,238 tok/s**|
|Qwen3.6-35B-A3B|2048|1.39B|4|**\\~6,500 tok/s**|
|Qwen3.6-27B|5120|6.75B|10|**745 tok/s**|
|Qwen3.6-27B|5120|6.75B|4|**\\~1,500 tok/s**|
> # 假设与注意事项 [](https://github.com/johndpope/open-dllm#assumptions--caveats)
> * **未训练的权重**:这些基准测试使用随机初始化的感知器/解码器/扩散头权重。训练后的模型吞吐量相同,但输出内容会更连贯。质量基准(如困惑度、HumanEval)将在训练完成后发布。
> * **编码器未参与推理**:冻结的 Qwen3.6 编码器在**生成过程中未被使用**——它仅用于训练(生成潜在目标)。在推理时,扩散头对随机噪声进行去噪,然后感知器解码器将潜在表示映射为 token。在基准测试前,编码器会被删除(`del autoencoder.token_encoder`)。
> * **序列长度 = 64**:基准测试使用较短的序列长度(64 个 token)。更长的序列会按比例降低吞吐量。4 步吞吐量数值是根据 10 步测量值线性外推得出的。
> * **批量大小 = 1**:仅支持单序列生成。对于 35B-A3B(dim=2048 易于适配 VRAM),吞吐量随批量大小近似线性增长;但对于 27B(dim=5120)则不那么明显。
> * **CPU 内存要求**:虽然编码器在推理时未被使用,但在训练期间**必须**容纳于系统内存中(27B 约 54GB,35B-A3B 在 bf16 精度下约 22GB)。Qwen3.6 架构使用了无法在 CPU 上运行的 Triton 内核(flash-linear-attention),因此训练时的编码器前向传播需要 GPU 卸载——建议使用多 GPU 设置进行训练。
> * **Qwen3.6 需要** `trust_remote_code=True`:该模型使用了标准 transformers 发行版中不包含的自定义架构代码(`Qwen3_5ForConditionalGeneration`)。请确保你的 `transformers` 版本支持它(>=4.54)。
> * **35B-A3B 是 MoE**:每个 token 仅激活 35B 参数中的 3B,因此其隐藏维度(2048)远小于 27B 密集模型(5120)。这就是为什么 LDLM 的可训练组件小了 5 倍且速度快了 4 倍。
> * **与自回归模型的比较并不完全对等**:扩散模型在 N 个扩散步骤中并行生成所有 token,而自回归模型一次只生成一个 token。对于短序列,“tok/s”指标有利于扩散模型,但不能反映输出质量——输出质量取决于训练收敛情况。
代码在此处,并启用了 git issues:[https://github.com/scrya-com/Open-dLLM](https://github.com/scrya-com/Open-dLLM)
wandb 训练指标:[https://wandb.ai/snoozie/Qwen3.6-35B-A3B-LDLM?nw=nwusersnoozie](https://wandb.ai/snoozie/Qwen3.6-35B-A3B-LDLM?nw=nwusersnoozie)
如果谁有闲置的 [vast.ai](http://vast.ai) 积分 / Azure 额度 / Google 云额度,请联系我。
相似文章
Qwen3.6 27B 在 RTX 5090 上,调整 MTP/缓存设置后的 6.4k 采样 token/s 分布
在 RTX 5090 上运行 Qwen3.6 27B,调整 MTP 和缓存设置后达到每秒 6.4k 个 token,展示了推理优化技术。
双RTX 4060 Ti上Qwen3.6 q4xl达到125 tok/s,性价比惊人
有用户报告称,在两张RTX 4060 Ti显卡上运行Qwen3.6 q4xl达到了每秒125个token,强调性价比出色,并想知道进一步优化是否能达到150 tok/s。
更新:Qwen 3.8 27B 在单张 RTX 3090 上使用 Megakernel 达到 140 token/秒:与 llama.cpp 相比,KL 散度为 0.0009
用于 Qwen3.8-27B 的 CUDA 巨型内核引擎在单张 RTX 3090 上实现了比 llama.cpp 快 1.4–1.9 倍的推理速度(代码生成速度为 140 token/秒),且没有可测量的精度损失,这一点已通过与参考实现对比的 KL 散度和困惑度基准测试得到验证。
**Qwen 3.8 Flash Next-GSQ-RCO-IQ2_XS:仅凭一张 RTX 3060 12GB + 16GB DDR4 内存即可达到约 21 tok/s(未做 gate pruning,100% 位精确)**
一位开发者展示了一个为 llama.cpp 定制的 `--moe-direct-io` 功能,在仅配备 12GB 显存的 RTX 3060 和 16GB 内存的环境下运行 125B MoE 模型 Qwen3.5-Flash Next(IQ2_XS 量化,68GB),实现了 10–15 倍的加速(20–24 tok/s),且输出结果与官方版本逐位一致(bit-exact)。
实验:Qwen3.8-2.4T-A95B 在 RTX 5090 + RTX 5060 Ti 上本地运行,约 0.80 tok/s
一个实验,使用 llama.cpp 在双消费级 GPU(RTX 5090 + 5060 Ti)上本地运行 Qwen3.8-2.4T-A95B MoE 模型,启用 MTP 推测解码后达到约 0.8 tok/s。