前言
第一篇列出了产品线,第二篇解释了显存、带宽、算力和互联。本篇只回答选型问题:指定模型、精度、上下文长度和并发量后,哪些卡能放下,速度是否达标,多卡和租赁是否值得。
本地推理
先确定权重是否需要常驻显存,再按上下文和并发量核算 KV cache。允许 CPU 内存卸载时,小显存卡也能运行更大的模型,但要另行验证速度,不能直接套常驻显存的选型表。
模型规模门槛
下面是单卡常驻权重的粗算,权重体积沿用上篇的估算,不包含 KV cache 和推理框架占用。具体能否运行还取决于量化格式与推理后端。
| 模型 | 精度 | 权重约占 | 单卡选择 |
|---|---|---|---|
| 7B | FP16 | 14 GB | 16G 仅适合很短的上下文;24G 留余量 |
| 8B | FP16 | 16 GB | 24G 起更稳妥 |
| 14B | Q4–Q6 | 约 9–12 GB | 16G,仍需核对上下文 |
| 32B | Q4 | 约 20 GB | 24G 余量紧;32G 可容纳更多 KV cache |
| 70B | Q4 | 约 42 GB | 48G 余量紧;也可评估双 24G 分片 |
| 70B | FP8 | 约 70 GB | 80G 余量紧;更大显存适合长上下文 |
以 Llama-3.1-70B 为例,KV cache 约 0.3 MB/token;单请求 8k token 就多占约 2.5 GB,多路并发还要乘以同时驻留的请求数。70B Q4 的 42 GB 权重放到 48G 卡上,再加这一笔和框架开销,就不能把剩下的 6 GB 全当可用上下文。买卡前先用目标模型和推理后端实际加载一次,并按计划的上下文长度与并发数压测。
交互体验
单人 decode 可以先用 带宽 × 0.6 ÷ 权重体积 粗估,不要把结果当成实测吞吐。假设同一个 32B Q4 模型权重约 20 GB,暂不计 KV cache 读取和其他开销:
| 卡 | 标称带宽 | 单流估算 |
|---|---|---|
| RTX 4090 | 1008 GB/s | 约 30 t/s |
| RTX 5090 | 1792 GB/s | 约 54 t/s |
两张卡都能装下权重,但交互速度并不相同。首字延迟还包括 prefill,长 prompt 不能只看 decode;长上下文、多路请求也会增加 KV 读取。量化能减少权重读取量,但不同后端的解量化开销不同,最终以目标模型的实测结果为准。
多卡推理
两张 24G 卡并不是一张 48G 卡:模型按张量并行切分后,每张卡仍要留出 KV cache、运行时和通信缓冲区。70B Q4 权重约 42 GB,平均每卡约 21 GB,双 24G 的剩余空间很紧,长上下文可能需要更大的卡或更低位量化。
张量并行每层都有卡间通信,延迟取决于拓扑、并发量和框架实现。8×5090 的公开测试里,高并发下 PCIe 通信占 step 时间的 3%–6%,不能据此推断双卡单请求或训练也只有这点开销。先对比单卡与多卡在目标 batch 下的吞吐和延迟,再决定是否为了容量接受互联成本。
微调与训练
微调门槛
LoRA/QLoRA 只更新适配器,但底座权重、激活值和梯度计算仍占显存。32B Q4 的底座就约 20 GB;要在 24G 卡上做 QLoRA,还得控制序列长度、micro-batch,并使用激活检查点等省显存手段。先在目标训练配置上跑一个 step,记录峰值显存,而不是按推理能加载就判断能微调。
全参微调要另算 AdamW 状态。按 FP16 权重和梯度各 2 字节、FP32 master weights 4 字节、两份 FP32 优化器状态共 8 字节估算,每参数约 16 字节。7B 模型仅这些状态就约 112 GB,尚未计激活值和通信缓冲区。A100 80G 单卡装不下;多卡可用 ZeRO 分片,或者降低优化器状态精度并将部分状态卸载到内存,但后者会增加主机内存需求和传输时间。
多卡训练
互联预算取决于并行方式,而不是”训练一定要 NVLink”:
| 并行方式 | 卡间传输 | 选型影响 |
|---|---|---|
| 数据并行 | 通常每次反向传播后同步梯度;梯度累积配合延迟同步可减少次数 | 先测通信占 step 时间的比例,PCIe 未必不够 |
| 张量并行 | 每层传递部分结果并做集合通信 | 通信频繁,优先选高速 P2P 或 NVLink 域 |
| 流水线并行 | 主要在阶段边界传激活 | 通信相对少,但要评估流水线空泡 |
| ZeRO 参数分片 | 按阶段传参数、梯度或优化器状态 | 显存省得越多,通信与实现复杂度通常越高 |
实际比较时固定模型、micro-batch、序列长度和 GPU 数,记录每 step 的计算与通信耗时;跨机训练还要单独算网络带宽。只知道 PCIe 的标称 GB/s,推不出最终训练速度。
生产部署
吞吐与延迟
生产推理至少同时看首字延迟、逐 token 延迟和单位时间完成的请求数。单请求的 decode 常受带宽限制;连续批处理让多个请求共用一次权重读取,batch 增大后算力、KV cache 容量和调度开销也会限制吞吐。比较卡型时固定模型、量化格式、输入与输出长度、并发量,分别记录延迟分位数和 tokens/s;不同条件下的标称 TPS 不能直接比。
如果 prefill 与 decode 的占比不同,可以测分离部署:算力较强的设备处理 prefill,带宽和容量适合的设备处理 decode。不过还要传 KV cache,只有节省的计算时间超过传输和额外调度开销才值得拆开。
机房的账
数据中心部署不能只比较卡价。GeForce 驱动许可对数据中心使用有限制;ECC、服务器质保和故障更换关系到长时间运行的风险;开放式风扇需要逐台确认机箱间距、风道和供电。更换涡轮散热只能解决部分散热问题,不能补回 ECC、许可和官方支持。若有采购或审计要求,先把这些条件列为硬约束,再在满足条件的卡里比较吞吐和总成本。
非常规方案
以下方案会改变显存容量或多卡通信路径,但都需要把驱动维护、稳定性和售后算进成本;云租赁则是不购卡的基准方案。
PCIe P2P 直连
40、50 系 GeForce 没有 NVLink,官方驱动也不提供常规的卡间 P2P。社区的 open-gpu-kernel-modules 补丁尝试通过 BAR1 让 GPU 直接访问另一张卡的显存,减少主存中转;它不等于获得 NVLink 带宽,还取决于 PCIe 拓扑、驱动版本和软件栈是否支持这条路径。
三种通信路径的区别如下:
买多张消费卡之前,应在目标主板和驱动版本上验证 P2P 是否真的启用,再跑目标模型比较延迟与吞吐。无法接受自维护驱动、升级后重新验证和缺少官方支持,就不要把补丁带来的收益计入采购预算。
魔改显存
4090 48G 是把原版 24G 的显存容量翻倍的第三方改装卡。它的主要价值是让约 42 GB 的 70B Q4 权重有机会在单卡常驻,省去双卡分片和同步;带宽仍按原卡量级计算,显存翻倍不意味着 decode 提速。已有评测报告约 5% 的核心性能损失,具体改装方案还可能限制功耗。
报价在两三万元区间时,至少要和官方 48G 工作站卡、双 24G 方案分别比总价、上下文余量、稳定性与保修。没有原厂售后和可重复验证的长期稳定性,就不能只凭显存容量替代生产环境的卡。
云租赁
以下时租只作估算输入,不是固定报价;机型、地区、供需和是否有服务保障都会改变价格。
| 卡 | 参考时租 |
|---|---|
| RTX 3090 | 约 0.25 美元/小时 |
| RTX 4090 | 约 0.35 美元/小时 |
| H100 | 约 2.2 美元/小时 |
| B200 | 约 6 美元/小时 |
国内平台的 4090 也可见约 2–3 元/小时的报价。比较时先统一币种和配置,再核对实例是否独占 GPU、是否按关机时间收费以及数据存储和出口费用。
以自购 4090 为 1.5 万元、租赁 2 元/小时为例,忽略电费、主机、折旧和残值时,租赁累计约 7500 小时等于购卡价:每天 24 小时约 10 个月,每天 8 小时约 31 个月,每天 2 小时约 10 年。实际自购回本点还要加电费和维护,减去转卖残值;云实例若会被回收,训练还要计入 checkpoint、重启和数据搬运成本。
结语
选卡时先给出模型与精度、最长上下文、并发量、单流延迟或训练 step 时间的目标,再计算显存占用和吞吐。单卡放不下时,分别测卸载、多卡分片和更大显存卡;必须多卡时,先确认并行方式与实际拓扑。最后用同一工作负载比较购买、改装与租赁的总成本。
本文限定 NVIDIA。国产算力的硬件与软件生态留到下一篇单独讨论。
参考资料
- Which GPU(s) to Get for Deep Learning — Tim Dettmers
- tinygrad/open-gpu-kernel-modules — P2P patch for consumer GPUs
- aikitoria/open-gpu-kernel-modules — P2P for 3090/4090/5090
- RTX 4090 48GB 魔改版评测 — 晨涧云
- First Teardown: 48GB RTX 4090 Mod — Hardware Corner
- Vast.AI GPU Pricing Guide — DeployBase
- Cloud GPU Pricing Comparator — Kenodo
- deepseek-v4-flash-5090 — 8× RTX 5090 serving recipe