Conda无法识别CUDA版本求助:Ubuntu安装TensorFlow GPU遇阻
问题描述
我在Ubuntu环境里安装最新版TensorFlow GPU,CUDA驱动已经正常运行:
- 用
nvcc --version验证,输出:
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2022 NVIDIA Corporation Built on Tue_May__3_18:49:52_PDT_2022 Cuda compilation tools, release 11.7, V11.7.64 Build cuda_11.7.r11.7/compiler.31294372_0
nvidia-smi的输出也显示CUDA版本为11.7:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 515.43.04 Driver Version: 515.43.04 CUDA Version: 11.7 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 Tesla V100-SXM2... On | 00000000:06:00.0 Off | 0 | | N/A 40C P0 68W / 300W | 9712MiB / 16384MiB | 7% Default | | | | N/A | +-------------------------------+----------------------+----------------------+
我创建了Python3.9的空Conda环境,照着TensorFlow官方文档执行命令安装依赖:
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0
结果Conda报错说我安装的CUDA驱动版本不满足要求:
- cudatoolkit=11.2 -> __cuda[version='>=11.2.1|>=11|>=11.2|>=11.2.2'] Your installed CUDA driver is: 11.7
明明11.7满足>=11.2的要求,Conda却无法识别,求问题原因和解决办法。
可能的原因及解决办法
1. Conda虚拟包__cuda检测逻辑出错
Conda通过虚拟包__cuda识别系统CUDA版本,但偶尔会因为检测机制的bug,把高版本误判为不满足低版本的依赖要求。
解决办法:
- 手动指定
__cuda版本绕过检测:
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0 __cuda=11.7
- 或者关闭频道优先级,强制安装:
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0 --no-channel-priority
2. Conda-Forge频道的包依赖约束过严
部分conda-forge的cudatoolkit包对__cuda的版本约束写得过于严格,比如误设了版本上限,导致高版本被拒绝。
解决办法:
- 换用NVIDIA官方Conda频道安装:
conda install -c nvidia cudatoolkit=11.2 cudnn=8.1.0
- 更省事的是用pip安装TensorFlow,它会自动适配CUDA和cuDNN:
pip install tensorflow[and-cuda]
这个命令会自动安装对应版本的CUDA runtime和cuDNN,无需手动指定版本号。
3. 环境变量配置问题
Conda检测CUDA版本时依赖CUDA_VERSION、PATH等环境变量,如果这些变量未正确设置,会导致检测结果错误。
解决办法:
- 手动设置环境变量,然后重新激活Conda环境:
export CUDA_VERSION=11.7 export PATH=/usr/local/cuda-11.7/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH conda activate 你的环境名
之后再执行安装命令。
内容的提问来源于stack exchange,提问作者Ufuk Can Bicici
相关产品推荐
相关产品推荐

