3、资源规划核心概念:算力、内存、显存、存储、带宽等关键资源指标的定义与度量单位

大模型部署的资源规划,本质上是在回答三个问题:模型需要多少空间?推理时需要多少计算能力?数据流动时会不会成为瓶颈?这三个问题分别对应存储、算力与带宽三大类资源。然而,在实际项目中,我们经常看到团队因为对“算力”与“显存”的度量单位理解不一致,导致采购了过量的GPU却仍然出现OOM(显存溢出),或者购买了高带宽的NVMe硬盘却因为PCIe通道不足而无法发挥性能。本章将系统梳理算力、内存、显存、存储、带宽这五类核心资源的定义、度量单位、换算关系以及在实际部署中的判断方法,帮助你在规划阶段就建立统一的量化语言。

大模型部署资源指标关系与度量单位总览 资源规划核心 模型部署的量化基础 算力(Compute) 单位:TFLOPS / TOPS FP16/BF16/INT8 区分 决定推理延迟与吞吐 典型:A100 312 TFLOPS(FP16) 内存(RAM) 单位:GB / GiB CPU 侧数据暂存 影响预处理与调度 典型:服务器 512GB DDR5 显存(VRAM) 单位:GB / GiB 模型权重+KV Cache+激活 最稀缺的部署资源 典型:A100 80GB HBM2e 存储(Storage) 单位:GB / TB / IOPS 模型文件+数据集+日志 NVMe vs SATA 差异显著 典型:NVMe 3.5GB/s 读 带宽(Bandwidth) 单位:GB/s / Gbps 显存带宽/PCIe/网络 决定数据搬运效率 典型:PCIe 4.0 x16 32GB/s 关键换算关系 1 GB = 10⁹ 字节(厂商) 1 GiB = 2³⁰ 字节(系统) 1 TFLOPS = 10¹² 次浮点运算/秒 显存带宽 = 频率 × 位宽 / 8

3.1 算力:从 TFLOPS 到实际吞吐的鸿沟

核心原理:算力是衡量处理器每秒能执行多少次浮点运算的指标,常用单位包括 TFLOPS(每秒万亿次浮点运算)和 TOPS(每秒万亿次整数运算)。在大模型推理场景中,我们更关注的是 FP16/BF16 精度下的 TFLOPS,因为大多数模型权重以半精度加载。但需要注意,厂商标称的峰值算力是理论极限,实际部署中受限于内存带宽、算子融合效率、批处理大小等因素,通常只能达到峰值的 30%-60%。

判断方法:评估算力需求时,不能只看模型参数量。一个 70B 参数的模型,在 FP16 精度下,单次前向传播需要约 140 GFLOPs 的计算量。如果目标延迟是 100ms,那么所需算力为 140 GFLOPs / 0.1s = 1.4 TFLOPS。但这是纯计算视角,实际推理框架(如 vLLM、TensorRT-LLM)还会引入 KV Cache 管理、采样等额外开销。建议使用以下公式进行初步估算:

所需算力(TFLOPS) ≈ (2 × 参数量(亿) × 1000) / (目标延迟(ms) × 利用率系数)
其中利用率系数通常取 0.3~0.5

案例拆解:某金融科技公司计划部署一个 13B 参数的对话模型,要求单次请求延迟低于 200ms。按照公式计算:2 × 130 × 1000 / (200 × 0.4) = 3250 TFLOPS。这意味着需要至少 10 张 A100(每张 312 TFLOPS FP16)才能满足并发需求。但实际测试发现,在 batch size = 8 时,仅需 4 张 A100 即可达到 180ms 延迟,因为连续批处理提升了 GPU 利用率。这个案例说明,算力规划必须结合并发度和批处理策略,不能简单按单请求计算。

常见误区:混淆 FP16 与 FP32 算力。部分厂商宣传的“XX TFLOPS”可能是 FP32 或稀疏算力,实际部署中若使用 FP16 或 INT8 量化,数值会不同。务必确认精度类型,并关注是否支持 BF16(某些老 GPU 不支持)。

3.2 内存与显存:容量规划的双层视角

