无根安装 Cuda

Posted

技术标签:

【中文标题】无根安装 Cuda【英文标题】:Install Cuda without root 【发布时间】:2017-01-15 17:29:07 【问题描述】:

我知道我可以通过以下方式安装 Cuda:

wget http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run chmod +x cuda_7.0.28_linux.run ./cuda_7.0.28_linux.run -extract=`pwd`/nvidia_installers cd nvidia_installers sudo ./NVIDIA-Linux-x86_64-346.46.run sudo modprobe 英伟达 须藤 ./cuda-linux64-rel-7.0.28-19326674.run

只是想知道我是否可以在没有 root 的情况下安装 Cuda?

谢谢,

【问题讨论】:

GPU 驱动程序(例如sudo ./NVIDIA-Linux-x86_64-346.46.run)是能够在 CUDA GPU 上运行 CUDA 程序所必需的,并且它需要 root 权限才能安装其他工具包组件(CUDA 工具包、CUDA 示例)如果您指示安装程序将它们放置在本地工作区而不是安装到默认位置,则可以在没有 root 权限的情况下安装。如果您的系统上已经安装了支持desired CUDA toolkit version 的 GPU 驱动程序,那么这是可能的。 @RobertCrovella,看来我得先请管理员安装 CUDA 安装程序,然后我才能自己安装工具包。谢谢。 你为什么不使用 CUDA 10.0 @DheerajMPai 这个问题是 2 年 2 个月前提出的。当时还没有 CUDA 10.0。 【参考方案1】:

更新 10.1 的安装 UI 已更改。以下作品:

取消选择驱动程序安装(按ENTER就可以了) 将options -> root install path 更改为非sudo 目录。 在标有+ 的行上按A 以访问高级选项。取消选择create symbolic link,并更改toolkit install path。 现在可以在没有 root 权限的情况下进行安装

非常感谢您在问题中的提示!我只想用一种对我有用的方法来完成它,也受到this gist 的启发,希望在安装有效驱动程序的情况下有所帮助,并且仍然需要在没有 root 权限的情况下在 Linux 上安装更新的 CUDA 。

TL;DR: 以下是在 Debian 上安装 CUDA9+CUDNN7 的步骤,以及在 Python2.7 上安装 TensorFlow1.4 的预编译版本以测试一切正常的步骤。一切都没有root权限和通过终端。也应该适用于其他 Linux 系统上的其他 CUDA、CUDNN、TensorFlow 和 Python 版本。


安装

    访问 NVIDIA 的 CUDA 官方发布网站(截至 2017 年 11 月,CUDA9 已发布):https://developer.nvidia.com/cuda-downloads。

    在您的 Linux 发行版下,选择runfile (local)选项。 请注意,安装说明中出现的sudo 指示具有欺骗性,因为可以在没有root 权限的情况下运行此安装程序。在服务器上,一种简单的方法是复制Download 按钮的<LINK>,然后在主目录的任何位置运行wget <LINK>。它将下载<INSTALLER> 文件。

    运行chmod +x <INSTALLER>使其可执行,然后执行./<INSTALLER>

    accept EULA,say no to driver 安装,并在您的主目录下输入<CUDA> 位置以安装工具包,并输入<CUDASAMPLES> 用于示例。

    此处未询问但推荐:从official web 下载兼容的 CUDNN 文件(您需要登录)。就我而言,我将与 CUDA9 兼容的 cudnn-9.0-linux-x64-v7.tgz 下载到 <CUDNN> 文件夹中。解压:tar -xzvf ...

    可选:编译示例。 cd <CUDASAMPLES> && make。那里有一些很好的例子,也是写一些CUDA scripts of yourself的一个很好的起点。

    (如果你做了 5.):将所需文件从 <CUDNN> 复制到 <CUDA>,并授予用户读取权限(不确定是否需要):

cp -P <CUDNN>/cuda/include/cudnn.h <CUDA>/include/
cp -P <CUDNN>/cuda/lib64/libcudnn* <CUDA>/lib64
chmod a+r <CUDA>/include/cudnn.h <CUDA>/lib64/libcudnn*
    将库添加到您的环境中。这通常是在您的 ~/.bashrc 文件中添加以下两行(在此示例中,&lt;CUDA&gt; 目录为 ~/cuda9/
export PATH=<CUDA>/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<CUDA>/lib64/

用于快速测试或 TensorFlow 用户

获得与 CUDA9 和 CUDNN7 兼容的 TensorFlow 的最快方法(以及一种非常快速的测试方法)是下载预编译的 wheel 文件并使用 pip install &lt;WHEEL&gt; 安装它。您需要的大多数版本都可以在mind's repo 中找到(非常感谢大家)。确认 CUDNN 也正常工作的最小测试涉及使用 tf.nn.conv2d

import tensorflow as tf
x = tf.nn.conv2d(tf.ones([1,1,10,1]), tf.ones([1,5,1,1]), strides=[1, 1, 1, 1], padding='SAME')
with tf.Session() as sess:
    sess.run(x) # this should output a tensor of shape (1,1,10,1) with [3,4,5,5,5,5,5,5,4,3]

在我的例子中,the wheel I installed 需要英特尔的 MKL 库,正如 here 所解释的那样。同样,从终端并且没有 root 用户,这是我安装库并让 TensorFlow 找到它的步骤(reference):

    git clone https://github.com/01org/mkl-dnn.git cd mkl-dnn/scripts &amp;&amp; ./prepare_mkl.sh &amp;&amp; cd .. mkdir -p build &amp;&amp; cd build cmake -D CMAKE_INSTALL_PREFIX:PATH=&lt;TARGET_DIR_IN_HOME&gt; .. make # 这需要一段时间
      make doc # 如果你有doxygen,可以选择这样做
    make test # 也需要一段时间 make install # installs into &lt;TARGET_DIR_IN_HOME&gt; 将以下内容添加到您的~/.bashrcexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:&lt;TARGET_DIR_IN_HOME&gt;/lib

希望这会有所帮助! 安德烈斯

【讨论】:

这很有效,因为您的机器已经安装了适当的驱动程序,而您只需要 CUDA 运行时库。如果未安装驱动程序,则无法运行程序。 没错,正如我一开始所说的,我只是想完成OP给出的信息和接受的答案。我会澄清的 在任何情况下,在没有 root 的情况下安装 CUDA 与运行 CUDA 是一项不同的任务,想要在没有 root 权限的现有驱动程序的机器上安装更新的 CUDA 版本是完全合法的...... 实际上,我想编辑它,但它已经存在,在第一句话中。我把它加粗,以免其他人感到困惑 @Tessaracter 我很高兴听到这个消息!【参考方案2】:

您可以通过以下命令使用 conda 进行安装。

conda install -c anaconda cudatoolkit

但您需要事先访问设备 (GPU)。

编辑:如果您在 anaconda 存储库中发现错误,请将存储库更改为经常更新的 conda-forge

conda install -c conda-forge cudatoolkit

【讨论】:

这只是库。没有包含,没有编译器,...【参考方案3】:

您可以安装 CUDA 并编译程序,但由于缺乏设备访问权限,您将无法运行它们。

【讨论】:

其实没关系

以上是关于无根安装 Cuda的主要内容,如果未能解决你的问题,请参考以下文章

cuda8.0怎么安装

win10安装cuda过程中出现提示“安装无法继续,有其它安装程序正在运行”

windows怎么查看cuda是不是安装成功

实验室cuda安装

linux 安装cuda 怎么禁用nouveau

保姆级教程Windows安装CUDA及cuDNN