ubuntu18.04从零开始离线搭建基于docker的pytorch环境
任务需要搭建一个pytorch环境调用gpu资源,离线环境,踩坑无数,特地写下此文以备后用。
整体流程
一、安装nvidia驱动
二、安装docker
三、安装nvidia-docker
四、运行pytorch
除离线环境外,需一台联网ubuntu主机进行部分配置及安装包下载,以下步骤可先在联网主机上进行一次,再将安装包拷到离线主机上再进行一次,其中带*符号的步骤在离线主机上必须进行。
文中涉及的所有deb安装包:docker、nvidia-docker、gcc、make、build-essential离线包.zip - CSDN下载
配置apt国内镜像源
若联网主机未修改apt镜像源,又不具备科学上网的条件,下载时速度将会非常令人感动:
-
备份sources.list(Ubuntu恢复文件很复杂,尽量避免直接删除系统文件):
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
-
修改sources.list:
sudo gedit /etc/apt/sources.list
替换阿里云镜像源:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
-
更新
sudo apt update
一、安装nvidia驱动
(一)禁用nouveau*
nouveau是ubuntu自带的驱动,如果不禁用可能会导致nvidia驱动装不上。
-
创建blacklist-nouveau.conf文件:
sudo tee /etc/modprobe.d/blacklist-nouveau.conf << EOF blacklist nouveau options nouveau modeset=0 EOF
也可以直接用编辑器打开blacklist-nouveau.conf文件,写入两个EOF之间的内容。
-
更新配置
sudo update-initramfs -u sudo reboot
重启后建议进入bios,部分教程提到,为避免secure boot可能造成的驱动安装失败,应进入bios将secureboot禁用/disable(仅作为安装失败时的参考,作者就没有设置,也不影响),设置完毕后再验证禁用是否生效。
-
验证
若nouveau禁用成功,开机后分辨率会发生变化,不放心可以执行以下命令确认:lsmod | grep nouveau
执行后若没有任何输出则表示禁用成功。
(二)离线安装编译环境gcc、make、build-essential*
离线安装nvidia驱动,通过官网下载.run文件后手动安装(需要gcc、make、build-essential等环境)
其实离线安装gcc、make、build-essential需要下载的依赖很多,只不过作者将所需的依赖都列出来了,不需要一一去找(附:gcc、make、build-essential离线安装及依赖-CSDN下载):
下载前可先执行gcc、make查看是否其已安装。
g