Dynamic Batching(动态批处理) 是一种在深度学习模型推理(Inference)服务中广泛使用的技术,旨在提高硬件(特别是 GPU)的利用率和系统的整体吞吐量。 简单来说,它不是让服务器收到一个请求就立刻处理一个(Sequential Processing),而是让服务器稍微“等一等”,在极短的时间窗口内收集多个到达的请求,将它们打包成一个 Batch(批次),然后一次性发送给 GPU 进行并行计算。 --- 为什么需要 Dynamic Batching? GPU 是为大规模并行计算设计的(SIMD 架构)。 处理 1 个请求:GPU 可能只用了 10% 的算力,剩下 90% 都在空转,且大部分时间花在从内存读取模型权重上(Memory Bound)。 处理 16 个请求:GPU 读取一次权重,就可以对 16 个数据进行计算。算力利用率飙升,分摊了内存带宽的开销。 --- Dynamic Batching 的 Trade-off(权衡) Dynamic Batching 的核心在于以“单个请求的延迟”换取“整体系统的吞吐量”。以下是详细的 Trade-off 分析:...