건프의 소소한 개발이야기

[AWS - GPU Instance] P2 인스턴스 사용하기 본문

개발 이야기/Machine Learning 이야기

[AWS - GPU Instance] P2 인스턴스 사용하기

건강한프로그래머 2017. 8. 4. 18:58

안녕하세요, 건프입니다. 


AWS EC2 인스턴스의 종류는 다양하며, 다양한 만큼 그 용도도 다양합니다.

EC2 인스턴스의 특징을 이해하고, 적정한 스펙의 적정한 가격으로 최고의 효율을 뽑아내는 능력이 AWS를 이용하는 개발자의 능력이라고 생각하는데요,

이는 경험치가 확실히 도움이 됩니다.


그 중 우리 Machine Learning, Deep Learning 을 하는 사람들에게 반가운 유형이 있습니다. 바로 GPU 가속환경을 지원해주는 g2, p2 instance 들이죠. 

사실 이들의 가격이 싼편은 아니기 때문에, 이것만 사용하면 딥러닝을 할 수 있다, 고 생각하지는 않습니다. 그만큼 처음 시작하는 사람들을 환경설정하는데 삽질을 많이 할 수 밖에 없으니까요.


다만, 이미 어느정도 환경설정에 익숙해진 사람의 입장에서는, 내 컴퓨터 학습만으로는 원하는 학습속도를 낼 수 없을때, 또는 여러가지 이유로 인해서 본인 컴퓨터자원을 사용하기 힘들경우에 유용합니다.




오늘 제가 기회가 있어서 사용해본 AWS P2 Instance 사용기를 적어보려고 합니다.


1. 인스턴스 생성하기

보통의 Ubuntu 이미지로 생성해서 만들면 안됩니다. 일반 Ubuntu 이미지는 CUDA 설정과 같은 딥러닝을 하는데 필수적인 환경이 전혀 갖춰져 있지도 않을 뿐더러, 이를 해결하려고 하면, 생각보다 잘 되지 않습니다. 

세팅하는데 한세월인데, 이럴꺼면 내가 우분투 깔아서 쓰지 왜 이걸 쓸까요

AWS Ubuntu 이미지 중에서는 Deep Learning 용 이미지가 제공됩니다. 이걸 선택해야해요. (제가 여기서 한번 삽질..)


2. 이후 차근차근 진행한뒤에 신경써야 하는건 Storage 입니다.

내가 어느정도의 Storage (저장공간) 이 필요한지 가늠해보고 정하면 됩니다. p2.xlarge 를 사용했던 저는 디폴트로 40GB가 잡혀있어서 일단 그대로 사용했습니다.

신경써야 하는건 파일의 크기도 있지만, 사용할 라이브러리의 크기도 주의해야합니다. 

예를들어, Anaconda 같은 라이브러리는 그 자체로만 4기가 이상이 필요했습니다. 8기가 정도로 Storage 를 잡아버리면, 기본 OS 크기에 라이브러리 크기까지 합쳐져서 감당을 못하고 뻗습니다.



3. 이후에는 보통의 Instance 처럼 키받고 들어가서 몇가지를 확인해보면 됩니다.

> sudo apt update

저는 Anaconda 를 가상환경으로 사용했기 때문에 conda 를 쳤더니 안깔려있더라구요.. ㅠ_ㅠ 아나콘다를 설치한뒤에


> gcc -version

gcc 확인

> nvcc -V

엔비디아 컴파일러 설치되어있는지 확인해보면, 전부 깔려있었습니다.


이후 아나콘다에서 가상환경 호스팅 후, 

> pip install tensorflow-gpu

를 다운받고 실행해보면, 잘 돌아갑니다. 

cuDNN 같은걸 우리가 하나도 신경쓰지 않아도 됩니다! (나이스)


참고

> conda install -c menpo opencv3

이건 Python 버전으로 사용할 수 있는 Opencv3 를 한번에 설치하는 방법입니다. 비전 딥러닝을 할때, OpenCV 는 제법 유용하기 때문에 올려둡니다.



누군가에게 도움이 되었길 바랍니다.

감사합니다.

Comments