--> -->

Ubuntu18.04离线安装cuda驱动,cuda,cudnn,docker和nvidia-docker2

近来接手一个项目,服务器没有外网,还缺少一堆基础工具,离线安装相关依赖十分头疼。在此两篇博客记录一下此次经历。

各部件的依赖如下:

Nvida-docker 需要 CUDA驱动,安装完驱动安装CUDA,安装CUDA需要GCC编译库和make,pytorch需要CUDNN。

有关GCC依赖与make工具安装,请看另一篇博客。

1.离线安装CUDA驱动

lspci | grep -i vga

显卡型号查询

1.官网下载对应的驱动文件
https://www.nvidia.cn/Download/index.aspx?lang=zh-cn
2.下载完是.run文件,先添加权限
sudo chmod 777 文件名
3.然后运行
sudo sh xxxxx.run
sudo sh xxxxx.run --no-opengl-files –no-x-check –no-nouveau-check

–no-opengl-files 只安装驱动文件,不安装OpenGL文件。这个参数最重要
–no-x-check 安装驱动时不检查X服务
–no-nouveau-check 安装驱动时不检查nouveau
后面两个参数可不加。若报错说明不认识这两个参数,那就不需要添加了

4.几个选项
如果在装的过程中出现以下信息,请选择:
The distribution-provided pre-install script failed! Are you sure you want to continue?
选择 yes 继续。
Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?
选择 No 继续。
Nvidia’s 32-bit compatibility libraries?
选择 No 继续。
Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.
选择 no 继续

还有一些需要这样安装,不同版本对应不同的安装过程,但是大同小异:

1)Accept License

2)The distribution-provided pre-install script failed! Are you sure you want to continue? -> CONTINUE INSTALLATION

3)Install NVIDIA's 32-bit compatibility libraries? ->YES

4) An incomplete installation of libglvnd was found. Do you want to install a full copy of libglvnd? This will overwrite any existing libglvnd libraries.-> Install and overwrite existin

4) Would you like to run the nvidia-xconfig utility? -> YES
5.验证
nvidia-smi

2.离线安装CUDA11.4.1

CUDA历史版本地址

1.下载文件

可以在别的有网的服务器下载好,移过去。或者下载百度云文件

wget https://developer.download.nvidia.com/compute/cuda/11.4.1/local_installers/cuda_11.4.1_470.57.02_linux.run

备注一个10.2的连接

wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run

百度云文件(CUDA11.4.1)

链接:https://pan.baidu.com/s/1C-DzmjWLbKJROo88p75YeQ?pwd=3pqd 
提取码:3pqd 
2.运行此文件(CUDA11.4.1)
sudo sh cuda_11.4.1_470.57.02_linux.run

运行界面如下,这里的“x”是指安装的意思。把第一个驱动去掉,然后选择Install即可。

注意!!!!,如果报错缺少诸如GCC这种依赖,请看另一篇博客

如果报错如下,说明内核有问题,换个版本的CUDA,比如10.2

3.配置环境

编辑 ~/.bashrc 文件

export PATH=/usr/local/cuda-11.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH
4.使环境变量生效
source ~/.bashrc
5.验证是否成功
nvcc --version
nvcc -V

3.离线安装CUDNN

1.官网下载对应CUDA版本的CUDNN
developer.nvidia.com/rdp/cudnn-archive


选上面那个,下面的我安装没效果,以后再验证原因吧

2.解压文件
sudo tar -zxf 压缩包名
3.移动文件

解压完是个cuda的夹

我把cuda/include/ 和lib64两个夹里的所有文件全移动到/usr/local/cuda-11.4 那边去了

cd cuda/include
sudo cp ./* /usr/local/cuda-11.4/include/
cd cuda/lib64
sudo cp ./* /usr/local/cuda-11.4/lib64/
sudo chmod 777 /usr/local/cuda-11.4/include/cudnn.h
sudo chmod 777 /usr/local/cuda-11.4/lib64/libcudnn*
4.验证安装

旧版本是这样的,但是新版本会无效

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

实际应该是这样的

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

出东西就成功了,没截图。

4.离线安装Docker

deb包安装(推荐)

下载网址搜索docker即可

1.下载百度云文件
链接:https://pan.baidu.com/s/1XpqB7ceYIux2J8MV1O09Bw?pwd=1fmv 
提取码:1fmv 
2.安装docker18.06-ce(这个版本太低了,推荐下载更高版本)
sudo dpkg -i docker-ce_18.06.0~ce~3-0~ubuntu_amd64.deb

然后就安装成功了~

对着下面的攻略中的守护进程开机启动就好了。

有多次输密码,输就完事了。

tar包安装(不推荐)

1.下载百度云文件
链接:https://pan.baidu.com/s/1lyD8Rix5LbQSZksyswrsJQ?pwd=4e3d 
提取码:4e3d 
2.解压文件docker-20.10.8.tgz
tar -zxf docker-20.10.8.tgz
3.将docker 相关命令拷贝到 /usr/bin,方便直接运行命令
sudo cp docker/* /usr/bin/

注意:你可能会碰到无法重启守护程序的问题,所以去这里

/var/run/docker.pid

打开文件查看现在的进程号

sudo kill -9 进程号

这个文件一般不需要我们手动删除,但如果无法重启守护程序,就需要如此操作。

4.创建此文件sudo vi /usr/lib/systemd/system/docker.service
cd /usr/lib/systemd/system
sudo vi docker.service

内容如下:

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
 
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target

注意,此文件地址存在争议性,我写下另一种方式,没碰到问题的话忽略这一条,碰到了再看看这个

vim /etc/systemd/system/docker.service

然后赋予执行权能

chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
5.启动Docker守护程序(不kill掉上面提到的的进程可能会失败)
sudo dockerd &
6.启动 / 停止 docker 服务
systemctl start/stop docker
7.开机自启/取消开机自启 docker 服务
systemctl enable/disable docker
8.检验docker 安装
docker version

注意,此命令可能伴随一些报错或警告,可能是权限问题,去找到对应文件给予权限即可

sudo chmod -R 777 文件名

5.离线安装Nvidia-Docker2

1.百度云文件
链接:https://pan.baidu.com/s/1dKPXx5xozACI5WGkTb06og?pwd=nv5d 
提取码:nv5d 
2.依次按照命令安装
sudo dpkg -i libnvidia-container1_1.2.0-1_amd64.deb
sudo dpkg -i libnvidia-container-tools_1.2.0-1_amd64.deb
sudo dpkg -i nvidia-container-toolkit_1.2.1-1_amd64.deb
sudo dpkg -i nvidia-container-runtime_3.3.0-1_amd64.deb
sudo dpkg -i nvidia-docker2_2.4.0-1_all.deb
sudo systemctl restart docker
3.验证

找个镜像,进去nvidia-smi就可以了

sudo docker run -it --gpus all xxxxxxx /bin/bash

但我装的docker版本太低了,所以用以下方法

sudo nvidia-docker run -it xxxxx /bin/bash
posted @ 2023-07-26 16:11  柠鸢  阅读(2389)  评论(0编辑  收藏  举报