部署qwen3-32b报错,不知道是什么原因

你的报错信息显示 torch.distributed.DistBackendError: NCCL error ... ncclUnhandledCudaError: Call to CUDA function failed. ... Failed to CUDA calloc ...,这是典型的 NCCL 通信或 CUDA 显存分配失败问题。常见原因包括:1)GPU 显存不足,2)/dev/shm 共享内存不足,3)NCCL 环境变量或驱动配置不当,4)多卡通信异常。

建议排查步骤如下:

  1. 检查每张卡的显存是否足够,Qwen3-32B 半精度单卡需约32GB,4卡并行每卡也需8GB+,但实际还需留出通信和缓存空间,建议每卡至少24GB。
  2. 如果用 Docker 或 K8s,需设置 --shm-size 至至少16G,并挂载 /dev/shm,否则 NCCL 无法分配共享内存,详见官方文档
  3. 检查 NCCL 相关环境变量,如 NCCL_CUMEM_ENABLE=0,并确保所有进程环境一致,避免 NCCL 版本不兼容或参数冲突,详见常见 NCCL 问题说明
  4. 若仍报错,可尝试减小 batch size、max_model_len 或 max_num_seqs,或用 enforce_eager=True 关闭 CUDA graph,减少显存占用,详见内存优化建议

需要更详细的排查步骤或配置建议吗?

Sources: