캡스톤 프로젝트로 인해 GPU 서버를 사용해야 할 일이 생겼다.
모델 학습에는 내 본체의 GPU를 이용해 어떻게 학습 모델을 추출하기는 했으나, 이걸 웹서버 백엔드단으로 올려서 이미지를 받고 이미지내에서 객체 검출을 해 반환을 해줘야 했다.
학교가 네이버 클라우드(ncloud)와 협약을 맺어서 무료 크래딧 20만원을 사용할 수 있다고 해서 찾아봤지만, GPU 서버는 기본적으로 개인계정에서 생성을 제한한다고 한다.
개인계정에서 GPU서버, 고사양 CPU서버등의 고가용성 서버를 사용하기 위해서는 신청서를 작성해 제출하고, 또 서버 결제에 크레딧과는 다른 재화인 '코인'을 사용해서만 결제를 할 수 있다고 한다.
단순히 tensorflow 테스트를 할 뿐인데 신청서를 작성하고 코인 재화를 선결제해야하는 등의 작업이 너무 번거로울 것같아 네이버 클라우드의 사용을 포기했다.
이에 다른 클라우드 서비스를 찾기로 했고, 구글의 GCP를 찾게 되었다.
GCP는 첫 가입 시 90일간 사용가능한 $300 크레딧 제공을 해준다. 또한 네이버 클라우드와는 다르게 제공한 크레딧으로 GCP의 모든 서비스를 사용할 수 있다.
하지만, GCP도 마찬가지로 GPU 서버의 생성이 기본적으로 제한이 되어있다.
생성가능한 수치를 확인해보자
API 및 서비스 > 사용 설정된 API 및 서비스에서 Compute Engine API
GCP도 타 클라우드 서비스와 마찬가지로 모든 서비스가 API 형식으로 되어있다.
할당량 탭에서 사용할 수 있는 자원 할당량을 리전 별로 각각 확인할 수 있다.
GPU 서버의 할당량을 보기 위해 'gpus_all_region'을 검색, 모든 리전에서 사용할 수 있는 GPU서버의 갯수로 0으로 설정되어있는 것을 볼 수 있다.
해당 할당량의 체크박스 체크 후 우측 상단의 할당량 수정
다음과 같은 패널이 나오는데, 새 한도에 사용할 GPU 서버의 갯수만큼 작성한다. 예를 들어, 2개의 GPU서버를 동시에 돌려야하는 상황 등의 경우 한도 값을 2 이상으로 올려주면 된다.
개인 연락처 정보 기입 후 제출하면, 계정 메일로 할당량 수정 요청이 되었다는 메일이 온다.
평일 영업시각 기준으로 약 5분정도 후에 요청 승인 메일이 바로 오게 된다.
다시 할당량을 확인하면 요청값만큼 증가한 것을 볼 수 있다.
할당량 확인까지 마쳤으면 본격적으로 VM을 생성
VM 생성 > 머신 구성에서 GPU를 선택하면 A100, V100, P4, T4등의 GPU를 선택해서 생성할 수 있다.
(물론 각 리전/영역에 따라서 사용할 수 있는 GPU의 유형이 지정되어있다.)
GPU를 설정하고 VM을 생성
GPU드라이버를 설치해 확인해보면 GPU가 정상적으로 할당되어있음을 볼 수 있다.
curl https://raw.githubusercontent.com/GoogleCloudPlatform/compute-gpu-installation/main/linux/install_gpu_driver.py --output install_gpu_driver.py
python3 install_gpu_driver.py