核心原理:内存(RAM)是 CPU 可访问的系统内存,显存(VRAM)是 GPU 专用的高速存储。大模型部署时,显存是最稀缺的资源,因为它需要同时容纳模型权重、KV Cache、激活值和临时计算缓冲区。以 7B 模型为例,FP16 权重占用约 14GB,但加上 2048 上下文长度的 KV Cache(约 2GB)和激活值(约 1GB),实际需要 17GB 以上显存。如果使用量化到 INT8,权重降至 7GB,但 KV Cache 和激活值不变。

判断方法:显存需求估算公式:

显存需求(GB) ≈ 权重(GB) + KV Cache(GB) + 激活值(GB) + 预留缓冲(10%)
权重 = 参数量 × 字节数/参数(FP16为2,INT8为1)
KV Cache = 2 × 层数 × 头数 × 头维度 × 序列长度 × 字节数 × 并发数

内存方面,主要考虑数据预处理、模型加载时的临时副本、以及 CPU 卸载(offload)场景。如果使用 CPU offload 技术,内存需求会显著增加,但可以降低显存压力。

案例拆解:某互联网公司需要部署 70B 模型,单卡 80GB 显存无法容纳。方案一:使用 2 张 A100 80GB 通过张量并行,权重分片后每卡约 35GB,加上 KV Cache 和激活值,总占用约 60GB,可行。方案二:使用 1 张 A100 80GB + CPU offload,将部分层卸载到内存,但实测延迟从 50ms 飙升至 800ms,因为 PCIe 带宽成为瓶颈。最终选择方案一,并配置 512GB 系统内存用于数据加载和预处理。

经验提醒:显存不是越大越好,还要看显存带宽。A100 80GB 的带宽为 2TB/s,而 RTX 4090 24GB 的带宽为 1TB/s。对于长序列生成任务,显存带宽往往比容量更关键,因为每个 token 生成都需要读取全部权重。

3.3 存储与带宽:数据搬运的效率革命

核心原理:存储解决的是“模型文件放在哪里”的问题,带宽解决的是“数据移动多快”的问题。大模型文件通常为 10GB~200GB,从冷存储加载到显存的时间直接影响冷启动延迟。NVMe SSD 的顺序读取速度可达 3.5GB/s,而 SATA SSD 仅约 500MB/s,差距达 7 倍。带宽则分为三个层级:显存带宽(GPU 内部)、PCIe 带宽(GPU 与 CPU/存储之间)、网络带宽(多机通信)。

判断方法:存储规划需考虑容量和 IOPS 两个维度。容量方面,模型文件 + 训练数据 + 日志,建议预留 3 倍冗余。IOPS 方面,模型加载是顺序读,高吞吐即可;但数据预处理涉及大量随机读,需要高 IOPS。带宽规划时,需计算模型加载时间:

加载时间(秒) = 模型大小(GB) / 存储读取速度(GB/s)
例如:70GB 模型从 NVMe 加载 = 70 / 3.5 = 20秒
从 SATA 加载 = 70 / 0.5 = 140秒

案例拆解:某云服务商在 Kubernetes 集群中部署多个模型服务,发现冷启动时间长达 5 分钟。排查发现,模型文件存储在 Ceph 分布式存储上,读取速度仅 200MB/s。优化方案:1)将热模型缓存到各节点的本地 NVMe;2)使用镜像预热(image pre-pull)机制;3)对超大模型采用分片并行加载。优化后冷启动时间降至 30 秒以内。

资源类型典型单位度量对象常见瓶颈规划建议
算力TFLOPSGPU/TPU 计算能力利用率不足按峰值 40% 规划
内存GB/GiBCPU 可访问空间预处理瓶颈至少为显存 4 倍
显存GB/GiBGPU 高速缓存OOM 溢出权重+KV+激活+10%
存储TB/IOPS持久化数据加载慢NVMe + 本地缓存
带宽GB/s/Gbps数据搬运速率PCIe/网络瓶颈匹配存储与显存速度
总结复盘:资源规划的核心是建立“模型参数量 → 显存需求 → 算力需求 → 存储/带宽需求”的推导链路。建议在项目初期就制作资源清单表,明确每个指标的度量单位、目标值和验收标准。同时,务必区分十进制 GB 与二进制 GiB——操作系统显示的是 GiB,而硬件厂商标注的是 GB,两者相差约 7%。在采购和容量规划时,统一使用 GiB 作为内部标准,避免出现“买了 80GB 显存,实际可用只有 74.5GiB”的尴尬。