我正在使用GeForce RTX 2060构建深度学习装备。
我想使用尚未与tensorflow 2.0兼容的baselines-stable。
根据here和here,tensorflow-gpu-1.15仅被列为与CUDA 10.0兼容,而不与CUDA 10.1兼容。
尝试从Nvidia option for Ubuntu 20.04 is not available for CUDA 10.0.
下载CUDA搜索apt-cache也不会导致CUDA 10.0。
$ sudo apt-cache policy nvidia-cuda-toolkit
[sudo] password for lansford:
nvidia-cuda-toolkit:
Installed: (none)
Candidate: 10.1.243-3
Version table:
10.1.243-3 500
500 http://us.archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages
我非常希望不必使用旧版本的Ubuntu重新安装操作系统。但是,尝试强化学习是购买此PC的动机。
我看到一些possible clues,可能会在支持cuda 10.1的情况下从源代码构建tensorflow-gpu-1.15。我还看到了一个随机评论,即tensorflow-gpu-1.15将在tf 1.15下自动运行,但我不想在安装完成之前发出错误的信号,走。卸载并不总是那么简单。
鉴于这种情况,是否可以在Ubuntu 20.04.1上运行带有gpu支持的tensorflow 1.15?
答案 0 :(得分:0)
我继续前进,并选择了docker approach。无论如何,Tensorflow文档似乎都朝着这个方向发展。使用docker仅需要安装Nvidia驱动程序。您确实需要在docker中安装nvidia support才能使其正常工作。
这是启动jupyter并将当前目录从我的计算机挂载到/tf/bob
的命令,该命令显示在jupyter中。
docker run -it --mount type=bind,source="$(pwd)",target=/tf/bob -u $(id -u):$(id -g) -p 8888:8888 tensorflow/tensorflow:1.15.2-gpu-py3-jupyter
答案 1 :(得分:0)
因为这也困扰着我,所以我找到了一个可行的解决方案,我认为它比使用 docker 容器更通用。
主要思想来自here(不向他人索取功劳)。
要为 Ubuntu 20.04 和 tensorflow 1.15 制定一个可行的解决方案,需要:
我选择了运行文件作为方法,这导致 1 个主运行文件和 1 个补丁运行文件可用:
cuda_10.0.130_410.48_linux.run
cuda_10.0.130.1_linux.run
可以使用提供的说明安全地安装工具包,没有风险,因为每个版本在系统中分配不同的文件夹(通常为 /usr/local/cuda-10.0/
)。
cuda 10.0对应的cudnn
我以前安装过这个,但下载它也不难。我使用的版本是cudnn-10.0-linux-x64-v7.6.5.32.tgz
。
Cudnn 基本上只是在正确的位置复制文件(实际上并不安装任何东西)。因此,提取压缩文件并复制到文件夹就足够了:
$ sudo cp cuda/include/cudnn.h /usr/local/cuda-10.0/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64
$ sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h /usr/local/cuda-10.0/lib64/libcudnn*
到目前为止,虽然安装了系统,但系统并不知道 cuda 10.0.0 的存在。因此,对它的所有调用都将失败,就好像不存在一样。我们应该更新cuda 10.0的相关系统环境。系统范围内的一种方法(还有其他方法)是创建(不存在)一个 /etc/profile.d/cuda.sh
,它将包含对 LD_LIBRARY_PATH 变量的更新。它应该包含以下内容:
导出 LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-11.3/lib64:/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
这个命令通常会完成工作:
$ sudo sh -c 'echo export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-11.3/lib64:/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH > /etc/profile.d /cuda.sh'
我认为这需要重新启动才能进行评估。不管怎样,这样系统会在:
中搜索相关的so文件
a) /usr/local/cuda/lib64
(默认符号链接),它会失败
b) 与后者几乎相同 /usr/local/cuda-11.3/lib64
并且也失败但它也会搜索
c) /usr/local/cuda-10.0/lib64
会成功。
cuda 10.0 的 supported versions of python 以 3.7 结尾,因此应安装旧版本。这意味着必须有一个虚拟环境(因为搞乱系统 python 从来都不是一个好主意)。
例如,可以使用包含旧版本(和新版本 python)的 this repository 安装 python 3.7:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get install python3.7
这只是将 python3.7 安装到系统中,它不会使其成为默认值。默认为上一个。
创建一个虚拟环境并添加所需的python作为默认解释器。对我来说这有效:
virtualenv -p python3.7 ~/tensorflow_1-15
它创建了一个包含 python 3.7 的新 venv。
现在填充所有必需的模块,您就可以开始了。