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

GCloud K8s环境下Deep Learning容器中PyTorch无法识别GPU

GCloud Kubernetes集群PyTorch无法识别GPU故障排查

故障场景

  • 运行环境:GCloud Kubernetes 集群,业务容器选用基础镜像gcr.io/deeplearning-platform-release/pytorch-gpu/,框架为PyTorch
  • 故障表现:集群组件可正常启动,模型可完成全流程训练,但仅能调用CPU算力计算,GPU资源无法被调用
  • 异常复现:在容器内执行PyTorch CUDA检查代码时,触发初始化报错
>>> import torch
>>> torch.cuda.is_available()
/opt/conda/lib/python3.7/site-packages/torch/cuda/__init__.py:52: UserWarning: CUDA    initialization: CUDA driver initialization failed, you might not have a CUDA gpu. (Triggered internally at  /opt/conda/conda-bld/pytorch_1614378098133/work/c10/cuda/CUDAFunctions.cpp:109.)
return torch._C._cuda_getDeviceCount() > 0
False

基础校验信息

  • 宿主机节点层面GPU状态正常,在节点上执行nvidia-smi输出如下:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.67       Driver Version: 418.67       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla K80           Off  | 00000000:00:04.0 Off |                    0 |
| N/A   62C    P8    32W / 149W |     11MiB / 11441MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
  • 容器内环境版本信息
>>> torch.__version__
'1.8.0'
>>> torch.version.cuda
'11.1'

故障根源

宿主机驱动版本与容器内PyTorch编译的CUDA版本不匹配

  • 宿主机安装的NVIDIA驱动版本为418.67,官方支持的最高CUDA版本为10.1
  • 容器内预装的PyTorch 1.8.0 是基于CUDA 11.1 编译的,该CUDA版本要求宿主机NVIDIA驱动版本最低不低于450.00
  • 宿主机搭载的Tesla K80 显卡计算能力为3.7,本身也不在CUDA 11.1的官方支持列表范围内
  • 版本跨度过大,导致容器内CUDA初始化流程无法和宿主机GPU驱动建立通信,最终触发识别失败

解决步骤

  • 匹配对应版本的业务镜像:替换当前拉取的最新版PyTorch GPU镜像,选用适配宿主机418.x驱动、CUDA 10.1环境的固定版本镜像(对应PyTorch 1.7.1 版本,编译CUDA为10.2,属于418驱动可兼容的版本范围)
  • 校验集群GPU设备插件配置:确认节点上的NVIDIA GPU Device DaemonSet 运行状态正常,已将宿主机的GPU设备文件、驱动动态库正确挂载到容器内部
  • 容器内二次验证:替换镜像部署完成后,进入Pod执行torch.cuda.is_available(),确认返回值为True,可正常执行GPU算力调度
  • 长期适配方案:如果需要使用高版本CUDA的PyTorch特性,可将节点的NVIDIA驱动升级到对应支持版本,从底层消除版本错配问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 02:15:05