WSL2(Ubuntu22.04)+Poetry环境下cuDNN配置失败求助
WSL2(Ubuntu 22.04)+ Poetry环境下CUDA与cuDNN配置指南及错误修复
一、前置环境检查
- 确认WSL2架构:执行
wsl --list --verbose,确保目标Ubuntu22.04实例为WSL2版本 - 验证Windows端NVIDIA驱动:打开NVIDIA控制面板,确认驱动版本支持目标CUDA版本(RTX A1000最低支持CUDA 11.4,推荐选择11.8)
- WSL2内显卡验证:执行
nvidia-smi,能正常显示显卡信息及驱动支持的最高CUDA版本即为合格
二、CUDA Toolkit 安装与验证(已安装可跳过,建议检查)
- 清理旧版本残留(若之前安装过其他CUDA版本):
sudo apt-get purge nvidia* cuda* sudo apt-get autoremove sudo rm -rf /usr/local/cuda* - 安装适配WSL2的CUDA 11.8(兼容性最优):
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/3bf863cc.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/ /" sudo apt-get update sudo apt-get install -y cuda-toolkit-11-8 - 配置环境变量:
编辑~/.bashrc或~/.zshrc,添加以下内容:
执行export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}source ~/.bashrc使配置生效 - 验证CUDA:执行
nvcc -V,输出正确版本信息即为成功
三、cuDNN 正确安装(避免版本冲突)
选择与CUDA 11.8匹配的cuDNN 8.6.0.tar包安装,规避deb包的依赖冲突:
- 解压下载的cuDNN tar包:
tar -xzvf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz - 复制文件到CUDA目录并赋予权限:
sudo cp cudnn-linux-x86_64-8.6.0.163_cuda11-archive/include/cudnn*.h /usr/local/cuda-11.8/include sudo cp cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64 sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h /usr/local/cuda-11.8/lib64/libcudnn* - 验证cuDNN版本:
应显示对应8.6.0版本信息cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
四、Poetry 环境适配配置
- 创建或进入Poetry项目:
poetry new tf-cuda-project cd tf-cuda-project - 添加适配CUDA 11.8的TensorFlow版本(推荐2.12.0):
poetry add tensorflow==2.12.0 - 确认环境变量继承:
执行poetry run python -c "import os; print(os.environ.get('LD_LIBRARY_PATH', 'Not found'))",需包含/usr/local/cuda-11.8/lib64路径 - 测试GPU支持:
输出GPU设备信息即为配置成功poetry run python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
五、"cuDNN工厂重复注册"错误修复
该错误源于环境中存在多个cuDNN实例,按以下步骤清理:
- 卸载deb安装的cuDNN残留:
sudo apt-get purge libcudnn* sudo apt-get autoremove sudo rm -rf /usr/lib/x86_64-linux-gnu/libcudnn* - 检查Poetry环境内是否自带cuDNN包:
若存在poetry run pip list | grep cudnnnvidia-cudnn-cu11等包,执行卸载:poetry run pip uninstall -y nvidia-cudnn-cu11 - 重新加载环境后测试:
source ~/.bashrc poetry run python -c "import tensorflow as tf; print(tf.test.is_gpu_available())"
内容的提问来源于stack exchange,提问作者Lysapala
相关产品推荐
相关产品推荐

