昨天深夜调模型,同事跑过来问:“为什么我把batch size从1改成4,单张图的推理时间反而变长了?”这个问题很有意思,也是很多刚接触RT-DETR的同学容易踩的坑。今天我们就来拆解batch size和推理速度之间那些微妙的关系。现象背后的本质先明确一个基本概念:在训练阶段,增大batch size通常能利用GPU并行计算加速。但在推理阶段,尤其是部署到边缘设备时,情况就复杂得多。RT-DETR作为实时检测模型,推理时的batch size选择直接影响着端到端的延迟和吞吐量。我拿自己的测试数据说话。在RTX 3090上跑RT-DETR-R50,输入尺寸640x640:batch=1时,平均推理时间18.3msbatch=4时,平均推理时间22.1msbatch=8时,平均推理时间31.7ms看到没?单张图的处理时间确实随着batch增大而增加。这是因为batch推理不是简单的并行叠加,模型前向过程中的某些操作(如后处理的NMS)是逐样本进行的,batch越大,这部分开销就越大。内存带宽的隐形瓶颈很多人以为GPU计算就是看CUDA核心数,其实内存带宽经常是瓶颈。RT-DETR的Transformer decoder部分有大量的矩阵运算,当batch增大时:# 这是简化后的decoder前向过程