如何安装CUDA工具包7.0或者 Debian 8 上的 8?
我知道 Debian 8 提供了以下选项下载并安装 CUDA 工具包 6.0使用apt-get install nvidia-cuda-toolkit
,但是对于 CUDA 工具包版本 7.0 或 8 如何执行此操作?
我尝试使用 Ubuntu 安装程序进行安装,如下所述:
sudo wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.0-28_amd64.deb
dpkg -i cuda-repo-ubuntu1404_7.0-28_amd64.deb
sudo apt-get update
sudo apt-get install -y cuda
但它不起作用并返回以下消息:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
cuda : Depends: cuda-7-0 (= 7.0-28) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
答案1
以下说明适用于 CUDA 7.0、7.5 和几个之前(可能还有更高版本)的版本。就 Debian 发行版而言,它们适用于 Jessie 和 Stretch 以及可能的其他版本。它们采用 amd64 (x86_64) 架构,但您可以轻松地将它们调整为 x86 (x86_32)。
安装先决条件
- 克++- 您应该使用您的 CUDA 版本支持的最新 GCC 版本。对于 CUDA 7.x,这将是版本 4.9.3,4.x 系列的最后一个;对于 CUDA 8.0,支持 GCC 5.x 版本。如果您的发行版默认使用 GCC 5.x,请使用它,否则应该使用 GCC 5.4.0。早期版本是可用的,但我不会推荐它们,即使只是为了更好地支持主机端代码的现代 C++ 功能。
- 海湾合作委员会- 带有 g++。我什至认为在某些情况下,CMake 可能会默认让 nvcc 调用 gcc 而不是 g++
-x
(但不确定这一点)。 - 库GLU- Mesa OpenGL 库(+ 开发文件?)
- libXi- X Window 系统 Xinput 扩展库(+ 开发文件?)
- 库Xmu- X Window 系统“杂项实用程序”库(+ 开发文件?)
- Linux内核- 您正在运行的内核版本的标头。
如果您想要特定软件包的列表 - 好吧,这取决于您正在使用的发行版。但您可以尝试以下操作(对于 CUDA 7.x):
sudo apt-get install gcc g++ gcc-4.9 g++-4.9 libxi libxi6 libxi-dev libglu1-mesa libglu1-mesa-dev libxmu6 libxmu6-dev linux-headers-amd64 linux-source
您可以添加-dbg
这些包的某些版本来调试符号。
我是漂亮的当然这涵盖了所有内容 - 但我可能错过了我刚刚安装的一些东西。还,CUDA 可以与 clang 配合使用,至少是实验性的,但我还没有尝试过。
安装CUDA内核驱动
- 前往 NVIDIA 的CUDA 下载页面。
- 选择Linux > x86_64 > Ubuntu,然后是他们拥有的最新版本(在撰写本文时:Ubuntu 15.04)。
- 选择.运行文件选项。
- 下载.run文件(当前这个)。确保不是把它放进去
/tmp
。 - 使 .run 文件可执行
chmod a+x cuda_7.5.18_linux.run
: - 成为根。
- 执行 .run 文件:假装接受他们愚蠢的收缩包装许可证;对仅安装 NVIDIA 内核驱动程序说“是”,对其他一切说“不”。
安装程序应该告诉您它预计已安装 NVIDIA 内核驱动程序,但您应该在继续/重试工具包安装之前重新启动。所以...
- 显然成功了,重新启动。
安装 CUDA 本身
- 成为根。
- 找到并执行
cuda_7.5.18_linux.run
- 这一次,对安装驱动程序说“否”,但对安装其他所有内容说“是”,并接受默认路径(或更改它们,只要适合您)。
安装程序现在可能失败。假设这是我们期望的那种失败,这是一件好事:它应该告诉您您的编译器版本不受支持 - CUDA 7.0 或 7.5 支持最高 gcc 4.9 并且默认情况下您有一些 5.x 版本。现在,如果您收到有关失踪的消息图书馆,这意味着我上面关于先决条件的说明在某种程度上失败了,您应该在这里发表评论,以便我可以修复它们。假设您得到了“良好的失败”,请继续:
- 重新调用 .run 文件,这次使用 --override 选项。
- 做出与步骤 11 相同的选择。
CUDA 现在应该安装在默认位置/usr/local/cuda
(这是一个符号链接)下。但我们还没有完成!
指示 NVIDIA 的 nvcc 编译器使用正确的 g++ 版本
NVIDIA 的 CUDA 编译器实际上调用 g++ 作为链接过程的一部分和/或编译实际的 C++ 而不是 .cu 文件。我认为。无论如何,它默认运行路径中的任何内容g++
;但如果你放置其他g++
在 下/usr/local/cuda/bin
,它将首先使用它!所以...
- 执行
symlink /usr/bin/g++-4.9 /usr/local/cuda/bin/g++
(为了更好地衡量,也许也可以symlink /usr/bin/gcc-4.9 /usr/local/cuda/bin/gcc
.
就是这样。
尝试安装
cd /root/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd
make
构建应该成功结束,当您完成时
./vectorAdd
你应该得到以下输出:
root@mymachine:~/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd# ./vectorAdd
[Vector addition of 50000 elements]
Copy input data from the host memory to the CUDA device
CUDA kernel launch with 196 blocks of 256 threads
Copy output data from the CUDA device to the host memory
Test PASSED
Done
笔记
- 您不需要安装 NVIDIA GDK(GPU 开发套件),但它没有坏处,而且可能对某些人有用。安装到系统根目录下;它非常安全,之后有一个卸载程序:
/usr/bin/uninstall_gdk.pl
。在 CUDA 8 中,它已经集成到 CUDA 本身 IIANM 中。 - 不要安装名称如 nvidia-... 或 cuda... 的其他软件包;它们可能不会造成伤害,但肯定不会有帮助。
- 在执行任何这些操作之前,您可能需要使用
lspci | grep -i nvidia
.
答案2
我认为你应该使用向后移植来做到这一点,实际上我正在nvidia-cuda-toolkit
debian jessie 上顺利安装 7.5。
将非免费的向后移植添加到您的/etc/apt/sources.list
.对我来说(杰西)我只是把它放在我的文件的底部:
# jessie-backports
deb http://httpredir.debian.org/debian jessie-backports main contrib non-free
保存,apt-get update,最后:
apt-get install -t jessie-backports nvidia-cuda-toolkit
答案3
将 contrib 和非自由存储库添加到 resources.list 并运行 apt-get update 后,CUDA Toolkit 位于 nvidia-cuda-toolkit 下的 Synaptic 中。