AlphaFold环境下nvidia-smi、nvcc等版本差异与冲突解决咨询
问题描述
本人具备机器学习经验,尝试搭建AlphaFold运行环境。已创建虚拟环境并安装CuDNN(8.1.0.77)、CuDNN Toolkit(11.2.2)、TensorFlow(2.10.0)及TensorFlow-GPU(2.10.0)。使用nvidia-smi和nvcc --version验证时发现版本不一致:nvidia-smi显示CUDA版本11.4,nvcc显示10.1,CuDNN Toolkit版本为11.2。本人使用的GPU为RTX 3090,现咨询这些组件的版本关系、是否需要修复该问题及解决方法。
验证命令及输出
$ nvidia-smi +-----------------------------------------------------------------------------+ | NVIDIA-SMI 470.199.02 Driver Version: 470.199.02 CUDA Version: 11.4 | |-------------------------------+----------------------+----------------------+ | 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 NVIDIA GeForce ... Off | 00000000:04:00.0 On | N/A | | 0% 35C P8 22W / 420W | 324MiB / 24265MiB | 1% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 0 N/A N/A 1060 G /usr/lib/xorg/Xorg 66MiB | | 0 N/A N/A 1505 G /usr/bin/gnome-shell 85MiB | | 0 N/A N/A 1917 G /usr/lib/firefox/firefox 170MiB | +-----------------------------------------------------------------------------+ $ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Sun_Jul_28_19:07:16_PDT_2019 Cuda compilation tools, release 10.1, V10.1.243
解答
组件版本关系说明
nvidia-smi显示的CUDA版本是驱动支持的最高CUDA版本,470.199.02驱动支持最高CUDA 11.4,这是正常的。nvcc --version显示的是当前系统PATH中优先级最高的CUDA Toolkit编译器版本,你现在PATH指向的是旧的CUDA 10.1,和你安装的11.2.2 Toolkit不是同一套。- TensorFlow-GPU 2.10.0要求CUDA Toolkit版本为11.2、CuDNN版本为8.1.x,你安装的CuDNN 8.1.0.77符合要求,但系统实际调用的CUDA编译器版本不匹配,会导致依赖失效。
- RTX 3090基于Ampere架构,仅支持CUDA 11.x及以上版本,CUDA 10.1完全不兼容该架构,无法调用GPU。
是否需要修复该问题
必须修复,核心原因有两点:
- CUDA 10.1不支持RTX 3090的Ampere架构,AlphaFold无法利用GPU加速,运行效率会极低甚至直接报错。
- TensorFlow-GPU 2.10.0依赖CUDA 11.2,当前系统PATH指向的CUDA 10.1会导致TensorFlow无法正确加载GPU组件,出现CUDA初始化失败等错误。
解决方法
方法1:更新系统PATH,指向CUDA 11.2.2
- 找到CUDA 11.2.2的安装目录,通常为
/usr/local/cuda-11.2 - 临时修改当前终端的PATH:
export PATH=/usr/local/cuda-11.2/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH
- 验证修改:重新运行
nvcc --version,应显示11.2版本 - 永久修改:编辑
~/.bashrc或~/.zshrc,加入上述两行,执行source ~/.bashrc生效
方法2:卸载旧的CUDA 10.1
如果不需要CUDA 10.1,可以直接卸载:
sudo apt-get remove --purge cuda-10-1 sudo apt-get autoremove
卸载后确保CUDA 11.2的PATH配置正确,再验证版本。
方法3:检查虚拟环境的环境变量
若在虚拟环境中安装组件,确认虚拟环境没有继承系统旧的CUDA路径,或在虚拟环境的激活脚本中配置正确的CUDA 11.2路径。
内容的提问来源于stack exchange,提问作者Young Tae Won
相关产品推荐
相关产品推荐

