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