☰
本地跑大模型卡在显存?RTX 3090升级实测与量化调优指南
2026/10/1 9:06:20 网站建设 项目流程

这台机器原本是 i7-8700K 加 GTX 1080 Ti 的配置,平时打游戏没什么怨言,但自从开始折腾本地跑大模型,这块卡就越来越让我难受。11GB 显存看着不少,可真用起来,7B 模型想上 Q8 量化非常勉强,14B 更是连边都摸不着,多轮对话稍微长一点就直接 OOM 崩溃。前几天终于狠下心,花 4400 收了一张二手 RTX 3090,24GB 显存。换完之后本地跑大模型的体验到底提升了多少?我这次没有只给一个“起飞了”的结论,而是把换卡前后的实测数据、量化选择、功耗温度和踩坑过程完整整理了出来,适合正在纠结要不要升级显卡、以及想在本地跑大模型但预算卡在 4000 元上下的朋友参考。

1. 换卡前的困局:为什么 1080 Ti 跑不动本地大模型

1.1 本地跑大模型的三道硬门槛

很多人以为跑大模型就是“显卡好一点就行”,实际拆开看,本地推理的瓶颈至少有三个:显存容量、显存带宽、以及算力指令集的支持程度。这三者缺一个,体验都会断崖式下降。

先说显存容量。模型权重文件多大,推理时基本就得占多大显存。一个 7B 参数模型用 Q4 量化,权重大约 4.5GB 到 5GB,听起来不大对吧?可别忘了还有 KV cache,也就是模型在对话过程中缓存历史计算结果的那部分内存。上下文越长,KV cache 占用越大,2K 上下文可能只要 0.5GB,拉到 8K 就要 2GB 上下,如果是 14B 甚至 32B 的模型,KV cache 占用还会翻倍。所以“显存刚够装权重”和“显存真正跑得舒服”是两回事。

第二道门槛是显存带宽。大模型推理时,每生成一个 token,理论上都要把整个模型的权重从显存里读一遍。这就像一个查字典的人,每次要抄一个字,但每次都得从头把字典翻一遍。字典越大,翻得越慢;显存带宽越高,翻得越快。生成速度的上限,粗略可以用“显存带宽 ÷ 模型权重体积”来估算。8B Q4 模型权重约 5GB,如果显存带宽是 936GB/s,理论上限大约 180 tokens/s,实际受各种因素影响打个三折四折,也能有 40 到 60 tokens/s。但 1080 Ti 的带宽只有 484GB/s,理论上限直接砍半。

第三道门槛是算力和指令集。现代显卡上的 Tensor Core 对 FP16 和 BF16 的计算有专门加速,而 1080 Ti 属于 Pascal 架构,根本没有 Tensor Core,跑 FP16 全靠普通 CUDA 核心硬算,效率很低。这意味着同样一段 prompt 在做 prefill(也就是第一次生成前处理整段输入)时,老卡要慢得多,长文档、长提示词场景下尤其明显。

1.2 GTX 1080 Ti 的极限在哪里

换卡之前,我拿 1080 Ti 做了几组对照测试。首先是 8B 模型,比如 Llama 3 8B 或者 Qwen2.5 7B,用 Q4_K_M 量化,上下文拉到 4096,生成速度勉强能有 10 到 14 tokens/s。单看这个数字好像还能用,但一旦对话历史变长,KV cache 涨上去,速度就会掉到 8 左右,而且连续生成 1000 个 token 的时候明显感觉卡顿。

再往上,14B 模型用 Q4 量化,权重大约 9GB,加上 KV cache 差不多 10 到 11GB,正好顶在 1080 Ti 的显存上限边缘。我试过强行加载,结果要么直接 OOM,要么刚开始能跑,聊两轮之后上下文一长就崩。就算运气好加载成功了,生成速度也只有 3 到 4 tokens/s,基本属于“能出字但没法用”的状态。至于 32B 模型,那就完全不用想了,20GB 权重往显存里一怼,连加载都过不去。

所以当时的处境很尴尬:小模型配上低量化,勉强能玩;中大型模型要么跑不动,要么慢到怀疑人生。这才是换卡最核心的动机——不是追求帧数,而是想让模型规模、量化精度和生成速度三者至少能兼顾一下。

2. 4400 元选卡:为什么我最后锁定了 RTX 3090

2.1 同价位候选卡横向对比

