【Linux】如何不借助 root 权限安装 CUDA?

咱们能不能作到不借助 root 权限给 Linux 系统安装 CUDA?bash

答案是有可能的,可是“丑话说在前面”,显卡驱动须要比较新才行。服务器

那么咱们为何会有这种奇怪的需求呢?一种可能的状况是,服务器由于不一样的人使用的版本不同的缘由,没法轻易改动 CUDA 的版本。可是咱们做为普通用户,又想使用新版的 CUDA(而更新驱动通常不会对其余用户产生影响,除非他们正在占用显卡)。那么该怎么作呢?工具

安装 CUDA

拿目前最新的版本 CUDA 10.2 为例。首先,咱们在 NVIDIA 官网找到 CUDA 下载连接,选择 runfile:测试

下载好的文件咱们简称为 cuda.run。下载完毕以后,运行安装工具。运行这个文件有两种方法。任选其一便可。spa

# 方法一:修改文件属性,使其能够运行
chmod +x cuda.run
./cuda.run
# 方法二:直接 sh
sh cuda.run

运行安装工具后,首先是接受 EULA:3d

若是是旧版本(好比 9.x)的 CUDA,阅读 EULA 的界面会特别长。这里的一个小技巧是,不要按住回车键,而是按住空格键来进行跳过code

这里咱们不要安装驱动(Driver),由于驱动必定须要 root 才可以安装。一旦选择,一定会安装失败。咱们能够移动光标到这些不须要的项目,而后按下Enter取消勾选:blog

除了 Toolkit 之外,下面的几个其实也不须要。能够根据状况选择安装(好比能够安装 Samples,后续测试 CUDA 以及 cuDNN 是否安装成功)。这里我选择的是仅安装 Toolkit。get

接下来咱们的任务,就是修改安装路径到本身的 home 下。默认状况下,it

  • CUDA 会被安装在:/usr/local/cuda-10.2/
  • Library 会被安装在:/usr/local/cuda-10.2/lib64/

因此咱们要对这两个进行修改。打开 Options。若是不安装 Driver 和 Samples,那么这两个不用管。不然也须要修改他们的安装位置。打开 Toolkit Options,而后 Change Toolkit Install Path,修改成/home/<username>/cuda-10.2/

而后 Done,返回上一级,再选择 Library install path:

并将安装目录修改成:/home/<username>/cuda-10.2/lib64/。若是是 9.x 版本的 CUDA,一旦在前面安装了 CUDA 本体的安装位置,那么 library 的位置会自动变成本体安装目录下的 lib64

而后就能够开始安装了。

安装完毕以后,须要配置一下 .bashrc,在其下方添加:

export PATH=/home/<username>/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/<username>/cuda-10.2/lib64/

保存后运行一下 source .bashrc,就能够用 nvcc -V 试试有没有安装成功了。

安装 cuDNN

咱们还能够考虑安装 cuDNN。官网下载须要注册并登陆:https://developer.nvidia.com/cudnn

下载完 .tar.gz 以后,能够用 tar -zxvf 解压缩,而后将里面的文件拷贝到 CUDA 安装目录下的指定位置便可。具体为:

cp <CUDNN>/cuda/include/cudnn.h <CUDA>/include/
cp <CUDNN>/cuda/lib64/libcudnn* <CUDA>/lib64
chmod a+r <CUDA>/include/cudnn.h <CUDA>/lib64/libcudnn*

到此,CUDA 10.2 与 cuDNN 安装完毕。

可是,有比较大的可能会由于你安装的 CUDA 版本太新,而服务器上的显卡驱动又太旧了(好比是 CUDA 9.0 安装包自带的驱动),那么仍旧是没有办法正常使用的(好比使用 GPU 版的 PyTorch)。想要真正能用,仍是要说服管理员将服务器的驱动进行更新。可是能够放心的是,更新了驱动以后,旧版本的 CUDA 依旧是能够用的。

(这篇文章的方法借鉴自:Install Cuda without root - Stack Overflow

相关文章
相关标签/搜索