在亚马逊AWS上面做深度学习

需要的工具:

一个AWS账号

一个深度学习项目文件

xshell

winscp

第一步 获取计算平台

www.amazonaws.cn  >  我的账户 >  AWS管理控制台 > 登录

需要 账号 IAM  密码这三样东西

进入管理控制台以后 我们使用竞价实例 所谓竞价事例有点像拍卖 价高者得 价格封顶就是专用实例的价格

竞价实例价格很便宜 最多能比专用实例便宜90% 所以会有很多人用 经常出现热门实例库存不足的情况

也有的时候会有400错误 这个是告诉你最大实例数溢出 要自己去支持中心解除限制 或者直接联系客服

在亚马逊AWS上面做深度学习_第1张图片

 

在亚马逊AWS上面做深度学习_第2张图片

这个Spot请求就是竞价实例 点击上方蓝色按钮 请求竞价型实例

一般选用 Flexible workloads 这个任务类型

启动模板不需要选择

》AMI 这个就是你设定的系统镜像 里面可以直接包含可用的深度学习环境

    点击使用自定义AMI 

     输入Ubuntu 选择社区AMI搜索

 找一个最新的版本 比如    Deep Learning AMI (Ubuntu) Version 21.2 - ami-01afdf7f09f511cf9 点击选择

》最小计算单位 选择作为实例类型 然后更改实例类型

 深度学习肯定需要GPU 所以在【所有实例类型】下拉菜单中选择GPU compute   

   其中P2类型指的是 Nvidia Tesla K80 它有11G显存 算力3.7

   p2.x的意思是1块K80

 p2.8x的意思是8块K80

   p2.16x的意思是16块K80

 注意K80不使用NVLink技术,所以显存无法累加,就是说显存不是互通的,跑模型是把数据分布到每个GPU中然后汇总结果的

 P3类型指的是Nvidia Tesla V100 它有16G显存 算力7.0

    p3.2x的意思是1块V100

 p3.8x的意思是4块V100

    p3.16x的意思是8块V100

   V100使用NVLink互联技术 所以可以做到互通显存 但是亚马逊并没有做到在逻辑上只有一块显卡和8*16G显存

 选一个适合你的然后点选择 注意价格和竞价存储 竞价存储越低说明实例储量越少

》网络 默认就好

》可用区 默认就好

密钥对名称 

  点击创建密钥对 >   然后创建一个新的密钥对 也就是输入一个名字 就可以下载一个秘钥文件

  回到竞价实例页面点那个刷新按钮 选择你刚刚创建的密钥对

》打开附加配置

 在安全组里面创建一个新的安全组 最好直接开放所有出站入站端口和流量 创建好后点击安全组刷新按钮 在你的安全组前面画个勾

最下面队列请求里面 

 取消右边的应用建议

 然后删除掉除了第一行之外的所有实例类型。有的时候你可能需要p2.8x或者p2.16x但是可能这个实例库存不足,这个时候就要在删除那些没用的实例类型后点击下面的选择实例类型 既然p2.8x p2.16x没有 就可以多选p2.x p2.8x p2.16x p3.2x p3,8x 或者 p3.16x扩大你的选择面 上面那个选择实例类型只能单选 但是这个可以多选

选择好之后点击最下面的启动

  第二部 连接实例&部署代码

在你成功申请到竞价实例后 这个地方可以看到实例信息

在亚马逊AWS上面做深度学习_第3张图片

找到下面的 公有DNS  后面的东西就是你要连接的ip 使用公有ip大概也可以连接上去 但是使用私有的一定不行

打开xshell 

主机那里填刚才找到的公有DNS 端口号22

用户身份验证里面 方法选择Public Key 用户名是ubuntu

如果你是CentOS系统就写centos

Debian我没用过 猜测一下应该差不多

用户秘钥点击浏览 导入你刚才下载那个秘钥文件

不需要填写密码 点击连接并保存一系列的认证信息

登录成功后

最好再新建一个标签还是连接这个实例 输入watch -n 0.1 -d nvidia-smi 监测显卡情况

因为我碰到过好多次开始显卡明明好好的 后面就怎么都找不到的情况

可能是所见即所得吧哈哈 看不见的东西就没有 使用这个命令后就可以一直与显卡保持可视状态

下面为了之后可以使用root账户登录和传输文件需要如下操作

首先

sudo passwd root

设置root账户的密码

然后 打开root登录权限

sudo sed -ri 's/^#?(PasswordAuthentication)\s+(yes|no)/\1 yes/' /etc/ssh/sshd_config

sudo sed -ri 's/^#?(PermitRootLogin)\s+(yes|no)/\1 yes/' /etc/ssh/sshd_config

sudo sed -ri 's/^/#/;s/sleep 10"\s+/&\n/' /root/.ssh/authorized_keys
sudo vi /etc/ssh/sshd_config

把其中的PermitRootLogin改为yes

:wq!保存

重启ssh服务:

sudo service sshd restart

下面导入文件 打开winscp 使用刚才的公有DNS和root已经你刚才设置的密码登录

把文件放在home -> ubuntu 这个文件夹里面 最好使用chmod -R 777 xxxx/命令开放权限

上传完毕以后 查看你第一次连接实例的时候刷出的那一坨环境信息

比如打开tensorflow环境就用 source activate tensorflow_p36

使用pytorch就用 source activate pytorch_p36

第一次运行这个命令要等几分钟 需要时间去安装

有什么不满意的地方可以自己改 反正就是个Anaconda 的虚拟环境

到这里准备阶段就已经全部结束了 如果你在AWS上面跑其他模型都是同样的方式

有的时候传文件过程中总是被AWS切断 不停的刷新会有帮助

第三步 运行模型

无非就是安装需要的包 然后开始训练

但是注意硬盘空间问题 一般只有75G 

然后不要关闭ssh 关了就全关了 训练的差不多了下载权重就行了

你可能感兴趣的:(在亚马逊AWS上面做深度学习)