4400 元这个预算放在现在是挺尴尬的。买新卡的话,能摸到 RTX 4070 Super 的入门价,也能买到 4060 Ti 16GB,但这两张卡的显存分别是 12GB 和 16GB。如果是打游戏,4070 Super 确实香,DLSS 3、光追、能效比都很好;可我要的是本地跑大模型,游戏性能再强帮不上忙。

我把自己关心的参数列了个表:

显卡显存显存带宽Tensor Core二手/新卡情况适合的大模型场景
RTX 4070 Super12GB GDDR6X504GB/s有,第四代新卡,4400 左右8B 模型高量化,14B 勉强
RTX 4060 Ti 16GB16GB GDDR6288GB/s有,第四代新卡,3500 左右14B 低量化能跑但带宽偏低
RTX 3090 二手24GB GDDR6X936GB/s有,第三代二手,4400 左右14B/32B 量化后流畅推理
RTX 4080 二手16GB GDDR6X717GB/s有,第四代二手 6000+预算够的话更均衡

4060 Ti 16GB 的显存看着够,但带宽只有 288GB/s,这是硬伤。生成 token 是典型的带宽敏感型任务,带宽低了,哪怕模型塞得进去,速度也会很难看。4070 Super 带宽 504GB/s 好一些,但 12GB 显存跑 14B 模型还是紧巴巴,32B 想都别想。相比之下,二手 3090 的核心优势就非常突出了:24GB 显存加上 936GB/s 带宽,恰好是本地跑大模型最刚需的两个指标。

还有个事情值得说清楚:3090 是安培架构,虽然 Tensor Core 比 40 系晚一代,但对 llama.cpp、LM Studio、Ollama 这类工具来说,FP16 和量化后的推理差异没有想象中那么大。真正拉开差距的是显存容量和带宽,这两项 3090 在同价位几乎无解。

2.2 显存带宽和 Tensor Core 才是本地大模型的关键

为什么带宽这么重要?我再展开算一笔账。以 14B 模型 Q4_K_M 量化为例,权重文件大约 9GB。在 3090 上生成一个 token,需要把这 9GB 权重从显存读一遍,3090 的显存带宽是 936GB/s,理论极限大约是 100 tokens/s 出头;换到 4070 Super,带宽 504GB/s,理论极限直接掉到 50 多 tokens/s;再换到 4060 Ti 的 288GB/s,理论极限只剩 30 多。实际由于线程调度、总线开销、模型结构等因素,真实速度大概只有理论值的四分之一到三分之一,但带宽的倍数关系基本还是能体现出来。

这就是为什么我反复强调:买显卡跑大模型,先看显存和带宽,再看算力。游戏显卡看中的 CUDA 核心数量、频率、光追单元,在大模型推理场景里权重没有想象中那么大。

Tensor Core 的作用主要体现在 prefill 阶段和训练/微调阶段。生成式对话的时候,第一次处理用户输入的 prompt 需要做大量矩阵乘法,Tensor Core 快就能明显缩短“首字延迟”。我用 1080 Ti 的时候,一段 500 字的 prompt,等第一个 token 出来经常要等好几秒;换到 3090 之后,基本是输入完就第一字就出来了。这个体验差异,比 tokens/s 数字上的提升更直观。

2.3 二手 3090 的验卡流程与避坑

二手 3090 水很深,我收卡的时候没有直接付款交机,而是约在当面测试的地方跑了几个流程。首先是外观检查,看背板有没有发黄、螺丝有没有拆卸痕迹、防拆贴是否还在、散热鳍片灰尘情况。然后是上机测试,用 GPU-Z 查看传感器是否正常识别,确认显存颗粒品牌和 BIOS 信息;再用 3DMark Time Spy 跑一遍压力测试,观察有没有花屏、掉驱动、温度异常。

更关键的一步是显存检测。3090 这类大显存卡,最容易出暗病的就是显存颗粒,尤其是曾经被拿去挖矿的卡,显存高温虚焊、坏块的问题不少。我特意找了一版能在本地 Linux 环境跑的 MATS 显存检测工具,跑了一遍完整测试,检查有没有报错地址。MATS 全称是 Modular Automated Test System,是 NVIDIA 官方给板卡厂商用的显存测试工具,民间有不少修改版可以跑在普通机器上。跑一次大约十几分钟,如果显存有坏块会直接标出地址。这一步虽然麻烦,但能筛掉大部分问题卡。

还有一点容易被忽略:供电和接口。3090 满载功耗能到 350W 以上,非公版卡还有三 8pin 供电的型号,买卡之前一定要确认自己的电源功率和模组线够不够。我原来的电源只有 650W,这次换卡顺便换成了 850W 金牌全模组,这钱也得算进预算里。

3. 换卡前后的实测数据:tokens/s 和模型规模都变了

3.1 测试环境与测试方法

为了尽量公平,这次测试我固定了软件环境:Windows 11 系统,驱动用 551.86 版本,推理工具以 LM Studio 0.2.29 为主,底层调用 llama.cpp 的 CUDA 后端;同时用 Ollama 跑了一遍同样的模型做交叉验证。模型统一从模型仓库拉取 GGUF 格式权重,量化版本覆盖 Q4_K_M、Q8_0 两档。

测试 prompt 用的是同一段描述大模型概念的中文段落,固定输出长度 128 tokens,上下文窗口分别测试了 2048 和 8192 两档。每项测试先做一次 30 秒的 warmup,避免冷启动导致的数值偏低,再取三次生成速度的平均值。CPU 是 i7-8700K,内存 32GB,没有做任何超频。这里说明一下,同型号显卡在不同驱动、不同散热条件、不同推理后端下,数据会有浮动,我这组结果只代表这台机器的实际情况,但趋势是有参考价值的。

3.2 7B/8B 模型:从“勉强能用”到“跑满速”

先看最常用的 7B/8B 档位。这里测的是 Llama 3 8B 和 Qwen2.5 7B,两个模型表现接近,我以 Qwen2.5 7B 为例:

量化上下文1080 Ti 速度1080 Ti 情况3090 速度3090 情况
Q4_K_M204812 tokens/s稳定运行41 tokens/s显存占用约 6.5GB
Q4_K_M81928.5 tokens/s接近显存上限,速度下滑35 tokens/s显存占用约 8.2GB
Q8_020486.5 tokens/s勉强运行,内存吃紧25 tokens/s显存占用约 9.1GB
Q8_08192无法运行OOM 崩溃22 tokens/s显存占用约 10.8GB

对比下来非常直观。1080 Ti 在跑 8B 模型的时候,Q4 量化本来就偏慢,Q8 量化更是直接被显存卡死,长上下文基本免谈。3090 跑 Q4 能稳定在 35 到 41 tokens/s,Q8 也有 22 到 25 tokens/s。也就是说,同样的模型,我把量化精度从 Q4 提升到 Q8,速度反而比原来 Q4 还快一倍多。

为什么 Q8 反而很关键?因为量化精度直接关系到模型输出的质量。Q8 相比 Q4,数值误差小很多,在需要严谨回答、代码生成、数学推理的场景下,答案的准确率提升是可以感知的。以前我只能跑低质量量化,现在可以默认跑 Q8,这是体验质变的第一层。

3.3 14B/32B 模型:从“看不了”到“流畅推理”

中大型模型才是这次换卡收益最大的区间。14B Qwen2.5 和 32B Qwen2.5 分别做了测试:

模型量化上下文1080 Ti 速度1080 Ti 情况3090 速度3090 情况
Qwen2.5 14BQ4_K_M2048无法稳定运行加载成功概率低,偶发 OOM20 tokens/s显存占用约 16GB
Qwen2.5 14BQ4_K_M8192无法运行直接 OOM16 tokens/s显存占用约 18GB
Qwen2.5 32BQ4_K_M2048无法加载显存不足11 tokens/s显存占用约 21GB
Qwen2.5 32BQ4_K_M4096无法加载显存不足9 tokens/s显存占用约 22.5GB

14B 模型在 1080 Ti 上基本属于“理论能跑但实际没法用”的状态,加载成功率低,加载成功之后多轮对话也容易崩。到了 3090 上,14B Q4 稳定在 16 到 20 tokens/s,这个速度已经完全够日常对话和文档处理了。32B 模型更是从“完全不可用”变成了“可用”,9 到 11 tokens/s 虽然不算快,但拿来写代码、做分析、跑批量任务已经能接受。

我还额外试了一下 70B 级别的模型,比如 Qwen2.5 72B Q4,权重约 40GB,3090 那 24GB 显存肯定是装不下的,需要把一部分层 offload 到 CPU。结果速度掉到 2 到 3 tokens/s,基本没法正常对话。这个结果也说明了一个现实:24GB 显存的甜蜜点就是 32B 模型的 Q4 量化,想跑 70B 级别,要么上 48GB 的专业卡,要么接受 CPU offload 的低速煎熬。

3.4 体验层面的变化比数字更明显

