[AWS] EC2 & GPU
Amazon Elastic Compute Cloud (Amazon EC2)
EC 2的使用
机型的选择
经验谈
Ref: Amazon EC2 实例类型
实践派
搭建网站:MediaWiki
压力测试:Siege
压力指标:内存使用;IO情况;Package情况;CPU使用情况;
In a nutshell
Web服务器,使用M4 or C3。
DB服务器,使用R4。
启动和登陆Linux服务器
实例的创建,请见:[AWS] Introductory Course & S3 Bucket
Putty on Windows需要将密钥转换下,导入再保存为.ppk文件。
在AWS上开启GPU使用之旅
三大派别
Nvidia:CUDA
Khronos Group:OpenCL
Microsoft:DirectCompute
两种GPU选择
G3系列,Tesla M60
P2系列,Tesla K80
EC2 Linux User data 的使用
Launch Linux with other configure.
通过脚本预安装nginx。
在 AWS EC2 上训练 Deep Learning 模型
一、选择 EC2 实例
三种型号
Amazon 提供的带有 GPU 的 EC2 实例有三种,分别是 P2 系列,P3 系列(高配)和 G3 系列(图形处理)。
P2 型号
P2 实例适用于通用 GPU 计算应用程序,特色如下:
- 高频 Intel Xeon E5-2686 v4 (Broadwell) 处理器
- 高性能 NVIDIA K80 GPU,每个配备 2496 个并行处理内核和 12GiB 的 GPU 内存
- 支持通过 GPUDirect™ 进行对等 GPU 通信
- 使用 Elastic Network Adapter (ENA) 提供增强型联网,在一个置放群组内实现高达 25Gbps 的聚合网络带宽默认为 EBS 优化型,无额外收费
申请限制查看
使用权限
一般账户中 P2,P3,G3 系列实例的限制数目都是 0。
需要专门向 amazon 申请才能获得使用资格。申请页面在这里: http://aws.amazon.com/contact-us/ec2-request
使用个数权限
可以在这个页面(http://aws.amazon.com/contact-us/ec2-request) 提交工单,申请改变某种实例的限制数目。
二、Deep Learning AMI
确定了 EC2 实例的系列和型号并且确认自己账户下这种实例的限制数目大于 0 之后,就可以选择适合深度学习用的虚拟机镜像了(Deep Learning Amazon Machine Images, 后面简称 DLAMI)。
DLAMI 其实就是包含了操作系统、显卡驱动以及深度学习需要的各种软件环境的一个安装盘。用安装盘(DLAMI)在机器(EC2 实例)上安装系统。
三种安装方式
Deep Learning AMI with Conda
用 Anaconda 安装了各个深度学习框架,每个框架单独在一个 Python 的虚拟环境中,互不干扰。
* 各个 DL 框架是分离的,并且非常容易切换;
Deep Learning AMI with Source Code
各个框架通过源码安装,都装在同一个环境中,没有划分虚拟环境。
* 适合于那些需要改框架源码的人
以上两种支持如下几种深度学习框架:• Apache MXNet • Caffe • Caffe2 • CNTK • Keras • PyTorch • TensorFlow • Theano • Torch
Deep Learning Base AMI
没有安装深度学习框架,只安装了 NVIDIA CUDA 和其他依赖程序。你需要自己安装 Python 的各种模块,机器学习的框架等等。
* 适合于那些 fork 了某个深度学习项目,做了改进,并想自己构建最新版本的人。
最终选型
方便起见,我们选择 Deep Learning AMI (Ubuntu) with Conda 这个虚拟机镜像。
三、开始创建
选择实例类型
设置最小存储
p2.xlarge 需要的最小存储是 75G(系统安装之后大约是 50G,包括系统自带的一些样例代码,各种框架的软件等),所以这里我们直接按照默认配置,75G。
SSH连接
ssh 登录之后会显示如下画面,告诉你如何进入各种机器学习框架的虚拟 Python 环境。
=============================================================================
__| __|_ )
_| ( / Deep Learning AMI (Ubuntu) Version 12.0
___|\___|___|
============================================================================= Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-1062-aws x86_64v) Please use one of the following commands to start the required environment with the framework of your choice:
for MXNet(+Keras2) with Python3 (CUDA 9.0 and Intel MKL-DNN) _______________________________ source activate mxnet_p36
for MXNet(+Keras2) with Python2 (CUDA 9.0 and Intel MKL-DNN) _______________________________ source activate mxnet_p27
for TensorFlow(+Keras2) with Python3 (CUDA 9.0 and Intel MKL-DNN) _____________________ source activate tensorflow_p36
for TensorFlow(+Keras2) with Python2 (CUDA 9.0 and Intel MKL-DNN) _____________________ source activate tensorflow_p27
for Theano(+Keras2) with Python3 (CUDA 9.0) _______________________________________________ source activate theano_p36
for Theano(+Keras2) with Python2 (CUDA 9.0) _______________________________________________ source activate theano_p27
for PyTorch with Python3 (CUDA 9.0 and Intel MKL) ________________________________________ source activate pytorch_p36
for PyTorch with Python2 (CUDA 9.0 and Intel MKL) ________________________________________ source activate pytorch_p27
for CNTK(+Keras2) with Python3 (CUDA 9.0 and Intel MKL-DNN) _________________________________ source activate cntk_p36
for CNTK(+Keras2) with Python2 (CUDA 9.0 and Intel MKL-DNN) _________________________________ source activate cntk_p27
for Caffe2 with Python2 (CUDA 9.0) ________________________________________________________ source activate caffe2_p27
for Caffe with Python2 (CUDA 8.0) __________________________________________________________ source activate caffe_p27
for Caffe with Python3 (CUDA 8.0) __________________________________________________________ source activate caffe_p35
for Chainer with Python2 (CUDA 9.0 and Intel iDeep) ______________________________________ source activate chainer_p27
for Chainer with Python3 (CUDA 9.0 and Intel iDeep) ______________________________________ source activate chainer_p36
for base Python2 (CUDA 9.0) __________________________________________________________________ source activate python2
for base Python3 (CUDA 9.0) __________________________________________________________________ source activate python3 Official Conda User Guide: https://conda.io/docs/user-guide/index.html
AWS Deep Learning AMI Homepage: https://aws.amazon.com/machine-learning/amis/
Developer Guide and Release Notes: https://docs.aws.amazon.com/dlami/latest/devguide/what-is-dlami.html
Support: https://forums.aws.amazon.com/forum.jspa?forumID=263
============================================================================= * Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud 38 packages can be updated.
0 updates are security updates.
所以,根据上面的提示信息可以看出,不同机器学习框架都被安装成了一个 Python 虚拟环境,想进入某个虚拟环境,例如 tensorflow Python 3.6 环境,只需执行:
source activate tensorflow_p36
退出某个虚拟环境:
source deactivate
查看GPU硬件信息
nvidia-smi
# 每两秒运行一次,刷新数据
watch -n 2 nvidia-smi
四、训练机器学习模型
启用TensorFlow环境
首先进入 tensorflow_p36
环境.
source activate tensorflow_p36
首次执行大约需要 1 分钟时间,安装 tensorflow-gpu。
这里貌似 Amazon 的 AMI 有个问题,上面自动安装 tensorflow 模块之后,运行 python 程序却报告找不到 tensorflow。需要手动再安装一次:
pip install tensorflow-gpu
运行 CNN 测试程序
上传模型并训练
程序打包在文件 cnn_cifar.tgz
中,上传到 EC2 实例:
scp cnn_cifar.tgz awsp2:/home/ubuntu/
拷贝实验结果
运行过程中或者运行结束之后,可以把数据打包之后通过 scp 命令传回本地。
End.
[AWS] EC2 & GPU的更多相关文章
- AWS EC2首次使用VPS
看到AWS有免费一年的试用期,就申请了一个账号.想搭建一个自己的网站.申请之前,你还需要有一张信用卡. 申请AWS账号,登陆控制台 进入AWS官网即可申请账号,进入控制台后,就可以新建一个AWS EC ...
- Amazon AWS EC2开启Web服务器配置
在Amazon AWS EC2申请了一年的免费使用权,安装了CentOS + Mono + Jexus环境做一个Web Server使用. 在上述系统安装好之后,把TCP 80端口开启(iptable ...
- 在NodeJS中配置aws ec2
获取access key和secret access key 自己账户下有security credentials的选项 然后点击Acce ...
- 在aws ec2上使用root用户登录
aws ec2默认是使用ec2-user账号登陆的,对很多文件夹是没有权限的.如何使用root账号执行命令就是一个问题了.解决办法如下: 1.根据官网提供的方法登录连接到EC2服务器(官网推荐wind ...
- AWS EC2笔记
朋友想搭一个境外网站,找我帮忙,希望服务器.域名都在境外.我没有在境外建站的经历,只能先尝试.于是上网搜索了一下境外服务器,大家比较常用的是Digital Ocean和AWS,我索性打开这两家的官网, ...
- 亚马逊AWS EC2云实例AMI安装LNMP环境(3)——Mysql5.5
概括:这里选择亚马逊EC2的Linux AMI实例,该Linux服务器是亚马逊预配置的Linux环境,内置多个YUM源,属于亚马逊首推的稳定Linux服务器.默认登录用户名为ec2-user,执行ro ...
- 亚马逊AWS EC2云实例AMI安装LNMP环境(2)——PHP5.6
概括:这里选择亚马逊EC2的Linux AMI实例,该Linux服务器是亚马逊预配置的Linux环境,内置多个YUM源,属于亚马逊首推的稳定Linux服务器.默认登录用户名为ec2-user,执行ro ...
- 亚马逊AWS EC2云实例AMI安装LNMP环境(1)——Nginx安装
概括:这里选择亚马逊EC2的Linux AMI实例,该Linux服务器是亚马逊预配置的Linux环境,内置多个YUM源,属于亚马逊首推的稳定Linux服务器.默认登录用户名为ec2-user,执行ro ...
- AWS EC2服务器的HTTPS负载均衡器配置过程
AWS EC2服务器配置负载均衡器步骤: 1.普通负载均衡器 至少两台EC2实例,这里以Centos6.7系统为例 启动之后先安装个apache的httpd服务器默认80端口,或者使用其他服务 ...
随机推荐
- Jesus Is Here[递推]2015沈阳online
题目链接https://nanti.jisuanke.com/t/41175 自从百度之星初赛一上自己做出来一道打表找规律的题之后,这种膨胀的感觉让我近乎丧失理智,今天这道题我死死盯了两三个小时硬是没 ...
- Hexo+Github: 博客网站搭建完全教程(看这篇就够了)
本篇教程首次发布在个人博客:sunhwee.com,想要获得最佳阅读体验,欢迎前往,建议用电脑查看教程文档. # 阅读须知 注意,这篇文章篇幅较长,主要针对新手,每一步很详细,所以可能会显得比较啰嗦, ...
- js加密后台加密解密以及验证码
该文档为转载内容: 加密解密 1 前端js加密概述 2 前后端加密解密 21 引用的js加密库 22 js加密解密 23 Java端加密解密PKCS5Padding与js的Pkcs7一致 验证码 1 ...
- Redis学习总结(四)--Redis主从配置
在分布式系统架构设计中高可用是必须考虑的因素之一.高可用通常是指,通过设计减少系统不能提供服务的时间.而单点是系统高可用的最大的败笔,如果单点出现问题的话,那么整个服务就不能使用了,所以应该尽量在系统 ...
- 从0系统学Android-2.5更多隐式Intent用法
本系列文章,参考<第一行代码>,作为个人笔记 更多内容:更多精品文章分类 从0系统学Android-2.5更多隐式Intent用法 上一节中我们学习了通过隐式 Intent 来启动 Act ...
- FZU 2235
中文题,题意略. 这个题点少坐标范围大,直接离散化后建图搞. 这个题目卡vector,真是一脸懵逼............ #include<stdio.h> #include<st ...
- Leetcode之广度优先搜索(BFS)专题-详解429. N叉树的层序遍历(N-ary Tree Level Order Traversal)
Leetcode之广度优先搜索(BFS)专题-429. N叉树的层序遍历(N-ary Tree Level Order Traversal) 给定一个 N 叉树,返回其节点值的层序遍历. (即从左到右 ...
- JVM内存分配及String常用方法
一,JVM内存分配和常量池 在介绍String类之前,先来简单分析一下在JVM中,对内存的使用是如何进行分配的.如下图所示(注意:在jdk1.8之后便没有方法区了): 如上JVM将内存分为 ...
- Asp.net MVC 集成AD域认证
1.首先WebApi 应用下Web.config要配置域认证服务器节点,如下 <!--LDAP地址 用于项目AD系统账号密码验证--> <!--0:关闭域认证:1:开启域认证--&g ...
- 基本图像操作和处理(python)
基本图像操作和处理(python) PIL提供了通用的图像处理功能,以及大量的基本图像操作,如图像缩放.裁剪.旋转.颜色转换等. Matplotlib提供了强大的绘图功能,其下的pylab/pyplo ...