单卡RTX3090Ti满血Qwen3.8 27B 262K破百速

如果你追过我之前的文章,就知道 Qwen3.8-Flash-Next 一直是我的主力:快、聪明,什么活都接得住——代价是它得靠四张 GPU 才肯撒开腿。

我没料到的是,它那个低调的兄弟 Qwen3.8–27B,反倒成了更大的新闻。我从没想过,这个模型能在单张 RTX 显卡上跑这么快。

先说背景。Qwen3.8–27B 实力不俗,日常活儿几乎不出错,比我之前跑的 Qwen3.6 强出一大截。但它从来都不便宜:接近无损的 Q8 版本要吃掉约 28 GB 显存,一块消费级卡根本装不下。我此前几个月,是靠两张 RTX 3090 串起来,才把一个 27B 模型喂到体面的质量。

然后今天早上,我刷到一条帖子,说 Qwen3.8–27B 能在单张 RTX 3090 上跑——不是 5090,也不是 3090 Ti,就是 2020 年那张平平无奇的 24 GB 老卡——还带着完整的 262K 上下文,速度听着像编的。

我试了。结果惊人。及之而后知,履之而后艰,不下场亲自跑一遍,你永远猜不到它能快成什么样。

先看数字

这是我在各自单卡、单模型下实测的结果:

显卡

解码速度

提示词预填充

RTX 3090

65–80 tok/s

1,000–1,300 t/s

RTX 3090 Ti

70–100 tok/s

1,200–1,700 t/s

RTX 5090

150–180 tok/s

3,000–4,000 t/s

把第一行再读一遍:单张 RTX 3090 上 65 到 80 tokens 每秒。这比我读字还快,稳稳越过了"像真人对话"那条约 30 tok/s 的线——而且是一张 2020 年发布的卡,跑着一个稠密 27B 模型、开着完整上下文。

3090 Ti 直接摸到三位数:100。5090 到了 150–180,这放在三年前是数据中心级的吞吐。

比我以前跑过的任何方案都快得多。那到底怎么做到的?

让它跑起来:三步

第一步,编译专用分支。 有人给 llama.cpp 做了个分支 llamAmpere,专为压榨 Ampere 架构(以及更新的卡)而生:

git clone -b main https://github.com/JakeATX/llamAmpere.git
cd llamAmpere
cmake -S . -B build-sm86 -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON -DGGML_CUDA_FA=ON \
  -DCMAKE_CUDA_ARCHITECTURES=86 -DGGML_NATIVE=ON
cmake --build build-sm86 -j8 --target llama-server

留意一下:86 是 RTX 30 系的架构代号。你用的是更新的卡,就把这个数字换掉——Ada(40 系)是 89,Blackwell(50 系)是 120。分支本身在所有这几代上都能跑,只有这个编译开关要改。

第二步,下模型。 性能还依赖一份特制的量化,叫 ATX-4-XS,发布在 Hugging Face 上(约 14.5 GB)。两种拿法都行,先看 Hugging Face 命令行:

huggingface-cli download jakeatx/Qwen3.8-27B-ATX-IQ4_XS-M-GGUF \
  --local-dir ~/models/qwen38-27b-atx

或者老办法 wget,直接下进自建目录:

mkdir -p ~/models/qwen38-27b-atx
wget -O ~/models/qwen38-27b-atx/Qwen3.8-ATX-4-XS.gguf \
  "https://huggingface.co/jakeatx/Qwen3.8-27B-ATX-IQ4_XS-M-GGUF/resolve/main/Qwen3.8-ATX-4-XS.gguf"

路径按你自己的改,我这边是放在一块专门的模型盘上。

第三步,启动。 这是我实际用的命令:

CUDA_VISIBLE_DEVICES=0 GGML_Q8_TURBO3_MMA_FUSED=1 \
  /path/to/llamAmpere/build-sm86/bin/llama-server \
  -m /path/to/models/Qwen3.8-ATX-4-XS.gguf \
  --alias Qwen3.8-27B-GGUF \
  -c 262144 -b 4096 -ub 1024 -t 8 -tb 8 -ngl 99 -fa on -ctk q8_0 -ctv turbo3 \
  --parallel 1 --jinja --fit off \
  --cache-prompt --cache-ram 8192 --ctx-checkpoints 24 --checkpoint-min-step 10240 \
  --spec-type draft-mtp --spec-draft-n-max 3 --spec-draft-p-min 0 \
  --spec-draft-type-k q8_0 --spec-draft-type-v q8_0 \
  --host 0.0.0.0 --port 8082 \
  --spec-draft-vocab-map docs/mtp-vocab/atx_65536.txt

有两个细节,绝大多数人会漏掉、然后白白掉速:那个 GGML_Q8_TURBO3_MMA_FUSED=1 环境变量(作者的笔记说它"值 13%,也是最多人忘记的那一行"),以及末尾那个词表映射文件——它就在你刚下下来的分支仓库里。

为什么它真能这么快

这里叠了四层思路。单拎出来都不是魔法,合起来却是一堂工程示范课。我按跟朋友喝咖啡那样,一层层讲。

