You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Slurm未满足GPU内存要求仍启动作业问题求助

解决Slurm忽略GPU内存请求导致CUDA OOM的问题

针对你遇到的Slurm不尊重GPU内存配置、作业启动后显存不足的问题,以下是无需修改集群配置的可行方案:

  • 修正GPU显存请求参数
    你的GPU总显存仅为10.75GB(约11008MB),但你请求了--mem-per-gpu=12000,超过硬件上限的请求会被Slurm忽略。将参数改为符合硬件实际的数值,比如:

    #SBATCH --mem-per-gpu=10000
    

    如果集群支持按显存规格筛选GPU,也可以用--gres=gpu:1:10gb(具体格式需参考集群GPU命名规则),确保分配到足够显存的GPU。

  • 强制GPU独占分配
    添加--exclusive参数,让Slurm将整个GPU资源分配给你的作业,避免其他用户的进程或残留任务占用显存:

    #SBATCH --exclusive
    
  • 验证GPU分配状态并清理残留进程
    在脚本开头添加以下命令,确认Slurm分配的GPU是否正确,以及显存初始占用情况:

    echo "Assigned GPU ID(s): $CUDA_VISIBLE_DEVICES"
    nvidia-smi
    

    如果发现有自己的残留进程占用显存,可添加:

    nvidia-smi --query-compute-apps=pid --format=csv,noheader | xargs -r kill -9
    

    (注意:共享集群中请勿随意终止他人进程)

  • 优化PyTorch显存使用
    除了已设置的PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True,还可以:

    • 在训练代码中定期调用torch.cuda.empty_cache()释放未使用的显存
    • 启用梯度累积(减少单步显存占用)
    • 降低batch size,或使用混合精度训练(torch.cuda.amp)
  • 确保Singularity正确绑定GPU
    启动Singularity镜像时必须添加--nv参数,确保容器能正确访问Slurm分配的GPU资源:

    singularity run --nv your_image.sif
    

内容的提问来源于stack exchange,提问作者Murf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 13:40:14