localaiforum
登录
指南 › 硬件

什么硬件重要(什么不重要)

本地 LLM 性能归结为三种资源,而它们并不平等。显存容量决定你到底能跑什么。内存带宽决定生成感觉多快。原始算力主要决定按下回车后你要等多久。把它们排对次序,每个硬件决策都变得显然;排错了,你就为永远用不上的 teraflops 付钱。

排序:容量、带宽、算力

  1. 显存容量(GB)——硬约束。装不下的模型要么跑不起来,要么溢出到系统内存上爬行。容量同时决定模型大小、量化级别和上下文长度,而卡上其他任何东西都无法弥补它的缺失。
  2. 内存带宽(GB/s)——词元吐出多快。每个生成的词元本质上都要从显存读取整个模型,所以解码速度 = 带宽 ÷ 以字节计的模型大小。生成期间算力大部分闲置。
  3. 算力(TFLOPS)——对预填充重要:在第一个词元出现前消化你的提示词。FLOPs 越多,首词元时间越短,多个请求共享 GPU 时批处理吞吐越大。对单流每秒词元几乎无影响。

哪种资源买到哪种体验

体验 瓶颈 感觉像什么
加载模型 存储、PCIe 通道 每会话一次 10–60 秒;无质量影响
首词元时间(TTFT) 算力(TFLOPS) 长提示词让你等待;喜欢 FLOPs
生成速度(tok/s) 内存带宽 ≈ GB/s ÷ 每词元权重 GB
能承载的上下文 显存容量 KV 缓存随每词元增长(KV 缓存)
并发用户 先容量后算力 容量优先,然后是批预填充的 FLOPs

两条公式承载了几乎全部直觉:

decode tok/s   ≈ effective bandwidth (GB/s) ÷ model size (GB)
prefill FLOPs  ≈ 2 × parameters × prompt tokens

算例。Q4_K_M 的 8B 模型约 5 GB 权重。在带宽 ~1,000 GB/s 的 GPU 上,解码上限是 1,000 ÷ 5 ≈ 200 tok/s;真实引擎在支付完开销后落在 100–150。同一个 2,000 词元提示词大约需要 2 × 8×10⁹ × 2×10³ ≈ 32 TFLOPs 的预填充——任何现代独立 GPU 上不到一秒,在 CPU 上慢得能感觉到。模拟器 让你用真实数字拨弄这些权衡。

为什么新一代 GPU 几乎不加速解码

每代 GPU 大约把算力翻倍:更多核心、更高频率、更强的张量单元。预填充和 TTFT 相应改善——长提示词 RAG 和代码库规模的智能体在新卡上明显更跟手。但内存系统的进步小得多:GDDR6 到 GDDR6X 到 GDDR7 每代大约多买 20–50% 带宽,而解码跑在带宽上。所以新卡更快地消化提示词,然后以与带宽相近的上一档几乎相同的速度生成。为本地 LLM 比较显卡时,先读 GB/s 和显存列,最后才看 TFLOPS。

基本不重要的东西

  • 电源余量。 LLM 推理的功耗远低于显卡的游戏峰值。一块按官方要求额定的好电源足矣;不要为永远打不满的 1,600 W 怪兽做预算。
  • 散热。 只有持续数小时的服务才重要,那时热节流削减频率。任何像样的双风扇或三风扇卡都撑得住。
  • PCIe 通道。 x8 对 x16、Gen 4 对 Gen 5——影响模型加载时间和 CPU 卸载流量,不影响生成。除非你卸载层,否则忽略它。
  • NVLink 和专业驱动。 爱好级服务在解码期间几乎不在卡间搬运东西。有则更好,在此永远不值一笔钱。
  • NPU。 现代笔记本和台式 SoC 里的 NPU 确实擅长小型视觉和音频模型,但截至本文写作没有面向它的实用 LLM 服务栈。聊天模型请规划 GPU、CPU 或 Apple Silicon——不是 NPU。

配机思路:先模型后显卡

不要问“我的 GPU 能跑什么”。问你真正想要哪个档位的模型,然后买最便宜的、能带余量装下它的卡:

  1. 选工作负载:休闲 8B 聊天、认真的 32B 编程/推理助手,或预算允许时的 70B 级质量。
  2. 用你真实使用的上下文、按一个好的量化计算占用——显存计算 有公式和现成表格。
  3. 匹配到留有 10–20% 余量的显卡档位——GPU 档位 把档位映射到模型。
  4. 然后才在该档位内优化带宽。

从一个 GPU 预算出发往前推,就是人们如何最终买到一张快卡、只装得下小到没用的模型,或者一张大卡只用了 40% 容量。先给模型做预算,再给内存,让算力自己安顿。升级任何东西之前,先看看你实际有什么:

nvidia-smi --query-gpu=name,memory.total,memory.used --format=csv

相关: 显存计算 · GPU 档位 · 速度 · CPU 推理