TPU 자원 할당을 위한 간단한 스크립트
23년 이전 글/TPU

TPU 자원 할당을 위한 간단한 스크립트

TPU 자원이 모두 사용중이면 보게 되는 에러 입니다

최근 TPU 자원 활용도가 많아지면서 자원을 빌리기도 어려워지고 있네요

손으로 하기가 아파서 새로운 방법을 찾아봤습니다

 

1. 매번 실행할 sh 파일 만들기

아래 파일은 하나의 sh 파일에 저장하고 쓰면 됩니다

export PROJECT_ID=[프로젝트 ID 명으로 변경] - PROJECT ID를 변수에 할당
gcloud config set project ${PROJECT_ID} - PROJECT ID를 활용해서 config 설정
gcloud beta services identity create --service tpu.googleapis.com --project $PROJECT_ID - tpu 서비스 계정 값을 받을 수 있음
gcloud compute tpus tpu-vm create [VM 이름]

--zone=[존 이름: ex)europe-west4-a]

--accelerator-type=[VM의 타입 ex) v2-8, v3-8, v4-8]

--version=[tpu vm 내에 딥러닝 프레임워크 버전설정  ex)tpu-vm-pt-1.13, tpu-vm-tf-2.10.0] 해당 종류는 GCP에서 TPU VM 생성메뉴에 가면 메뉴바로 찾아볼 수 있습니다. 또는 GCP TPU 학습에서 예시로 나온 버전을 활용하셔도 좋습니다.

 

위 파일을 /home/[계정명]/request_tpu.sh에 저장했다고 간주하겠습니다

 

2. crontab 설정

crontab -e

위 명령어를 실행하면 crontab을 설정하는 화면이 나오게 됩니다

crontab의 자세한 설명은 여기에서 중요한게 아니므로, 다른 블로그를 참고 바랍니다

 

아래 crontab 명령어는 매분, request_tpu.sh라는 스크립트를 실행하고, gcloud_log.log에 매번 

로그를 저장하는 명령어입니다. 아까 crontab -e 했던 곳에 아래 내용을 적습니다

* * * * * sh /home/[자신의계정명]/request_tpu.sh > /home/[자신의계정명]/gcloud_log.log 2>&1

 

빠져나오고 나면 

sudo service cron start

명령어를 통해서 crontab을 실행시켜줍니다

 

3. 로그 확인

이후에 발생하는 로그는 파일에 기록되어서 보이지 않으므로 해당 내용을 꾸준하게 보기 위해서

다음의 명령어를 bash shell에 입력합니다

while true; do   cat gcloud_log.log;   sleep 30s; done

계속해서 30초마다 gcloud_log.log를 표시하는 간단한 shell script 반복문 입니다

 

TPU 자원 요청 할 때 현명하게 요청합시다!

 

 

 

 

 

 

 

반응형