你的GPU在"摸鱼"吗?

2026年,一块H100 GPU的租赁成本大约是每小时2.5美元。如果你有一台8xH100的服务器,月租金约1.44万美元。

但问题是:你的GPU利用率是多少?

我们监控了100+个AI应用的推理集群,发现了一个惊人的事实:大多数AI应用的GPU利用率在25%-40%之间。 也就是说,你花1.44万美元租的8块H100,实际上只有2-3块在"干活",剩下的在"摸鱼"。

我们通过四项工程优化,将GPU利用率从30%提升到90%。下面是无保留的分享。

优化1:请求合并(Batching)——从"随到随处理"到"攒一批再处理"

推理服务最常见的问题是"小请求"——用户的每个请求只有几十到几百个token,GPU处理这个请求只需要几毫秒,但CPU调度、内存搬运、I/O等待的时间可能比GPU计算时间还长。

解决方案:Dynamic Batching。 不收到一个请求就立即处理一个,而是"攒"一小批请求(比如攒10个或攒50ms),然后一次性送入GPU。GPU的并行计算能力被充分利用,而请求的平均延迟只增加了不到50ms——用户完全感知不到。

这个优化让我们从"每请求一次GPU调用"变成"每批请求一次GPU调用",GPU利用率从30%提升到55%。

优化2:Continuous Batching——从"等一批结束"到"有位置就插入"

Dynamic Batching有一个问题:必须等一批请求全部处理完,才能开始下一批。如果一批中有10个请求,9个只生成了20个token就结束了,1个生成了500个token还在继续,那GPU就要"干等"这1个请求完成。

解决方案:Continuous Batching。 不要等一批全部结束。当一个请求完成时,立刻把它的位置让给一个新请求。GPU在"处理中"的请求集合不断动态更新,就像餐厅的翻台——一个人吃完走人,立刻有新人入座。

换用Continuous Batching后,GPU利用率从55%提升到72%。

优化3:Prefix Caching——从"每次都从头算"到"算过的就不要重复算"

很多AI应用的请求有"公共前缀"——比如系统Prompt(“你是一个专业的客服助手,请用礼貌的语气回答用户问题…")每个请求都一样。传统推理方式是每个请求都重新计算一遍这个公共前缀,浪费了大量GPU算力。

解决方案:Prefix Caching。 把系统Prompt的KV Cache缓存起来,每个新请求直接复用,不需要重复计算。如果你有一个500 token的系统Prompt,每天100万次请求,Prefix Caching每天帮你节省5亿token的KV Cache计算量。

这个优化让GPU利用率从72%提升到85%。

优化4:Queue Management——从"先到先得"到"智能调度”

当推理请求量超过GPU处理能力时,需要一个"排队系统"。最简单的是"先到先得"(FIFO),但这不是最优的。

解决方案:优先级队列+动态批大小。 将请求分为不同优先级(实时对话>文档分析>批量处理),高优先级请求优先处理。同时,当队列积压时,动态增大批大小——牺牲一点延迟,换取更高的吞吐量。

这个优化让GPU利用率从85%提升到90%,同时将P99延迟控制在可接受范围内。

90%的GPU利用率,到底能省多少钱?

假设你有一个日均1亿token的推理需求:

  • GPU利用率30%时:需要8台8xH100服务器,月成本约$115,200
  • GPU利用率90%时:需要2.7台(实际3台),月成本约$43,200

每月节省$72,000,一年节省$864,000。 而这四项优化,工程实施周期大约2-4周。这不是"巧妙的省钱技巧",而是"推理基础设施管理的必修课"。

结语

GPU利用率是推理成本优化的"隐藏金矿"。大多数团队花大量时间在模型量化、架构优化上,却忽略了GPU利用率这个"低垂的果实"。

在开始复杂的模型优化之前,先看看你的GPU在干什么。 如果利用率低于60%,先去优化你的推理服务基础设施——它的ROI远高于任何模型层面的优化。