ubuntu非root用户安装cuda10.1和cudnn

查询驱动版本

nvidia-smi

发现我的驱动版本是430,根据NVIDIA官网的指南只能安装cuda10.1

查看架构

$ uname -a
Linux gpu011 4.2.0-42-generic #49~14.04.1-Ubuntu SMP Wed Jun 29 20:22:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

$ cat /proc/version
Linux version 4.2.0-42-generic (buildd@lgw01-55) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #49~14.04.1-Ubuntu SMP Wed Jun 29 20:22:11 UTC 2016

下载 cuda

进入NVIDIA 官网(用梯子快一点),下载cuda10.1的runfile(local)文件。

# 14.04
wget https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run


# 16.04
wget https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run

# 18.04
wget https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run

安装 cuda

仅安装Toolkit(由于非root用户安装过程会大量报错,这里选择静默安装,且一定要安装在自己的HOME内,这里我们安装在$HOME/opt/cuda_10.2文件夹下)

注意,不用安装driver,因为已经装好了,而且要root才可以装,所以只需要安装toolkit就好了

在使用 Anaconda 安装 Pytorch 深度学习框架时,可以发现 Anaconda 会自动为我们安装 cudatoolkit.

上述安装的 cudatoolkit 与通过 Nvidia 官方提供的 CUDA Toolkit 是不一样的。具体而言,Nvidia 官方提供的 CUDA Toolkit 是一个完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。使用 Nvidia 官网提供的 CUDA Toolkit 可以安装开发 CUDA 程序所需的工具,包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。上述 CUDA Toolkit 的具体组成可参考 CUDA Toolkit Major Components.

实际上,Nvidia 官方提供安装的 CUDA Toolkit 包含了进行 CUDA 相关程序开发的编译、调试等过程相关的所有组件。但对于 Pytorch 之类的深度学习框架而言,其在大多数需要使用 GPU 的情况中只需要使用 CUDA 的动态链接库支持程序的运行( Pytorch 本身与 CUDA 相关的部分是提前编译好的 ),就像常见的可执行程序一样,不需要重新进行编译过程,只需要其所依赖的动态链接库存在即可正常运行。故而,Anaconda 在安装 Pytorch 等会使用到 CUDA 的框架时,会自动为用户安装 cudatoolkit,其主要包含应用程序在使用 CUDA 相关的功能时所依赖的动态链接库。在安装了 cudatoolkit 后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,而不需要安装完整的 Nvidia 官方提供的 CUDA Toolkit .

参考链接

# 给权限
chmod +x cuda_10.1.243_418.87.00_linux.run

bash ./cuda_10.1.243_418.87.00_linux.run --toolkit --toolkitpath=$HOME/cuda_10.1 --defaultroot=$HOME/cuda_10.1

官网的 cuda10.1有三种版本,最开始是用了

CUDA Toolkit 10.1 (Feb 2019), Online Documentation

我在181安装的时候很正常,但是在188中途会出现 段错误,在246会出现其他错误

改用了最新的 CUDA Toolkit 10.1 update2 (Aug 2019), Versioned Online Documentation

就正常了。

在这里插入图片描述

在这里插入图片描述

安装成功,显示

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /home/lirong/cuda_10.1/
Samples:  Not Selected

# path
Please make sure that
 -   PATH includes /home/lirong/cuda_10.1/bin
 -   LD_LIBRARY_PATH includes /home/lirong/cuda_10.1/lib64, or, add /home/lirong/cuda_10.1/lib64 to /etc/ld.so.conf and run ldconfig as root

# uninstall
To uninstall the CUDA Toolkit, run cuda-uninstaller in /home/lirong/cuda_10.1/bin

Please see CUDA_Installation_Guide_Linux.pdf in /home/lirong/cuda_10.1/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 418.00 is required for CUDA 10.1 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run --silent --driver

Logfile is /tmp/cuda-installer.log

修改环境变量

vim $HOME/.bashrc

添加代码

export PATH=$HOME/cuda_10.1/bin:$PATH
export LD_LIBRARY_PATH="$HOME/cuda_10.1/lib64/"
export CUDA_ROOT=$HOME/cuda_10.1/
export CUDA_TOOLKIT_ROOT=$HOME/cuda_10.1/lib64/
export CMAKE_CUDA_COMPILER=$HOME/cuda_10.1/bin/nvcc
source ~/.bashrc

查看 nvcc -V

$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Fri_Feb__8_19:08:17_PST_2019
Cuda compilation tools, release 10.1, V10.1.105

是10.1 版本的cuda 没错了。


下载 cudnn

对应cuda10.1的cudnn如下

官网下载地址

选择 Download cuDNN v8.0.5 (November 9th, 2020), for CUDA 10.1

然后 cuDNN Library for Linux (x86)

因为下载cudnn是需要登录的,所以不便用wget下载,在自己电脑上下载后,再传到服务器上。

解压cudnn

下载完 cuDNN,可能发现后缀是 .solitairetheme8,直接将这个后缀改成 .tgz 即可解压。

tar -zxvf cudnn-10.2-linux-x64-v8.0.0.39.tgz

解压后发现cudnn总共分两个目录

复制文件到CUDA安装目录

复制 cuDNN 文件到 CUDA 安装目录:

(cuDNN 解压到 ~/cuda 目录了,~/cuda-9.1 为自己设定的 CUDA 安装目录,~ 代表 /home/x007jianjian)

cp cuda/include/cudnn.h ~/cuda_10.1/include/
cp cuda/lib64/lib* ~/cuda_10.1/lib64/

# 并且给所有用户添加读的权限
chmod a+r ~/cuda_10.1/include/cudnn.h ~/cuda_10.1/lib64/libcudnn*

cp cuda/include/cudnn* ~/cuda_10.1/include/

安装多版本cudnn,cuda

安装步骤同上述,需要哪个版本就把用户环境变量指向按个版本。


cudnn版本检测不到的问题

打开 cudnn.h 文件,发现

#if !defined(CUDNN_H_)
#define CUDNN_H_

#include <cuda_runtime.h>
#include <stdint.h>

#include "cudnn_version.h"
#include "cudnn_ops_infer.h"
#include "cudnn_ops_train.h"
#include "cudnn_adv_infer.h"
#include "cudnn_adv_train.h"
#include "cudnn_cnn_infer.h"
#include "cudnn_cnn_train.h"

#include "cudnn_backend.h"

#if defined(__cplusplus)
extern "C" {
#endif

#if defined(__cplusplus)
}
#endif

#endif /* CUDNN_H_ */

原来版本号在另一个文件里,但是我安装cudnn的时候只复制了 cudnn.h 没复制其他文件过来

cp cuda/include/cudnn* ~/cuda_10.1/include/

如果还是检测不到,就把 cudnn_version.h 里面的东西(如下)复制到cudnn.h里面

#ifndef CUDNN_VERSION_H_
#define CUDNN_VERSION_H_

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 5

#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#endif /* CUDNN_VERSION_H */
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值