华为云AI开发平台ModelArtsGPU V100裸金属服务服务器用PyTorch报错CUDA initialization:CUDA unknown error_云淘科技

问题现象

在V100 GPU裸金属服务器(Ubuntu18.04系统),根据GPU V100裸金属服务器Ubuntu 18.04安装NVIDIA 470+CUDA 11.4安装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

父主题: FAQ

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家