Linux深度学习环境搭建:从报错到运行的完整排障路径
|
安装CUDA时提示“NVIDIA-SMI has failed”,多数情况是显卡驱动版本与CUDA不兼容。先执行nvidia-smi确认驱动是否加载,若报错或无输出,说明驱动未正确安装。此时应卸载原有驱动(sudo /usr/bin/nvidia-uninstall),再从NVIDIA官网下载匹配CUDA版本的驱动.run文件,禁用nouveau驱动后重新安装。注意:Ubuntu 22.04+建议使用deb(local)包配合apt安装,避免.run脚本引发的Secure Boot冲突。 nvcc -V返回“command not found”,表明CUDA工具链未加入PATH。检查/usr/local/cuda-xx.x目录是否存在,若存在则确认/etc/profile.d/cuda.sh是否已创建并包含export PATH=/usr/local/cuda/bin:$PATH。若手动添加后仍无效,需检查shell配置文件(如~/.bashrc)中是否有覆盖PATH的语句,或终端是否以login shell方式启动。临时验证可用source /etc/profile.d/cuda.sh后重试。 pip install torch torchvision时反复超时或报“no matching distribution”,本质是PyPI默认源不提供GPU版预编译包。必须访问pytorch.org,根据系统CUDA版本选择对应命令——例如CUDA 11.8应使用pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118。切勿直接pip install torch,否则默认安装CPU-only版本,后续调用.cuda()会静默失败。 Python中import torch后torch.cuda.is_available()返回False,需分三步排查:第一,运行nvidia-smi确认GPU可见;第二,执行python -c "import torch; print(torch.version.cuda)"核对PyTorch编译的CUDA版本是否与系统nvcc -V一致;第三,检查CUDA_VISIBLE_DEVICES环境变量是否被设为-1或空字符串。常见陷阱是Docker容器未加--gpus all参数,或WSL2未启用GPU支持(需Windows 11 22H2+驱动470.93+)。 训练时报错“out of memory”,并非显存真不足,而是batch_size过大或模型权重未迁移至GPU。先用nvidia-smi -l 1实时观察显存占用,确认是否被其他进程占用;再检查代码中model.to('cuda')和data.to('cuda')是否遗漏;若使用DataLoader,确保num_workers≤2且pin_memory=True可减少CPU-GPU拷贝开销。小显存设备可启用梯度检查点(torch.utils.checkpoint)或混合精度训练(torch.cuda.amp.autocast)。 Jupyter Notebook中GPU不可见,常因内核未重启或环境错配。关闭所有notebook,conda deactivate后重新conda activate env_name,再运行jupyter notebook ——确保终端激活的是安装了torch的环境,而非base环境。若仍无效,在notebook首单元执行!which python与!python -c "import torch; print(torch.cuda.is_available())"定位路径与状态。避免在系统Python下用pip install jupyter,应统一用conda install jupyter。 所有步骤完成后,运行最小验证脚本:import torch; x = torch.randn(3,3).cuda(); print(x.device, torch.cuda.memory_allocated()/10242)。输出cuda:0及非零显存数值即标志环境贯通。排障核心逻辑是逐层隔离:硬件驱动→CUDA工具链→Python包→运行时上下文→应用代码。每次修改后仅验证单一环节,避免多变量叠加导致归因混乱。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

浙公网安备 33038102330577号