Deep Learning을 공부하거나 프로젝트를 진행하려면 GPU는 필수적입니다. 저의 경우는 GTX 970모델을 이용 중이었지만 학습으로 갈궈지고, 오버워치를 하다가 퍽 하고 전원이 나가더니 죽어버리는 불상사를 겪었습니다.

졸업 프로젝트로 Deep Learning관련 프로젝트를 진행하고 있어서 GPU가 절대적으로 필요한 상황이었는데 그나마 있던 GPU가 죽어서 정말 곤란한 상황이 되었습니다. 그러던 중 머신러닝 플랫폼 서비스를 오픈해서 베타 서비스를 진행중인 Cheetah라는 플랫폼을 알게 되었습니다. 마침 베타 테스터들에게 한달간 무료로 GPU 서버를 대여 해주고 있어서 RTX 2080TI 서버를 대여해 사용할 수 있었습니다.

Cheetah서비스를 이용하면서 가장 좋았던 점은 서버에 접속해서 사용하게 되면 세션관리가 가장 큰 문제가 되는데 tmux나 다른 방법들을 통해서 관리가 필요합니다. Cheetah의 경우 Jupyter Lab을 통해 접속해서 터미널을 이용하면 별도의 세션 관리 없이 학습을 하고 모니터링이 가능하다는 점이 터미널 환경이 익숙하지 않았던 저에게 가장 큰 장점이었습니다.

프로젝트를 위해서 PYTHON패키지 중에서 pretty_midipypianoroll이라는 두 패키지가 필수적이었습니다. 그런데 서버 배정을 신청할때 tensorflow&keras 환경을 선택하였을 떄 디폴트로 설치된 scipy와 버전 dependency error가 발생 하였습니다. 그래서 제가 처음으로 선택한 방법은 conda 가상환경이었습니다. 하지만 이 방법으로는 GPU를 사용할 수가 없어서 포기하게 되었습니다. 문제는 이 방법을 시도한 날이 금요일 6시 이후여서 기술 지원을 받기 위해선 주말이 지나가야해서 깡 CPU 학습을 진행했습니다.

기술 지원 문의를 하자 충격적인 답변을 받았습니다. 제공받은 환경이 컨테이기 때문에 여기에서 가상환경을 만들어서는 GPU를 사용할 수 없다라는 답변을 받았습니다. 그리고 dependency error 해결을 위한 방법을 제공받았습니다.

  1. sudo권한을 줄 때 -H 옵션을 주어서 설치
  2. pip install or conda install을 할 때 --ignore-installed 옵션으로 설치

전 2번 방법으로 문제를 해결 했습니다. 문제가 해결되자 epoch당 2시간이 걸리던 CPU학습이 208초라는 경이로운 시간으로 줄었습니다.

혹시 머신러닝 플랫폼 서비스를 찾으신다면 비용이 발생하겠지만 한국어로 기술문의가 가능한 Cheetah도 하나의 선택지가 될 수 있을 것 같습니다.


본 포스트는 Cheetah에서 GPU 서버를 한달 제공 받아 작성되었습니다.