CUDA graph
NVIDIA CUDA 10引入的GPU执行优化机制,将一串GPU操作预先录制为有向无环图,之后一次提交即可整体重放,降低CPU调度开销,但录制阶段本身需要先跑通图且对动态形状支持有限
时间轴 (近 90 天)
在237.7秒的prefill CUDA graph捕获是整个SGLang冷启动时间线中最大的一块开销。
vLLM在启动时通常只对解码阶段做CUDA graph捕获,且对捕获的batch size集合有更激进的裁剪策略,因此其冷启动图捕获阶段往往比SGLang短。
CUDA graph的代价是录制阶段本身需要先把整套图跑通一遍甚至多遍,且对动态形状、动态控制流的支持有限。
在长驻服务中CUDA graph录制成本被摊薄到成千上万次推理里几乎可以忽略;但在scale-to-zero冷启动场景中,录制只发生一次却要立刻投入使用,于是从性能优化变成预热税。
prefill阶段因为要处理变长输入,往往需要为多种序列长度分别捕获CUDA graph,录制时间会被进一步放大。
全部知识事实 (5)
在237.7秒的prefill CUDA graph捕获是整个SGLang冷启动时间线中最大的一块开销。
50%待验证vLLM在启动时通常只对解码阶段做CUDA graph捕获,且对捕获的batch size集合有更激进的裁剪策略,因此其冷启动图捕获阶段往往比SGLang短。
50%待验证CUDA graph的代价是录制阶段本身需要先把整套图跑通一遍甚至多遍,且对动态形状、动态控制流的支持有限。
50%待验证在长驻服务中CUDA graph录制成本被摊薄到成千上万次推理里几乎可以忽略;但在scale-to-zero冷启动场景中,录制只发生一次却要立刻投入使用,于是从性能优化变成预热税。
50%待验证prefill阶段因为要处理变长输入,往往需要为多种序列长度分别捕获CUDA graph,录制时间会被进一步放大。
50%