TRC(TPU Research Cloud)
TRC에 지원하면, 구글에서 경우에 따라 한달, 또는 두달 등의 TPU 무료 사용을 허가해줌
그러면 다음에 해당하는 자원을 마음껏 사용할 수 있음
- us-central1-f 영역의 선점형 Cloud TPU v2-8 기기 100개
- us-central1-f 영역의 주문형 Cloud TPU v2-8 기기 5개
- europe-west4-a 영역의 주문형 Cloud TPU v3-8 기기 5개
선점형의 VM은 최대 24시간 밖에 유지되지 않는 단점이 있어 사용이 편할 수는 있으나 계속 유지할 수 없는 것이 단점이고, 주문형의 경우 한번씩 사용량이 꽉차서 만들어지지 않는 경우가 있지만 한번 만들어 두면 계속해서 쓸 수 있기 때문에 주문형을 선호 하는 편
그리고 특히, Colab에서 제공하는 Cloud TPU는 V2-8 기반으로, vram이 core 당8GB 이기 때문에, 무료로 Cloud TPU v3-8 코어당 vram 16GB를 쓸 수 있다는 것이 큰 장점.
VSCODE로 접속하는 이유
Cloud TPU 공식 예제에서는 Cloud TPU에 Google Cloud shell을 통해 SSH를 사용해서 접속하며, 간단한 Python Script를 통해서 학습하는 내용이 나오지만, Colab에서 주피터 노트북 형태로 코드를 짜던 사람들에게 갑자기 script 형태로 파이썬을 학습하는 것은 어색하고, 적응이 되지 않는다
아직 Compute engine의 SSH 기능 처럼 콘솔창에서 바로 VM에 접속하는 기능이 없기 때문에, 조금 불편한 감이 있어, 이를 Colab의 형태를 띈 상태에서 학습에 사용하기 위해 VSCODE를 사용해서 Cloud TPU VM에 SSH를 사용해서 접속하는 방법을 선택했다.
Putty를 통해 키 쌍 생성
putty는 RSA 형태의 키 쌍 생성을 위해 사용되는 유용한 툴
Generate 버튼을 누르고, Load bar가 가득찰 때 까지 마우스를 움직임
아래 빈칸에 해당하는 내용을 입력
Key comment: Google e-mail 입력 예) asd@gmail.com
Key passphrase : 키 쌍으로 식별할 때 사용할 암호
Confirm passphrase : 암호 재입력
키쌍 발행 후 다음의 save public key, save private key를 저장
필자의 경우, tpu_pub, tpu_private의 이름으로 저장
사실 위의 public key와 private key는 putty에서 사용하는 형식의 키로, 만일을 대비해서 저장한 것이었고 VSCODE에서 이 키를 쌍으로 사용하려면 OpenSSH 형태로 저장해야함
Export OpenSSH key 선택 후, 파일 저장
필자의 경우, tpu_openssh로 저장
다음으로 Public Key를 구글에 메타 정보에 입력해야함. 반드시 Public key 빠짐 없이 복사해야함
GCP Console을 이용해서 키 등록하기
TPU를 받았다는 것은, 프로젝트를 생성하고 그 프로젝트 번호를 통해 TPU 사용 권한을 부여받았다는 것이므로, 프로젝트 생성에 관한 부분은 생략
좌측 상단에 메뉴바를 열어 Compute Engine => 메타 데이터 클릭
SSH키 메뉴 버튼 클릭
SSH 키 추가 클릭
putty에서 만들었던 public key 입력. 반드시 맨 뒤에 자신의 구글 메일까지 복사되었는지 확인요망
입력 후 저장을 누르면 등록 완료
TPU VM 만들기
Cloud TPU VM 생성은 여러가지 방법을 통해 할 수 있음. 여기에서는 GCP console을 통해 생성할건데, VM 사용률이 높아서 잘 생성이 안될 때는 명령어를 통해 생성하고, 반복 시도하는 것이 간편
여기에 해당하는 부분을 실행한다. 이때 project_id에 본인의 프로젝트 id를 기입해야한다
Compute engine => TPU로 이동
TPU 노드 만들기 클릭
이름 : 마음대로 지으면 됨
영역 : Cloud TPU V3-8은 europe-west4-a에서만 사용할 수 있음(trc 이메일에 사용허가된 곳 확인)
TPU 설정 : TPU VM 아키텍처가 TPU를 로컬처럼 사용할 수 있어 편리함
TPU 유형 : V3-8(v2-8 쓰려면 영역을 us-central로 변경,)
TPU 소프트웨어 버전 : TPU VM 지원 되는 버전 참조
또는 GCP Cloud Shell을 열어서, Command로 작성하면 좀 더 편하게 시도할 수 있다
gcloud alpha compute tpus tpu-vm create [vm이름] \
--zone=[영역이름] \
--accelerator-type=[tpu타입] \
--version=[tpu소프트웨어] #
gcloud alpha compute tpus tpu-vm create tpuvm-tf \
--zone=europe-west4-a \
--accelerator-type=v3-8 \
--version=tpu-vm-tf-2.6.0
Cloud shell에 위와 같이 입력하면 승인 요청화면이 뜬다
생성 이후에, Cloud shell을 통해서 한번 ssh 접속을 해주어야 VSCODE를 통해 접속이 가능하다
gcloud alpha compute tpus tpu-vm ssh [vm이름] --zone=europe-west4-a
다음과 같은 화면이 뜨면 VM 내부로 진입한 것이며, 드디어 VSCODE로 접속할 준비가 됨
VSCODE로 TPU-VM에 SSH 접속하기
VSCODE에 Remote-SSH 확장 설치
해당 컴퓨터 모양 클릭
필자는 이미 등록해둔게 있어서 뭔가 있지만 신경쓰지 않고, 톱니(설정) 클릭
설정 클릭
config file을 저장할 파일 경로 setting (권한 문제 안생기도록 주의)
Host 식별 하기 좋은 이름
HostName vm외부아이피주소
User 본인이메일 # 골뱅이 뒤는 제외
Port 22
IdentityFile 본인의 openssh키 경로
TPU 화면에서 vm외부 IP에 해당하는 주소를 적으면 됨
yes를 입력하면, 한번 접속했던 기록을 토대로 위 linux 같은 선택을 다시 안해도 됨. yes 엔터
SSH 접속 완료
초기의 VM은 python과 tensorflow등의 기본 소프트웨어만 설치되어 있어, VSCODE 확장부터 주피터 노트북까지 다양한
프로그램을 설치해야한다. 이 내용은 2편에서 이어서 해보겠다
이 글은, Google로부터 지속적으로 TRC 프로그램을 통해 TPU VM을 사용하는데에 감사한 마음으로, 오픈소스 커뮤니티에 기여하고자, 공익 목적의 튜토리얼 글로, 초보자들 또한 TPU-VM에 손쉽게 다가가서 사용할 수 있도록 돕고자 쓰여진 글입니다.
TPU-VM 사용에 어려움이 있다면 언제든지 댓글을 주시거나, 제가 활동하고 있는 Tensorflow Korea 오픈채팅방에서 tf-keras-TPU trinity를 찾아주세요
'23년 이전 글 > TPU' 카테고리의 다른 글
Huggingface Trainer로 TPU Multicore 활용 학습 예제코드 (0) | 2022.12.21 |
---|---|
TPU 자원 할당을 위한 간단한 스크립트 (0) | 2022.11.29 |
TPU-starter 프로젝트 소개 (0) | 2022.10.10 |
TPU-VM Colab처럼 활용하기 (0) | 2022.07.29 |