数字之外,有几个体感上的变化让我觉得这 4400 花得值。首先是首字延迟。原来用 1080 Ti 跑 8B 模型,输入一段中文 prompt 之后,常常要盯着屏幕等两三秒才开始出字;现在 3090 基本是秒回,长 prompt 场景下差距更大。其次是多轮对话稳定性。原来聊到五轮以上就担心 OOM,现在 24GB 显存给了很高的冗余,哪怕把上下文拉到 8192,8B 模型也只用了三分之一不到的显存,完全不需要担心崩掉。

还有一个容易忽略的点:同时开多个模型的能力。以前显存只够同时跑一个模型,切换模型要全部卸载再加载。3090 的 24GB 显存可以在后台保持一个 32B 模型驻留,另外再开一个小模型处理简单任务,这种多实例工作流在以前是想都不敢想的。

4. 换卡之后才明白的事:量化、上下文与微调

4.1 量化精度终于有了选择权

以前我总觉得“能跑起来就行”,量化越低越好,因为低量化省显存、跑得快。但换到 3090 之后,我发现量化选择权本身就是一种性能提升。

以 8B 模型为例,Q4_K_M 和 Q8_0 的显存差距大约 3GB,速度差距约 1.5 倍。在 1080 Ti 上,跑 Q8 需要把上下文压缩到 2048 以内才能不 OOM,这等于用性能换质量,还要牺牲对话长度。而在 3090 上,Q8 配合 8192 上下文仍然只占一半显卡显存,根本不需要做取舍。

对有编程需求的场景,我实测过 Q4 和 Q8 生成代码的正确率差异。Q4 在处理复杂逻辑时容易出现变量名混乱、漏括号这类低级错误;Q8 虽然不能保证完全正确,但整体可靠度明显更高。所以我现在跑代码生成的默认配置就是 Q8,只有跑 32B 模型的时候才切回 Q4。

4.2 KV cache 和长上下文:24GB 显存的真正红利

长上下文是很多人忽略的显存杀手。上下文窗口一开大,KV cache 的占用会线性增长,模型越大、头数越多,涨得越快。我用 Qwen2.5 32B 跑了一个简单估算:Q4 权重大约 20GB,4K 上下文的 KV cache 大约 2.5GB,8K 就到 5GB 左右。如果显存只有 16GB,可能模型权重装下了,上下文却卡死在 2K,这种情况下模型哪怕再聪明也白搭,因为对话历史稍微一长就被截断。

3090 的 24GB 显存,跑 14B Q8 加 8K 上下文绰绰有余,跑 32B Q4 加 4K 到 6K 上下文也在合理范围内。这让我在处理长文档、做知识库问答的时候,终于不用频繁手动清空对话历史了。

有些推理引擎还支持 KV cache 量化,比如把 KV cache 压到 8bit 或者 4bit,能进一步省显存。如果你发现显存刚好差一口气,可以去试试这个开关。我个人实测,KV cache 量化对生成质量影响不大,但对显存占用的缓解非常明显,尤其是上下文窗口开得很大的时候。

4.3 本地微调:从“玩推理”到“跑 LoRA 训练”

换卡之后我做的另一件事是尝试本地微调。以前只有 11GB 显存,想微调 7B 模型都费劲,因为训练和推理不一样,训练要同时保存权重、梯度、优化器状态,显存占用比推理高好几倍。3090 的 24GB 显存让我可以用 LlamaFactory 跑 7B 模型的 LoRA 微调,批大小设 2 到 4,显存占用在 18GB 到 22GB 之间,勉强能跑起来。

微调的意义在于把通用模型变成“懂你数据”的模型。我用一批业务文档做了 LoRA 微调实验,训练大概跑了一个小时,效果确实比直接用 RAG 提示词工程要自然很多。如果你的目标不止是对话,还想让模型学会自己的写作风格、特定领域的术语用法,24GB 显存正好踩在了本地微调的入门门槛上。

老规矩,训练的时候温度控制比推理要严格得多。我跑 LoRA 训练时 GPU 温度稳定在 75 度上下,显存温度比核心温度更容易被忽略,建议开着监控看整卡温度而不是只看核心。

5. 换卡过程踩过的坑和排查实录

5.1 硬件层面的坑:电源、机箱与温度

