상세 컨텐츠

본문 제목

AWS EC2 g4dn (2xlarge) 정보와 한계점

머신러닝 딥러닝/Tools

by 힐둔 2021. 12. 31. 10:57

본문

Deep learning 모델을 돌릴 일이 있어서 개인 Notebook PC로 돌리다가 시간의 압박으로 AWS EC2 (g4dn.2xlarge) 환경에서 돌려봤는데, 학습 속도가 180초에서 18초로 1/10 가량 줄어드는 신세계를 경험했습니다. 다만 notebook PC는 GPU가 내장이라 CPU로만 돌렸고, AWS EC2에서는 별다른 설정을 하지 않았기에 GPU로 학습된 결과 입니다.

 

AWS g4dn에 대한 정보는 다음과 같습니다.

https://aws.amazon.com/ko/ec2/instance-types/g4/

 

2xlarge는 GPU로 NVIDIA Tesla T4를 1개 사용 합니다. 그 외 자세한 사양은 아래와 같습니다.

참, AWS EC2 g4dn의 경우 무료가 아닙니다. 아래처럼 시간당 0.752 USD, 하루에 18.048 USD, 한달에 541.44 USD 입니다. 현재 환율로 한달에 65 만원 가량 지불을 해야 합니다. 비싸네요.

 

https://aws.amazon.com/ko/ec2/pricing/on-demand/

 

 

 

문제는 사실 이런 큰 비용(?)을 지불하고 사용을 해도 GPU가 하나밖에 없어서 데이터가 많은 모델을 CNN으로 돌리는 경우 메모리 부족으로 jupyer notebook의 kerel이 죽는 경우가 있었습니다. 금요일에 기분좋게 돌려놓고 월요일 출근해서 보니 멈춰 있었네요. 시간과 비용이 모두 날라가 버리는 안타까운 일이었습니다.

 

일주일간의 삽질 끝에 결론은 아래의 코드를 이용해서 CPU로만 돌리기로 했습니다. CPU로만 돌려도 180초에서 30초 정도로 1/6 정도 가량 줄어들긴 하지만 비용대비 훌륭한 방법은 아니었습니다.

os.environ['CUDA_VISIBLE_DEVICES'] = '-1'

 

사용했던 tesnorflow와 optuna (Hyper parameter tuning) 버전은 아래와 같았습니다.

TensorFlow 2.3.4
Optuna 2.10.0

 

AWS EC2 g4dn.2xlage을 사용하고 Amazon Machine Image(AMI)을 사용했기에 conda로 아래와 같은 환경이 이미 구축되어 있었습니다. 저희는 선택해서 사용하면 되는데, 제가 사용한 것은 아래와 같습니다. 일단은 이용할 수 밖에 없긴 하지만 자체 서버를 구축해야 할지 말지 고민이 되는 부분입니다. 한정된 시간 내에서 Deep Learning model을 제대로 돌리려면 비싼 환경이 우선 구축이 되어야 할 것 같아 씁쓸합니다.

 

 

 

관련글 더보기

댓글 영역