文档首页/ AI开发平台ModelArts/ 故障排除/ Lite Server/ GP Vnt1裸金属服务器用PyTorch报错CUDA initialization:CUDA unknown error
更新时间:2024-09-07 GMT+08:00
分享

GP Vnt1裸金属服务器用PyTorch报错CUDA initialization:CUDA unknown error

问题现象

在Vnt1 GPU裸金属服务器(Ubuntu18.04系统),安装NVIDIA 470+CUDA 11.4后使用“nvidia-smi”和“nvcc - V”显示正确的安装信息,然后使用Pytorch下述命令验证cuda有效性:

print(torch.cuda.is_available())

显示报错:

UserWarning: CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero. (Triggered internally at  /pytorch/c10/cuda/CUDAFunctions.cpp:100.)
  return torch._C._cuda_getDeviceCount() > 0

原因分析

nvidia-modprobe是一个Linux工具,用于在系统中加载NVIDIA驱动程序及其相关的内核模块。在Linux系统上安装NVIDIA显卡驱动后,需要通过“nvidia-modprobe”命令来加载相应的内核模块,以便让显卡驱动正常工作。

通常情况下,在安装NVIDIA驱动时,会自动执行“nvidia-modprobe”命令,将必要的内核模块加载到系统中。但有时候也可能需要手动执行该命令。例如,在更新了NVIDIA驱动后,需要重新加载新版本的内核模块才能使变更生效。

此外,若使用了多个NVIDIA显卡,每个显卡都需要加载相应的内核模块才能正常工作。在这种情况下,也需要手动执行“nvidia-modprobe”命令来加载所有必要的内核模块。

处理方法

  • 方案1:操作系统内核重新加载nvidia_uvm。
    sudo rmmod nvidia_uvm
    sudo modprobe nvidia_uvm
  • 方案2:安裝nvidia-modprobe。
    apt-get install nvidia-modprobe

相关文档