GPU 调度失败是一个在深度学习、高性能计算(HPC)以及云计算环境中非常常见的问题。原因通常是资源竞争、配置错误或软件环境不兼容。
表现:
Out of Memory (OOM)、CUDA out of memory排查:
nvidia-smi如果 Memory-Usage 接近 100%,说明显存已被占满。
解决:
kill -9 PIDtorch.cuda.empty_cache()(PyTorch)表现:
Insufficient nvidia.com/gpu原因:
TimeSlicing 未开启)limits: 设错)解决:
kubectl describe nodesinfo -o "%n %G"
squeueKubernetes 常见问题:
nvidia-device-plugin检查:
kubectl get nodes -o wide
kubectl describe node | grep nvidia解决:
kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/main/nvidia-device-plugin.yml错误示例:
resources:
limits:
gpu: 1 # ❌ 错误正确写法:
resources:
limits:
nvidia.com/gpu: 1表现:
CUDA driver version is insufficient排查:
nvidia-smi解决:
| 框架 | CUDA |
|---|---|
| PyTorch 2.x | 11.8 / 12.1 |
| TensorFlow 2.15 | 11.8 |
解决:
表现:
torch.cuda.is_available() == FalseNo CUDA GPUs are available排查:
docker run --rm --gpus all nvidia/cuda:11.8-base nvidia-smi解决:
nvidia-container-toolkit--gpus all原因:
/dev/nvidia* 权限不足解决:
sudo chmod 666 /dev/nvidia*video / docker 组错误示例:
os.environ["CUDA_VISIBLE_DEVICES"] = "2"但机器只有 0、1 号 GPU
解决:
解决:
✅ nvidia-smi 是否正常
✅ GPU 是否被占满
✅ 驱动 / CUDA / 框架版本是否匹配
✅ 调度器是否识别 GPU
✅ 容器是否能访问 GPU
你可以直接贴出以下任意信息:
nvidia-smi 输出我可以一步一步帮你把问题“拆到根因”。