AWS의 GPU를 이용한 TensorFlow
최근 실행해본 CNN
정도만해도 이제 CPU TensorFlow
로는 학습이 느린감이 있다.
이전에 학생 크래딧 받기를 참조해서 아마존으로 부터 $100
를 받아서 AWS EC2를 사용해 보자.
이전포스트
계정을 생성하고 EC2를 생성해보자.
아래와 같은 GPU
Instance 모델들이 존재 한다.
필자는 아래의 모델중 g2.8xlarge
를 선택 했다.
Instance를 생성 할 때 김성훈 교수님
께서 이미 EC2
를 공유해 주셨기 때문에 해당 Instance
를 카피해서 생성한다.AMI
라고해서 Amazon Machine Instance를 검색해서 찾을 수 있다.
아래의 이름으로 검색하면 된다.
- ami-9e39dcf3 (N. Virginia)
- ami-38f60658 (oregon)
그리고 생성 하려고하면 아마 limit
fail이 발생할 것이다.
고객센터가서 사용 목적을 적어서 이메일 보내면 30분내로 instance 갯수 허용이 늘어나고
생성할 수 있게된다.
인증키로 로그인 하기
putty로 접속을 하려면 key를 생성해야 합니다.
http://www.chiark.greenend.org.uk/~sgtatham/putty
PUtty key generator를 실행해야하므로 모든 관련 파일이 있는 putty.zip
을 다운 받아야 합니다.
PUTTYGEN
을 실행 합니다.Conversions
-> Import key
를 선택합니다.
EC2를 생성할 때 사용 했던 key를 이용해서 접속 key를 생성해야 합니다.
키를 로드하고 save private key
버튼을 눌러서 저장합니다.
EC2 키의 확장자는
pem
이고 PUTTYGEN에 의해서 생성한 키의 확장자는ppk
입니다.
Amazon EC2 관리자로가서 Public IP 주소를 확인 합니다.
Putty를 실행해서 IP 주소를 입력하고
오른쪽 창에서 SSH
-> Auth
로 이동합니다.Browse
버튼을 눌러서 생성한 Key를 선택합니다.open
버튼을 눌러서 접속 합니다.
각 EC2 Instance의 운영체제에 따라서 기본 사용자명이 다릅니다.
- Amazon Linux: ec2-user
- Red Hat Enterprise Linux: ec2-user
- SuSE Linux: root
- Ubuntu Linux: ubuntu
필자는 Ubuntu이므로 아이디는 ubuntu 이다.
아래와 같이 정상적으로 로그인 되는것을 알 수 있습니다.
MNIST set
을 가지고 CNN
모델을 트레이닝 하는것을AWS GPU
와 i7-cpu
에서 트레이닝 했을 때를 녹화한 것이다.
동영상은 아래의 유투브에서 볼 수 있다.
Youtube: https://youtu.be/-kQ4fm2fqcM
대략 5배~7배 정도 차이인것 같다.
K520 GPU가 4대 있는 EC2인데 생각보다 차이는 크지 않다.
최종 결과는 아래와 같다.
EC2
MNIST로 CNN 모델을 트레이닝 하는데 총 22분 4.040초 걸렸다.
i7 CPU
결론적으로 4.8배
차이이다.
'AI > TensorFlow, PyTorch, Keras, Scikit' 카테고리의 다른 글
Convolutional Neural Network (CNN) 구현 (4) | 2016.12.31 |
---|---|
Convolutional Neural Network (CNN) 이론 (1) | 2016.12.31 |
rpy2 Windows 10에 설치 하기 (0) | 2016.12.13 |
Python에서 rpy2를 이용한 ROjbect 불러오기 (3) | 2016.12.12 |
TensorFlow 기본 개념 (2) (0) | 2016.09.29 |