vllm [杂项]:CUDAGraph捕获的生成卡住了,使用了自定义的all_reduce和tensor_parallel=2,

s1ag04yj  于 3个月前  发布在  其他
关注(0)|答案(2)|浏览(28)

关于vLLM的讨论

问题
我正在尝试使用自己的Transformer模型实现,并在vLLM中使用custom all-reduce替换pytorch的all-reduce进行CUDAGraph捕获。CUDAGraph捕获工作良好,直到我尝试了某种并行策略(Tensor并行=管道并行=数据并行=2,8个GPU)。在这种配置下,当重放捕获的图时,生成过程会随机卡住。在其他具有8个GPU的并行策略中,这个问题并不存在。我想知道有人遇到过同样的问题吗?我观察到自定义all-reduce仅在world_size=2时使用cross_device_reduce_1stage(world_size>2时,数据量较小),而不是cross_device_reduce_2stage。这是否是问题的根本原因?提前感谢您的回答!

eiee3dmh

eiee3dmh1#

很难帮助自定义使用自定义allreduce,我建议向@hanzhi713寻求帮助,他最初贡献了这段代码。

oyxsuwqo

oyxsuwqo2#

你可能想要分享一个最小可复现的代码片段。你提到的阶段选择行为是可以预期的,所以这不应该是一个问题。

此外,请先尝试以下操作,看看它们是否仍然挂起:

  1. 禁用cuda图,但启用使用当前策略的自定义allreduce
  2. 启用cuda图,但禁用使用当前策略的自定义allreduce

相关问题