A100、H100、H200 怎么选?个人开发者的 GPU 云服务器选型与成本估算

很多开发者比较 GPU 时,第一反应是看“每小时多少钱”。但对于训练、推理和渲染任务,真正应该比较的是:能否稳定跑起来、任务多久完成,以及完成一次任务的总成本。

本文不提供未经实测的性能排名,而是给出一套可以复用的 GPU 选型和测试方法。型号、库存、区域和价格会变化,具体配置请以创建页面当前显示的信息为准。

一、先明确任务,再选择 GPU

GPU 没有脱离任务的“绝对最优解”。同一张卡用于模型微调、在线推理和图形渲染,关注点完全不同。

1. 模型微调

微调通常优先关注:

  • 显存是否足够;
  • 混合精度是否可用;
  • batch size 和序列长度;
  • 数据读取速度;
  • 训练时长和失败重试成本。

如果显存不够,可能需要降低 batch size、使用梯度累积、启用量化,或者把部分数据放到 CPU。这些方法可以解决“跑不起来”的问题,但也可能降低吞吐。

2. 推理部署

推理任务不能只看显存。还应该记录:

  • 首 token 延迟;
  • 平均延迟和 P95 延迟;
  • tokens/s;
  • 并发请求数;
  • 上下文长度;
  • KV cache 的显存占用;
  • 单次请求成本。

低并发、短上下文的任务,不一定需要最高规格的 GPU;长上下文、高并发或多个模型同时运行时,显存和实际吞吐会更重要。

3. 图像生成和渲染

图像生成、视频生成和 3D 渲染通常要关注:

  • 显存容量;
  • 单张图片或单帧耗时;
  • 软件和插件兼容性;
  • 本地磁盘和数据传输;
  • 批量任务的并发能力。

二、GPU 选型时不要只看型号

选择 GPU 时,建议至少检查下面六个维度。

1. 显存

显存不足时,任务可能直接报错,也可能因为 CPU offload 或显存交换而变慢。

模型显存并不只等于模型权重大小,还包括:

  • 模型权重;
  • 激活值;
  • KV cache;
  • 优化器状态;
  • 临时张量;
  • 框架和 CUDA 的运行开销。

因此,“模型参数量乘以精度字节数”只能作为初步估算,不能代替真实测试。

2. 计算吞吐

理论 FLOPS 不是最终任务速度。实际吞吐还会受到模型结构、算子实现、精度、batch size 和软件版本影响。

比较 GPU 时,应该记录任务级指标,例如 samples/s、tokens/s、每张图片耗时或完整任务完成时间。

3. GPU 之间的互联

多卡训练时,卡间通信可能成为瓶颈。除了 GPU 型号,还要确认具体配置、互联方式、网络带宽和分布式框架支持情况。

单卡任务不需要为多卡互联支付额外成本;多卡任务则不能只按单卡价格相加来估算性能。

4. CPU、内存和磁盘

GPU 很快,但数据加载、解压、预处理或 checkpoint 保存可能被 CPU、内存和磁盘拖慢。

尤其是训练任务,建议同时确认:

  • CPU 核数;
  • 系统内存;
  • 磁盘读写速度;
  • 数据集所在位置;
  • 模型和 checkpoint 是否需要长期保存。

5. 区域和网络

如果数据集、代码仓库和用户请求都在不同区域,上传、下载和在线推理延迟可能会明显影响实际成本。

不要只写“低延迟”,应该用实际测试结果说明:

  • 从主要用户所在地访问的延迟;
  • 数据上传速度;
  • 数据下载速度;
  • 推理请求的 P50/P95 延迟;
  • 网络中断后的恢复方式。

6. 价格和计费规则

需要确认价格对应的完整配置,而不是只看 GPU 名称:

  • 是单卡还是多卡;
  • 是否包含 CPU、内存和系统盘;
  • 是否另计数据盘;
  • 什么时候开始计费;
  • 关机、停止和释放分别有什么区别;
  • 失败重试期间是否产生费用。

三、A100、H100、H200 应该怎么比较

下面是一个决策方向,不是脱离任务的性能排名:

