我的 tensorflow 2.3.1 设置与 cuda 10.1 运行正常,直到我错误地更新了 nvidia 驱动程序和 cuda。
以下是我安装 cuda 10-1 的步骤
- 清除所有 cuda 和 nvidia 驱动程序
sudo apt-get——清除删除”库布拉斯“cuda*” “nsight*”
sudo apt-get——清除“nvidia*”
sudo apt-get 自动删除 sudo apt-get 自动清洁 sudo rm -rf /usr/local/cuda*
重启
- 此后,我按照 tensorflow 页面上的说明进行操作
https://www.tensorflow.org/install/gpu
sudo apt-key adv --fetch-keyshttps://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
sudo apt-get 更新
sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get 更新
sudo apt-get install --no-install-recommends nvidia-driver-450
sudo apt-get install --no-install-recommends cuda-10-1
它在我的 /usr/local cuda-10.1 cuda-10.2 中创建了 2 个文件夹
在此步骤中,它会删除 450 驱动程序并安装 455,以下是我收到的部分信息
以下软件包将被删除:libnvidia-cfg1-450 libnvidia-compute-450 libnvidia-decode-450 libnvidia-encode-450 libnvidia-extra-450 libnvidia-fbc1-450 libnvidia-gl-450 libnvidia-ifr1-450 nvidia-compute-utils-450 nvidia-dkms-450 nvidia-driver-450 nvidia-kernel-common-450 nvidia-kernel-source-450 nvidia-utils-450 xserver-xorg-video-nvidia-450
如果我继续安装 libcudnn7 和 tensorflow
sudo apt-get install --no-install-recommends
libcudnn7=7.6.5.32-1+cuda10.1
libcudnn7-dev=7.6.5.32-1+cuda10.1
我在 python 中得到这个
tf.config.list_physical_devices(“GPU”)
2020-10-07 13:10:02.262260:E tensorflow/stream_executor/cuda/cuda_diagnostics.cc:313] 内核版本 450.80.2 与 DSO 版本 455.23.5 不匹配 - 在此配置中找不到工作设备
为了解决这个问题我尝试
- 卸载 455
sudo apt purge nvidia-455*
重新安装 tensorflow,现在我在 python 中收到此错误
tf.config.list_physical_devices(“GPU”)
2020-10-07 13:20:46.923513:I tensorflow/stream_executor/platform/default/dso_loader.cc:48] 成功打开动态库 libcuda.so.1 2020-10-07 13:20:46.959289:I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] 成功从 SysFS 读取的 NUMA 节点具有负值(-1),但必须至少有一个 NUMA 节点,因此返回 NUMA 节点零 2020-10-07 13:20:46.959608:I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] 找到具有以下属性的设备 0:pciBusID:0000:01:00.0 名称:GeForce RTX 2070 计算能力:7.5 核心时钟:1.62GHz 核心数:36 设备内存大小:7.79GiB 设备内存带宽:417.29GiB/s 2020-10-07 13:20:46.959626:I tensorflow/stream_executor/platform/default/dso_loader.cc:48] 成功打开动态库 libcudart.so.10.1 2020-10-07 13:20:46.959769:W tensorflow/stream_executor/platform/default/dso_loader.cc:59]无法加载动态库“libcublas.so.10”;dlerror:libcublas.so.10:无法打开共享对象文件:没有此文件或目录
如何修复此问题,谢谢
答案1
Terrance 的回复有助于解决驱动程序升级问题,但必须安装额外的软件包并设置配置文件。
这https://www.pugetsystems.com/labs/hpc/How-to-install-CUDA-9-2-on-Ubuntu-18-04-1184/帮助采取额外措施
以下是我针对 unix 18.04 上使用带有 nvidia 450 驱动程序的 cuda10.1 的步骤
脚步:
在从运行文件安装 cuda 之前,我们需要安装驱动程序
##驱动程序,这是根据 TensorFlow 要求的,455 不适用于当前 TensorFlow 版本
- sudo apt-get install --no-install-recommends nvidia-driver-450
##获取 cuda 10.1 的运行文件
安装依赖项
- sudo apt-get 安装 freeglut3 freeglut3-dev libxi-dev libxmu-dev
##按照安装步骤运行以下命令
- sudo sh cuda_10.1.243_418.87.00_linux.run
#安装程序对预先存在的驱动程序发出警告,继续#在菜单中选择除驱动程序之外的所有内容,将安装 cuda,使用 ls /usr/local
文件夹 cuda-10.1
- 为 cuda 配置文件创建 bash 文件
#您可以使用任何文本编辑器,
vim /etc/profile.d/cuda.sh
##将以下几行添加到此文件以添加路径
导出 PATH=$PATH:/usr/local/cuda-10.1/bin 导出 CUDADIR=/usr/local/cuda-10.1
##为 LD_LIBRARY_PATH 创建另一个文件
vim /etc/ld.so.conf.d/cuda.conf
#添加此行
/usr/local/cuda-10.1/lib64
#跑步
sudo ldconfig
- 对于 Cudnn,请使用以下步骤进行 tar 文件安装
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
这是 4 个命令
tar -xzvf cudnn-10.1-linux-x64-v7.6.5.32.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
- 如果你在使用 tf 时遇到此错误
调用 cuInit 失败:CUDA_ERROR_UNKNOWN
#使用这个 sudo apt install nvidia-modprobe
- 如果有人想安装 tensorRT,这些链接很有帮助
https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing-tar
为什么我会收到“/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.7 不是符号链接”?