- linux系统只能读取4个分区,所以开始把所以的分区都安装在机械硬盘上失败勒
搭建目标
- windows7+Ubuntu18.04LTS双系统
- Ubuntu下安装docker,在docker上运行支持GPU的nvidia-docker
- 在docker下运行python3.6容器,容器内安装pytorch环境,使用pytorch调用GPU进行训练
- 能将容器打包,方便之后在其他环境下运行
一、安装Ubuntu18.04系统
制作安装系统的U盘
- 下载Rufus,根据网络教程制作安装U盘
压缩磁盘,给linux系统分区
- 在windows下压缩硬盘,SSD盘压缩10G,机械硬盘压缩70G,并且都是绿色(在linux是可用状态),如果是黑色,需要使用傲梅分区助手
重启计算机安装Ubuntu
- 插上U盘重启计算机,按F12从U盘启动,不要从EFI启动
- 根据提示进行安装,安装类型不要选择"安装Ubuntu,与windows7系统共存",选择最后一个“其他选项”
- 分区时在C盘分两个区:1-主分区,400MB,起始,Ext4日志文件系统,挂载/boot;2-逻辑分区,剩余10G,起始,交换分区,无挂载点;
- 机械硬盘分两个分区:1-逻辑分区,15G,起始,Ext4日志文件系统,挂载/;2-逻辑分区,剩余55G,起始,Ext4日志文件系统,挂载/home;
- 头几次安装全部放机械硬盘,出现问题,grub异常,无法正常启动,修复麻烦,就放了两个分区到SSD,会影响SSD运行速度,不管了;
用EasyBCD创建启动系统
- 重启计算机,创建新的启动项
以上完成双系统
二、安装docker和nvidia-docker
安装docker
- 配置docker源
# 更新源
$ sudo apt update
# 启用HTTPS
$ sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
# 添加GPG key
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加稳定版的源
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装时遇到报错:gpg: 找不到有效的 OpenPGP数据。解决办法
- 安装Docker CE
# 更新源
$ sudo apt update
# 安装Docker CE
$ sudo apt install -y docker-ce
- 配置nvidia-docker源
# 添加源
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
# 安装并重启docker
$ sudo apt update && sudo apt install -y nvidia-container-toolkit
$ sudo systemctl restart docker
- 验证nvidia-smi
# 在官方CUDA镜像上测试 nvidia-smi
$ sudo docker run --gpus all nvidia/cuda:9.0-base nvidia-smi
不能运行并展示GPU信息,需要安装NVIDIA驱动
安装NVIDIA驱动
- 有三种安装方法,推荐傻瓜式安装方法:使用Ubuntu软件仓库中的稳定版本安装,参考https://zhuanlan.zhihu.com/p/59618999
-
1.1查看显卡硬件型号:ubuntu-drivers devices
-
1.2 安装:sudo ubuntu-drivers autoinstall;也可以安装指定版本,我安装440。sudo apt install nvidia-droiver-440
-
1.3 安装时会很慢,要换源,参考https://blog.csdn.net/qq_33836092/article/details/105214331
-
1.4 重启设备sudo reboot
-
1.5 测试是否安装成功:nvidia-smi,如果打印如下信息就OK啦
-
再跑一下docker验证一下docker+nvidia docker+cuda镜像,如果也能打印gpu信息,则成功
$ sudo docker run --gpus all nvidia/cuda:9.0-base nvidia-smi
-
三、运行docker,安装pytorch环境
-
docker search pytorch可以查看可用的官方镜像,但是不方便看;在官方网站搜索更好
启动脚本
sudo docker run -itd -p 10022:25 -p 9090:9090 -v /home/yudh/pytorch:/root --gpus all nvidia/cuda:10.1-base /bin/bash
运行脚本
docker exec -it 容器名 /bin/bash
安装ssh服务:apt-get update | apt-get install openssh-server
创建root用户密码:passwd
修改配置文件/etc/ssh/sshd_config,将“#Port 22”改为“Port 25”;将“#PermitRootLogin without-password”改为"PermitRootLogin yes";然后使用命令/etc/initd.d/ssh restart
重启sshd服务;最后在其他端使用root用户ssh登录 -
安装pip3
apt-get install python3-pip
-
安装pytorch1.7GPU版本
https://pytorch.org/get-started/locally/
分别选择Stable(1.7.1)、linux、pip、python、10.1得到安装脚本:pip --default-timeout=1000 install --index-url https://mirrors.aliyun.com/pypi/simple torch==1.7.1+cu101 torchvision==0.8.2+cu101 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
-
验证pytorch是否能使用GPU
>>> import torch >>> torch.cuda.is_available <function is_available at 0x7fb961190ea0>
表示可以正常使用
-
安装torch依赖
安装前先换pip镜像源地址
Linux下,修改 ~/.pip/pip.conf (没有就创建一个文件夹及文件。文件夹要加“.”,表示是隐藏文件夹)
内容如下:[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host=mirrors.aliyun.com
安装依赖
pip install -r requirements.txt
启动保存镜像
sudo docker run -itd -p 10022:25 -p 9090:9090 -v /home/yudh/pytorch:/root --gpus all nvidia/cuda:10.1-base /bin/bash
docker exec -it 容器名 /bin/bash
/etc/initd.d/ssh restart