我有一个使用 cuda 10.1 编译的 c++ 代码,但我想安装 tensorflow-gpu,它支持的 cuda 最新版本是 10.0。我有一个 Ubunutu 18.04。每次我想让 tensorflow-qpu 工作时,我最终都会安装和卸载不同的 cuda、cuDnn 版本 10 次。我使用 pip 安装 tensorflow-gpu 和用于 cuda 驱动程序的 .run 文件。
我该如何安装 cuda 10.0 以使其不影响 cuda 10.1 的安装,并且每次我想要使用驱动程序时只需切换即可?
答案1
我错误地安装了 CUDA 10.1 和 CUDNN 7.6。
您可以使用以下配置(对我来说,从 9 月 10 日起此配置有效):
Tensorflow-gpu == 1.14.0
CUDA 10.1
CUDNN 7.6
Ubuntu 18.04
但我必须创建符号链接才能使其工作,因为 TensorFlow 最初与 CUDA 10 一起使用。
sudo ln -s /opt/cuda/targets/x86_64-linux/lib/libcublas.so /opt/cuda/targets/x86_64-linux/lib/libcublas.so.10.0
sudo cp /usr/lib/x86_64-linux-gnu/libcublas.so.10 /usr/local/cuda-10.1/lib64/
sudo ln -s /usr/local/cuda-10.1/lib64/libcublas.so.10 /usr/local/cuda-10.1/lib64/libcublas.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcusolver.so.10 /usr/local/cuda/lib64/libcusolver.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcurand.so.10 /usr/local/cuda/lib64/libcurand.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcufft.so.10 /usr/local/cuda/lib64/libcufft.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcudart.so /usr/local/cuda/lib64/libcudart.so.10.0
sudo ln -s /usr/local/cuda/targets/x86_64-linux/lib/libcusparse.so.10 /usr/local/cuda/lib64/libcusparse.so.10.0
并将以下内容添加到我的~/.bashrc
:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/targets/x86_64-linux/lib/
答案2
最终对我有用的方法是首先安装 Cuda 10.0,然后安装 Cuda 10.1,而不覆盖 /usr/local/cuda 库,然后您可以将 Cuda 10.0 设置为默认驱动程序,如果您需要运行用 Cuda 10.1 编译的驱动程序,您可以将路径导出到该版本。