一、重写内核。 llama.cpp 很强,但它的 CUDA 内核是奔着"在很多代 GPU 上都正确"写的。这个分支反其道而行:专门为一代架构重写热路径,一直挤到挤不动为止。两个值得说的例子:Qwen3.8–27B 不完全是标准 Transformer,它有 48 层是 Gated DeltaNet 的循环状态,而非注意力。分支改了这些内核,让每个 GPU warp 拥有四列状态而不是一列,硬件流水线喂得更顺,单这一项就在提示词和解码上各值 5–6%。剩下 16 层真注意力里,关键数据是压缩在显存里的,旧的解压路径只跑出约 10% 的可用带宽——像把消防水管捏成吸管。重写后用异步拷贝分段搬运、修正了读取,长上下文下解码最多快 11%。还有些不起眼但同样要紧的活:两处内存分配修好,省出 2.8 GB 显存。这 2.8 GB,恰好就是"262K 上下文塞得进我这块卡"和"塞不进"的区别。

二、更聪明的比特。 量化方案决定每个权重分到几位。最笨的做法是一视同仁,比如全给 4 位。问题是,并非所有张量对舍入误差都一样敏感。作者测出哪些张量一压就受伤(注意力投影、输出头),于是做出了 ATX-4-XS:主体用 IQ4_XS,在少数关键角色上选择性升到 Q5_0/Q6_K/Q8_0。增之一分则太长,减之一分则太短,哪些比特该留、哪些该砍,分寸拿捏得刚好。结果是 14.5 GB 的模型——比这个模型的标准 Q4_K_M 量化还小——每次路过显存读的字节更少,产出却接近日常可用的满血质量。为什么更小反而更快?因为单 token 生成是带宽瓶颈:每吐一个 token,都要把权重从显存里读一遍。每 token 字节更少,每秒 token 就更多。就这么简单。

三、KV 缓存用速记。 生成时模型要维护一份 KV 缓存——关于读过、说过的一切的笔记,好让新 token 回头查上下文。到了 262K tokens,这份缓存大得吓人:光用标准格式,权重还没加载,显存就先被它吃光。这套方案(继承自 TurboQuant+ 那一脉)的做法是:注意力的 key 用 q8_0(接近无损)存,value 则旋转压缩到大约 3 位,也就是"Turbo3"。这个不对称是故意的:key 像地址,错了会把一切都归错档;value 是内容,用速记写还扛得住。老实说一句:这不是全链路 Q8 的保真度。写代码、写作、日常智能体活儿,我没撞到质量墙;但你要的是 temperature 0 下逐比特复现,那就跟我以前一样,两张卡上跑 Q8。不吹牛。

四、投机解码加词表映射。 最大的招是带 MTP(多 token 预测)的投机解码:模型自带一个小起草头,先猜出接下来几个 token,主模型并行核对。分支把它跑到深度 3:往前猜三个,一次核实三个,猜对几个留几个。关键在核对方式。老的 llama.cpp 要求起草 token 与目标的首选完全一致才接受,又严又浪费。这套用的是正规的拒绝采样:以 min(1, p/q) 的概率接受每个起草 token(p 是主模型给该 token 的概率,q 是起草头给的)。说白了就是公平掷骰,最终分布与完整生成可证等价——输出更快,质量不变。那末尾那个词表映射文件 atx_65536.txt 是干嘛的?Qwen3.8–27B 的词表约 24.8 万 token,每起草一步,都要拿隐藏状态乘一张覆盖全部词表的巨大投影矩阵,单次约 2.86 亿次乘加。可真实生成的文本,几乎用不到这么大的词表——作者测出,最有用的 65536 个 token,覆盖了起草头实际提出的 99.59%。所以这张映射只缩小起草头的投影,主模型照旧从全词表里选:每起草一个 token,从约 2.86 亿次乘加,砍到约 7500 万次。这是起草头最贵那张矩阵上约 75% 的削减,而起草每个生成 token 都要跑好几次,于是它成了整个 v0.2 版本里最大的单项提速(公开数字从约 65 涨到约 75 tok/s)。没有这个映射文件,你每一次猜测都按全价买单。

四层叠起来——内核重写、更聪明的比特、显存速记、便宜的预判——一张 2020 年的 GPU,跑赢了三年前要花大价钱买的专用硬件。RTX 3090 没变强,是社区把"挤"这件事练得太狠了。聚沙成塔,每一层单看都不惊人,摞起来就把一张老卡抬上了台面。

炒作圈不会告诉你的那件事

退一步看:一个人,把前沿模型当工程助手,几天工夫就让一张五年前的消费级 GPU,把最先进的开源模型跑得比官方方案快三倍——然后把这些内核、量化和配方全部免费公开。

这就是 2026 年的本地 AI 生态。每过一个月,上个季度还得两张卡才跑得动的东西,一张卡就行了。而差不多就在同一周,又有公司发布报告,说 AI 已经变得多么危险。恕我直言:一家公司花几百万游说你去害怕它的产品,同时自家工程师拼命把它做出来卖,"危险"这个词的含义,就不再是你以为的那个了。

我桌上那张多年前买的 RTX 3090,早已回本、被遗忘、被当成过时货——此刻正以每秒 80 个 token 吐字,完全离线,不听谁的,也不给谁计费。它不需要谁的许可、谁的 API key、谁的风险清单。接下来十二个月会是什么样,我说不准。我只知道一件事:权重存在我的硬盘上。

原文链接:
https://xhinker.medium.com/100-tokens-second-on-one-rtx-3090-ti-qwen3-8-27b-full-262k-context-one-gpu-1451b1e25fb0

展开阅读全文

更新时间:2026-09-29

标签:数码   模型   词表   显存   分支   上下文   内核   权重   重写   注意力   张量

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight All Rights Reserved.
Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302034903号

Top