我的问题背景
我有一台旧的联想 ThinkPad W530 笔记本电脑,配备 NVIDIA Corporation GK107GLM[Quadro K1000M] / Quadro K1000M/PCIe/SSE2 GPU这是计算兼容性 3.0并且是支持 CUDA。我想在 Ubuntu 上为我的 Udacity 纳米学位构建一些 TensorFlow 示例和项目。
我刚刚安装了 Ubuntu 20.04 并升级了我的 NVIDIA 驱动程序,因此当我执行nvidia-smi
它时会出现以下结果:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.51.05 Driver Version: 450.51.05 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| 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 Quadro K1000M On | 00000000:01:00.0 Off | N/A |
| N/A 59C P0 N/A / N/A | 496MiB / 1999MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 5470 G /usr/lib/xorg/Xorg 39MiB |
| 0 N/A N/A 7504 G /usr/lib/xorg/Xorg 146MiB |
| 0 N/A N/A 7772 G /usr/bin/gnome-shell 147MiB |
| 0 N/A N/A 34770 G /proc/self/exe 158MiB |
+-----------------------------------------------------------------------------+
当我尝试使用 GPU 支持构建 TensorFlow 代码时,我发现我需要安装 CUDA 并按照本文关于如何在 Ubuntu 20.04 上安装最新版本的 CUDA 11.0。我完成了整个过程,然后发现了两个问题:
- 我的 GPU 仅支持计算兼容性 3.0,而对 TensorFlow 的最低支持是 3.5
- 为了解决问题 1,我必须从源构建张量流以获得支持 CUDA 3.0 的构建,并且要做到这一点我必须使用 CUDA 10.1,这意味着我必须从头开始。
我删除了 CUDA 11.0,原因是CUDA 文档。我开始在 Ubuntu 20.04 上安装 CUDA 10.1,现在我感到很困惑。
CUDA 10.1安装文档该过程是关于从.deb
Ubuntu 18.04 的文件安装 CUDA 10.1,并且 Ubuntu 20.04 不支持 CUDA 10.1。
于是我开始遵循同样的步骤文章但是对于 CUDA 10.1 而不是 CUDA 11。我能够使用以下命令安装 cuda 10.1:
sudo apt-get -f install cuda-toolkit-10-1 cuda-libraries-10-1
这样我就不会覆盖我已经安装的 NVIDIA 驱动程序 450(我经过几次尝试才做到这一点)。
当我尝试执行命令时
sudo apt install nvidia-cuda-toolkit
由于依赖关系问题,它给我带来了错误。为了克服这些错误,我寻找解决方案,然后我遇到了本文建议:
为了详细起见,不要尝试将 18.10 或 18.04 CUDA 10.1 用于 Ubuntu 20.04。我吃过苦头才明白这一点,哈哈!
因此,你可以在 Ubuntu 20.04 中运行以下命令安装 CUDA 10.1:
$ sudo apt install nvidia-cuda-toolkit
我卸载了使用以下方式安装的 CUDA Toolkit 10.1CUDA 文档我按照这个建议操作,命令成功通过。但现在我不确定是不是这样,还是我遗漏了什么?!
当我尝试了解这两种方式之间的区别时,我发现nvidia-cuda-toolkit
使用该命令的来源
apt-cache policy nvidia-cuda-toolkit
它给出了以下结果,表明来源是 Ubuntu 存储库
nvidia-cuda-toolkit:
Installed: 10.1.243-3
Candidate: 10.1.243-3
Version table:
*** 10.1.243-3 500
500 http://eg.archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages
100 /var/lib/dpkg/status
我的问题
- 如果 Ubuntu 18.04 的 CUDA 10.1 以及 Ubuntu 20.04 的 CUDA 11 的官方安装文档没有提及任何有关安装包的内容,那么和
nvidia-cuda-toolkit
之间有什么区别?nvidia-cuda-toolkit
cuda-toolkit-10-1
- 是否足够文章
nvidia-cuda-toolkit
仅当我尝试使用 CUDA 工具包 10.1 时才安装? - CUDA 10.1 运行时库现在安装了吗?如果没有,我现在该如何安装它们?我应该删除它
nvidia-cuda-toolkit
还是可以按照文档中的步骤操作? - 我如何验证我的安装?
- 当我尝试构建CUDA 示例,在我的安装中没有找到该
cuda-install-samples-10.1.sh
文件。我该如何安装示例?
我一直在尝试建立我的例子,但到目前为止我还没有做到,所以我非常感谢你对此的支持。
答案1
对于仍在寻找解决方案的人来说,我没有答案,但我可以向您指出一些可以解决此问题的相关资源:
为了后代的缘故,这些是步骤(向 Stephen Gregory 致敬):
1. 清理
(a)打开终端窗口并输入以下三个命令以删除您可能已经安装的任何 NVIDIA/CUDA 包:
sudo rm /etc/apt/sources.list.d/cuda*
sudo apt remove --autoremove nvidia-cuda-toolkit
sudo apt remove --autoremove nvidia-*
(b)清除任何剩余的 NVIDIA 配置文件以及可能已安装的相关依赖项。
sudo apt-get purge nvidia*
sudo apt-get autoremove
sudo apt-get autoclean
(c)删除 /usr/local/ 中现有的所有 CUDA 文件夹
我第一次尝试安装 CUDA 时,就被这个问题难住了。此时,usr/local/ 中不应该有任何名为“cuda”或“cuda-anything”的文件夹!
sudo rm -rf /usr/local/cuda*
2. 安装
(a)设置您的 CUDA PPA。(阅读 这里 如果你对 PPA 是什么感到好奇。
本质上,我们将 CUDA 添加到我们的 sources.list 中,这是我们使用 apt 包管理器在终端中使用“sudo apt update”之类的命令下载内容时引用的文件
sudo apt update
sudo add-apt-repository ppa:graphics-driverssudo apt-key adv --fetch-keyshttp://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pubsudo bash -c 'echo "debhttp://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/“> /etc/apt/sources.list.d/cuda.list'sudo bash -c'echo“debhttp://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/“> /etc/apt/sources.list.d/cuda_learn.list'
(b)安装 CUDA 10.1 软件包,包括 CuDNN 库
sudo apt 更新
sudo apt 安装 cuda-10-1
sudo apt 安装 libcudnn7
3.将 CUDA 添加到 PATH
(a)安装后,我们需要将 CUDA 添加到我们的 PATH,以便 shell 知道在哪里找到 CUDA。要编辑我们的路径,请使用 vim 打开“.profile”文件。
sudo vim〜/.profile
(b)最后,将这些行添加到文件末尾。
设置 cuda 10.1 安装的 PATH\
如果[-d“/usr/local/cuda-10.1/bin/”];则
导出PATH = /usr/local/cuda-10.1/bin $ {PATH:+:$ {PATH}}
导出LD_LIBRARY_PATH = /usr/local/cuda-10.1/lib64 $ {LD_LIBRARY_PATH:+:$ {LD_LIBRARY_PATH}}
fi
4. 重启
(a)重新启动计算机(安装完任何驱动程序后都应该重新启动)
5. 最终检查
现在,让我们检查一下,确保一切都设置好了!
(a)检查 NVIDIA 驱动程序:
nvidia-smi
(b)检查 CUDA:
nvcc --版本
(c)检查 CuDNN
/sbin/ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn