Ubuntu20.04下TensorFlow GPU无法加载libcufft.so.10等CUDA库怎么办?
问题根因
- 现有CUDA 11.0安装不完整,缺失cuFFT、cuRAND等核心数学库组件
- 未创建CUDA软链接,且LD_LIBRARY_PATH配置指向不存在的
/usr/local/cuda路径,导致TensorFlow无法定位库文件 - Ubuntu20.04默认源的
nvidia-cuda-toolkit版本为10.1,与所需11.0版本不匹配,因此出现依赖报错 - 当前NVIDIA驱动版本为460.91.03,最高支持CUDA 11.2,完全兼容11.0版本,无需更换驱动
无冲突解决方案
步骤1:检查现有CUDA 11.0的库文件完整性
执行命令确认是否已安装相关库:
ls /usr/local/cuda-11.0/lib64 | grep libcufft.so.10
如果有输出,说明库文件存在,仅需配置路径即可;如果无输出,说明库文件确实缺失,先完成步骤3再回退到步骤2。
步骤2:创建软链接并配置环境变量
首先创建CUDA通用软链接,后续切换CUDA版本仅需修改该软链接即可,不会产生版本冲突:
sudo ln -s /usr/local/cuda-11.0 /usr/local/cuda
编辑用户目录下的.bashrc配置文件:
nano ~/.bashrc
在文件末尾添加以下两行配置:
export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
保存退出后执行命令使配置生效:
source ~/.bashrc
步骤3:补装CUDA 11.0缺失的核心库
如果步骤1确认库文件缺失,通过NVIDIA官方源安装指定版本的库组件,不会覆盖现有驱动也不会产生多版本冲突:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" sudo apt update sudo apt install cuda-libraries-11-0
安装完成后回到步骤2配置软链接和环境变量。
步骤4:验证配置生效
执行命令验证TensorFlow可正常识别GPU:
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
如果输出包含GPU设备信息,说明问题已解决,出现的NUMA节点警告不影响正常使用。
内容的提问来源于stack exchange,提问作者J Agustin Barrachina
相关产品推荐
相关产品推荐

