GPU Compute Plans
04 场景演算

5090 基准测试执行清单

5090 基准测试执行清单

8 周内跑完的具体命令、测试脚本、数据模板。项目方(或团队)可以直接照做。

第一步:环境搭建(W1)

1.1 系统 & 驱动

# Ubuntu 24.04 LTS(Blackwell 支持最好)
sudo apt update && sudo apt upgrade -y

# NVIDIA Driver 560+ (Blackwell 支持)
sudo apt install nvidia-driver-565
sudo reboot

# CUDA Toolkit 12.6+
# 从 developer.nvidia.com 下载 cuda-toolkit-12-6 官方 deb 安装

# 验证
nvidia-smi
nvcc --version

1.2 Python 环境

conda create -n bench python=3.11
conda activate bench

# 关键包
pip install torch==2.5.1 --index-url https://download.pytorch.org/whl/cu126
pip install vllm==0.6.5    # Blackwell 支持
pip install "sglang[all]==0.3.7"
pip install transformers==4.46
pip install accelerate triton==3.1.0
pip install lm-eval llmperf

1.3 监控栈

Prometheus + DCGM Exporter + Grafana(Docker Compose 起)

第二步:单机基础压测(W2)

2.1 启动 vLLM 服务

python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-14B-Instruct \
  --dtype float16 \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.9 \
  --enable-prefix-caching \
  --served-model-name qwen2.5-14b \
  --port 8000

2.2 用 LLMPerf 压测

参考 github.com/ray-project/llmperf 的 token_benchmark_ray.py,测试参数:

  • num-concurrent-requests:1 / 4 / 16 / 64 / 256
  • max-num-completed-requests:≥ 100
  • mean-input-tokens / mean-output-tokens:见测试矩阵
  • llm-api:openai
  • 目标端点:本地 8000

第三步:矩阵测试(W3-W6)

3.1 测试维度

模型(15 个候选):

  • Qwen2.5-7B / 14B / 32B(AWQ)
  • Llama-3.1-8B
  • DeepSeek-V2-Lite / DeepSeek-Coder-V2-Lite
  • GLM-4-9B
  • Qwen2-VL-7B
  • BGE-M3

引擎:vLLM / SGLang / TensorRT-LLM / LMDeploy

量化:FP16 / FP8 / AWQ / INT8

并发:1 / 4 / 16 / 64

长度:128/128、512/512、4096/128、128/4096、8192/512

3.2 建议节奏

  • W3:先跑 vLLM + FP16 全组合(~144 组,24h)
  • W4:加 FP8 + AWQ 量化维度(+288 组,48h)
  • W5:加 SGLang 全对比(+432 组,72h)
  • W6:加长上下文(8K/32K)+ 视觉模型专项

3.3 自动化框架

用 shell 循环 model × engine × dtype × concurrency × input/output length, 每次组合:

  1. 启动引擎(后台 &)
  2. 等待 60s warmup
  3. nvidia-smi 采集 gpu 基线到 CSV
  4. 跑 LLMPerf 压测
  5. 采集 gpu 峰值
  6. kill 引擎,sleep 30s 冷却

第四步:稳定性测试(W7)

72h 持续压力

  • 用 asyncio 并发发起 16 路请求
  • 每 5 秒一次 nvidia-smi
  • 记录:崩溃次数、内存增长、显存 fragmentation、温度峰值

第五步:质量测试(W7)

用 lm-evaluation-harness 验证量化后精度损失:

# 中文 C-Eval
lm_eval --model vllm \
    --model_args pretrained=Qwen/Qwen2.5-14B-Instruct,dtype=float8_e4m3fn \
    --tasks ceval-valid \
    --num_fewshot 5

# 英文 MMLU / 代码 HumanEval 类似

对比 FP16 基线与量化后的分数差。关键指标

  • MMLU 分数下降 > 1 分 → 量化有问题
  • HumanEval 下降 > 2 分 → 代码模型不能量化

第六步:数据入库 & 分析(W8)

6.1 结果解析

用 Python 遍历 results/ 目录,解析每个测试的 summary.json:

  • 提取 TTFT p50/p99、TPOT p50/p99、单卡 TPS
  • 补充 GPU 温度峰值、功率、显存占用
  • 全部写入 pandas DataFrame → CSV

6.2 成本反算

成本每 M token = (1M / output_tps / 3600) × 单卡每小时成本

假设 5090 单卡每小时成本 6 元(折旧 + 电 + 分摊):

  • 单卡 output 500 tok/s → 每 M token 成本 = 1000000/500/3600×6 = 3.33 元
  • 售价 5 元/M token → 毛利率 33%
  • 售价 8 元/M token → 毛利率 58%

6.3 结论报告

必须回答:

  • Top 5 性价比模型(每 M token 成本最低)
  • Top 5 单卡吞吐冠军
  • 引擎横评(同模型不同引擎)
  • 量化收益表(同模型不同量化)
  • 精度损失表
  • 稳定性排名

第七步:万卡决策报告

结束 8 周后,项目方拿到:

  1. 性能对比图:每个模型 × 引擎 × 量化的 TPS / TTFT / TPOT 三维
  2. 成本对比图:每 M token 的真实成本
  3. 精度损失表:量化后 MMLU / C-Eval / HumanEval 掉多少
  4. 稳定性数据:72h 崩溃 / OOM / 温度峰值
  5. KV Cache 命中率:不同 prefix 场景的实际收益
  6. 万卡决策建议
    • 推荐模型 Top 5
    • 推荐引擎组合比例
    • 推荐量化档位
    • 预估单卡月毛利
    • 预估万卡年收入区间

常见坑

  1. Blackwell 驱动:CUDA 12.6+ 才行
  2. vLLM Blackwell 支持:0.6.5+ 才完整
  3. FP8 精度:数学 / 代码任务对 FP8 敏感,必须跑 lm-eval 验证
  4. 消费卡合规:测试没问题,商业化对外要低调
  5. 温度告警:5090 满载 85°C 是正常上限,超过要减 batch
  6. PCIe 5.0 带宽:多卡张量并行时 PCIe 会成瓶颈
  7. 测试环境隔离:不同引擎不能同时跑(端口冲突),必须串行
  8. 数据可复现:每次测试记录 seed 和 driver 版本
  9. 模型下载:15 个模型合计 > 500GB,提前用 hf_transfer 加速
  10. HuggingFace 镜像:用 hf-mirror.com 或 ModelScope 加速国内下载

交付物清单

W8 结束时,项目方手上应该有:

  • all_results.csv:所有 500+ 测试数据点
  • top_models.md:Top 5 性价比模型报告
  • engines_comparison.md:引擎横评
  • quantization_analysis.md:量化收益分析
  • stability_report.md:72h 稳定性数据
  • wanka_decision.md:万卡采购决策报告(最终输出)

这个 wanka_decision.md 就是项目方后续融资、招人、买卡的核心依据。

On this page