这次换卡最大的硬件坑是电源。原来 650W 电源带 1080 Ti 用了三年都没事,换 3090 之后才发现不够。3090 的瞬时功耗可以冲到 400W 以上,加上 CPU 和其他配件,650W 电源直接触发过流保护黑屏重启。后来换成 850W 金牌全模组,问题才解决。这里提醒一句:换 3090 先看电源,额定功率至少 850W,最好选单路 +12V 输出能力强的型号。

第二个坑是机箱风道。3090 是非公三风扇版本,卡身又厚又长,原来的中塔机箱塞进去之后,离侧板只差两厘米,散热空间很差。跑 32B 模型长时间满载,核心温度能到 85 度以上,热点温度破百,风扇转速拉满跟飞机起飞似的。后来我把机箱侧板换成透风款,又加了一个机箱后置排风扇,温度才压到 75 度左右。如果你买的是涡轮版 3090,散热压力会更大,建议拿到手先清灰换硅脂。

5.2 软件层面的坑:驱动、WSL2 与 TCC/WDDM 模式

软件层面,我踩的第一个坑是驱动没有干净卸载。从 1080 Ti 换到 3090,直接在旧驱动基础上装新驱动,结果设备管理器里识别正常,但一跑 CUDA 程序就报错。后来用 DDU 在安全模式下彻底卸载旧驱动,再装干净的新驱动,问题才消失。这个步骤看起来简单,但真遇到问题的时候很容易忽略。

另外很多人会纠结 Windows 下到底应该用 WDDM 模式还是 TCC 模式。这里有个知识点:TCC(Tesla Compute Cluster)模式是 NVIDIA 给部分专业卡和计算卡提供的驱动模式,主要为了最大化计算性能、禁用显示输出;而 WDDM 是 Windows 下常规的显示驱动模型,游戏卡默认就是这种模式。我的 3090 作为消费级显卡,在 Windows 下只能用 WDDM 模式,并不支持切换 TCC。所以如果你也用的是游戏卡,别去折腾 TCC 了,WDDM 模式下跑 llama.cpp 和 Ollama 是完全没问题的。

如果你习惯用 WSL2 跑大模型,还有一点要注意:WSL2 里默认调用的显卡驱动和 Windows 侧是同一个,所以只要 Windows 侧驱动装好了,WSL2 里一般直接就能用 CUDA。我一开始在 WSL2 里跑 Ollama 发现识别不到 GPU,排查了一圈才发现是 Windows 侧的 NVIDIA 驱动版本太老,升级之后 WSL2 里瞬间就识别到了。

5.3 常见问题速查表

最后整理一下我这次折腾过程中的问题合集,按频率排序:

问题现象排查方向
显存不足 OOM加载模型或长对话中途报 CUDA out of memory换更低的量化精度、缩短上下文窗口、启用 KV cache 量化
电源过载黑屏满载生成时整机断电重启换额定功率至少 850W 的电源,检查供电线是否插满
显卡温度过高核心温度 85 度以上,热点 100 度以上清灰换硅脂、调整机箱风道、锁功耗墙
二手卡花屏/掉驱动跑分或推理过程中画面花屏、驱动停止响应先用 MATS 检测显存,排查硬件问题;再考虑重装驱动
速度没有提升换卡后 tokens/s 变化不大检查模型是否跑在核显上、驱动是否正确安装、推理后端是否调用了 CUDA
长上下文越聊越慢对话超过 5 轮后速度明显下降看 KV cache 是否吃满显存、是否需要缩短 ctx 或启用 KV cache 量化
WSL2 识别不到 GPUWSL2 里 nvidia-smi 为空升级 Windows 侧显卡驱动,确认已安装 WSL 版 CUDA 驱动

我个人实际操作中还有一个小体会:换卡之后不要急着跑大模型,先跑一遍 3DMark 和显存压力测试,把卡的基础健康状况确认好,再应用到实际推理场景。本地跑大模型对显卡的稳定性要求比玩游戏高得多,一次长时间生成任务如果中途崩了,前面的对话内容全得重来,那种挫败感比慢还难受。

再说回这 4400 块值不值。我的答案很明确:如果你只是偶尔玩玩 8B 模型,那不需要换卡,用云端 API 反而更省钱;但如果你像我一样,希望本地跑 14B 以上、想体验高量化精度、想折腾长上下文甚至 LoRA 微调,那么 3090 的 24GB 显存和 936GB/s 带宽带来的自由度,是这个价位任何新卡都给不了的。换卡之后我最大的感受不是“变快了”,而是“终于不用在量化、上下文、模型大小之间做痛苦的三选一了”。这笔账算下来,花得值。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询