如何用模拟器预估在 8×A100 下最大并发请求数?

解读

面试官想知道的不是“8 张卡能跑多少 QPS”这个绝对值,而是考察候选人能否把大模型推理性能建模拆成可量化、可复现、可迭代的工程步骤,并用国产主流工具链快速给出可信区间。核心考点:

  1. 是否理解GPU 内存墙计算墙双瓶颈
  2. 能否把模型结构、并行策略、批处理策略、框架开销量化成模拟器参数
  3. 是否熟悉国内落地常用模拟器(含阿里、华为、清华开源版本)
  4. 能否把模拟结果转成线上 LLMOps 容量规划

知识点

  1. 推理成本模型

    • 内存占用 = 参数 + KV-cache + 激活 + 框架冗余
    • 计算量 = 2 × 参数量 × token 数(FLOP)
    • 延迟 = 计算延迟 + 通信延迟 + 调度延迟
  2. 并行维度

    • TP(tensor parallel) 切权重,降低单卡显存,增加通信
    • PP(pipeline parallel) 切层,降低单卡显存,增加气泡
    • DP(data parallel) 复制实例,提升并发,显存线性增加
  3. 批处理策略

    • 静态批(continuous batching 前)吞吐低
    • continuous batching(国内 vLLM、FastServe、MindIE 均支持)可把首 token 延迟压到 200 ms 内,吞吐提升 3~7×
  4. 国产模拟器

    • AlpaSim(清华)支持 TP+PP+DP 组合,已适配 80 GB A100
    • MindStudio Profiler(华为)内置 Ascend 版本,可切换 A100 参数
    • PASim(阿里 PAI)直接读 ONNX/PTH,输出 QPS-P99 曲线
  5. 关键指标

    • GPU 内存利用率 ≤ 85 %(留 15 % 给 CUDA kernel 动态分配)
    • SM 利用率 ≥ 70 % 才算吃满算力
    • P99 首 token 延迟 ≤ 800 ms(国内金融/政务 SLA 红线)

答案

步骤一:建立“单卡-单实例”基线

  1. ModelScope 下载与业务同尺寸的百亿模型(如 13B、30B、70B),精度选 FP16(国内监管允许,无需 INT8 量化即可上线)。
  2. 单卡 A100 80 GB 跑 nvidia-smi dmon 记录峰值显存,得到权重 + 最大 KV-cache 基线值;同时跑 nsys 拿到每 token 耗时 t0

步骤二:把基线喂给国产模拟器
AlpaSim 为例:

  • 硬件拓扑:8 × A100-NVLink-80 GB,300 GB/s
  • 并行策略:先固定 TP=4,PP=2(国内 8 卡机常见拓扑),DP 自然为 1
  • 批处理:打开 continuous batchingmax_batch_size 先设 64max_seq_len 设 4 k(国内客服场景 95 % 请求 ≤ 2 k)
  • 输入分布:用线上 7 天真实日志构造 Poisson 到达率 λ=10~200 req/s输入 400 token,输出 200 token
    运行 AlpaSim 10 k 步,输出 QPS-P99 延迟曲线

步骤三:读曲线找拐点
P99 首 token 延迟 = 800 ms 时,对应 λ=132 req/s 即为理论最大并发;此时 GPU 内存利用率 82 %,SM 利用率 74 %,通信占比 18 %,符合国内机房 SLA。

步骤四:留冗余
上线前按模拟值 × 0.7 做容量规划,即 132 × 0.7 ≈ 92 req/s 作为单组 8×A100 的限速阈值,留 30 % 突发缓冲。

步骤五:持续验证
灰度阶段用 Prometheus + MindIE-exporter 实时采集 GPU 显存、SM、NVLink 带宽,与模拟器误差 > 10 % 即回滚调参。

拓展思考

  1. 国产卡替换:若后续改用 Ascend 910B 32 GB,模拟器需把显存带宽 900 GB/sHCCL 通信开销重新建模,TP 上限从 4 降到 2,否则通信占比 > 30 %,QPS 直接腰斩。
  2. 长文本场景:当 max_seq_len 从 4 k 扩到 32 k 时,KV-cache 呈平方级增长,必须提前在模拟器里打开 GQA/FlashAttention-2 开关,否则预估并发会虚高 3× 导致线上 OOM。
  3. 多轮对话:引入 KV-cache 复用后,首 token 延迟下降 40 %,但显存常驻增加,需要把复用命中率作为新的模拟器输入参数,否则容量模型失真。
  4. LLMOps 闭环:把模拟器接入 KubeDLCronJob,每晚自动拉取最新模型与日志,T+1 更新容量基线,实现预算-模拟-上线-监控全链路可追溯,满足国内信通院可信 AI 工程化评估要求。