类型更适合关注选择前需要验证
A100生态成熟、框架兼容、开发验证和成本平衡显存规格、任务吞吐、当前库存
H100高吞吐训练、推理和较高并发实际 tokens/s、批量大小、总任务成本
H200更大显存、长上下文和更高显存需求更大显存是否真的转化为任务收益
消费级或专业图形卡个人实验、图像生成、渲染和预算敏感任务软件兼容性、显存、稳定性和数据盘

最合理的做法不是直接选择最贵的型号,而是先选两种候选配置,用同一任务做小规模对比。

四、如何设计一次公平的 GPU 实测

为了让结果有参考价值,至少固定以下变量:

  • 相同模型和模型版本;
  • 相同数据集;
  • 相同 CUDA、PyTorch 和框架版本;
  • 相同精度;
  • 相同 batch size;
  • 相同序列长度或图片分辨率;
  • 相同并发设置;
  • 相同区域和计费类型;
  • 预热次数和正式测试次数。

建议记录下面这些结果:

指标含义
启动时间从创建资源到可以运行任务所需的时间
峰值显存判断配置是否有余量
吞吐量例如 tokens/s、samples/s
延迟关注平均值和 P95
完成时间完成同一个任务用了多久
失败次数反映稳定性和重试成本
总成本完成一次任务实际花费多少

不要只跑一次就下结论。至少进行预热,再运行多次正式测试,并记录异常情况。

五、用完整任务成本,而不是小时价格做决定

可以先用下面的公式估算:

总成本 = GPU 价格 × GPU 数量 × 运行时长 + 存储费用 + 数据传输费用 + 失败重试成本

下面是一个简单的估算函数:

def estimate_cost(
    gpu_price_per_hour,
    gpu_count,
    runtime_hours,
    storage_cost=0.0,
    transfer_cost=0.0,
    retry_cost=0.0,
):
    gpu_cost = gpu_price_per_hour * gpu_count * runtime_hours
    return gpu_cost + storage_cost + transfer_cost + retry_cost


cost = estimate_cost(
    gpu_price_per_hour=0.0,  # 替换为当前配置的实际价格
    gpu_count=1,
    runtime_hours=0.0,       # 替换为实际运行时长
)

print("Estimated total cost:", round(cost, 2))

这里故意没有填入固定价格,因为 GPU 价格、区域和库存会变化。正式比较时,应把控制台当前显示的价格、实际运行时长和其他费用记录下来。

一个价格更高但能把任务时间缩短一半的 GPU,可能拥有更低的“单次任务成本”;一个小时价格较低但频繁 OOM 或需要重试的配置,最终成本可能更高。

六、个人开发者的实际选择顺序

如果你是个人开发者或小团队,我建议按下面顺序决策:

  1. 先确认模型和任务能否在候选 GPU 上运行;
  2. 再确认显存是否有足够余量;
  3. 用小规模任务测吞吐和完成时间;
  4. 计算一次完整任务的总成本;
  5. 最后再考虑长期运行、自动扩容或多卡配置。

如果只是开发验证,不要一开始就租用长时间的大规格实例。先使用短时、低风险的配置完成验证,再决定是否升级。

七、在云平台上创建 GPU 实例前的检查清单

创建前建议逐项确认:

  • GPU 型号和数量;
  • 显存和互联方式;
  • 区域和网络;
  • CPU、内存和磁盘;
  • 系统镜像;
  • CUDA、PyTorch 和框架版本;
  • 当前库存;
  • 当前价格;
  • 计费开始和停止条件;
  • 数据是否会随实例释放而删除;
  • 是否有 SSH、工单或人工支持。

以起源算力origpu为例,可以先查看 GPU 产品目录、选型指南和当前库存,再创建一台短时测试实例。不要把宣传页上的理论参数直接当成自己的任务结果。

八、总结

A100、H100、H200 并不存在对所有人都最好的答案。

  • 开发验证更看重兼容性、稳定性和成本;
  • 高吞吐训练更看重完成时间和卡间通信;
  • 长上下文推理更看重显存和并发;
  • 个人图像生成更看重显存、软件兼容和单位任务成本。

真正可靠的选型方法是:明确任务,固定变量,做小规模实测,再用完整任务成本做决定。

参考资料:

以上页面中的价格、库存、区域和配置可能变化,最终以创建实例时的当前信息为准。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值