SSH连接NVIDIA GPU服务器时torch.cuda.is_available()返回False问题
排查步骤
- 首先验证系统CUDA驱动与安装的cudatoolkit版本兼容性:执行
nvidia-smi查看输出右上角的驱动支持最高CUDA版本,你安装的cudatoolkit版本不得高于该值,否则会出现不兼容问题。 - 确认安装的PyTorch为CUDA版本而非CPU版本:执行
conda list torch查看输出中PyTorch版本后缀,若带cpu标识则为CPU版,需卸载后从PyTorch官方获取对应CUDA版本的安装命令重装。例如PyTorch1.10.0对应CUDA10.1的安装命令为:conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=10.1 -c pytorch - 检查CUDA环境变量配置:SSH登录时可能出现环境变量未自动加载的情况,执行
echo $LD_LIBRARY_PATH检查是否包含CUDA库路径(通常为/usr/local/cuda/lib64),若不存在可在shell配置文件(如~/.bashrc)中添加以下内容:
添加后执行export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATHsource ~/.bashrc生效,再重新测试CUDA可用性。 - 确认GPU访问权限:部分机构服务器采用资源调度工具(如Slurm),未申请GPU资源时无法访问GPU设备,可执行
lspci | grep NVIDIA验证是否能检测到NVIDIA显卡,无输出时需联系管理员申请GPU调度权限。 - 注意:
torch.backends.cudnn.enabled返回True仅表示PyTorch包含cudnn组件,与CUDA是否可正常调用无必然关联,不能作为CUDA可用的判断依据。
内容的提问来源于stack exchange,提问作者Ansh Arora
相关产品推荐
相关产品推荐

