Unexpected error from cudaGetDeviceCount 错误解决
- [0. 背景](#0. 背景)
- [1. 解决方法](#1. 解决方法)
0. 背景
新配置了1台服务器,有4张4090显卡。
在 wsl-ubuntu 里执行 python -c "import torch;print(torch.cuda.is_available());" 命令时,会报以下错误。
/root/miniconda3/envs/chatglm3-demo/lib/python3.10/site-packages/torch/cuda/__init__.py:107: UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 2: out of memory (Triggered internally at ../c10/cuda/CUDAFunctions.cpp:109.)
return torch._C._cuda_getDeviceCount() > 0
False
执行 nvidia-smi 也能正常输出结果。
网上查了很多文章,大部分都是说重启就解决了,或者说 cuda 和 pytorch 版本不符等需要安装同一版本之类的。
我的另外一台电脑,也是同样安装的,所以个人分析不是上面问题。
1. 解决方法
后来从是不是4张4090显卡需要什么特殊设置这个角度,有查了很多文章,后来终于通过设置,
CUDA_DEVICE_ORDER="PCI_BUS_ID" CUDA_VISIBLE_DEVICES=0,4 python -c "import torch;print(torch.cuda.is_available());"
得到了正确的输出,
True
完结!