프로그래밍 공부/보면 도움이 될걸?!

구글클라우드(GCP)에서 최신 GPU(V100) 인스턴스 할당받기 (vs-code, ssh, gcp)

조녁 2023. 4. 19. 11:56
반응형

 

안녕하세요~

29년차 진로탐색꾼 조녁입니다.

 

 

오늘은 클라우드에서 고성능 GPU 인스턴스를 할당받아서 사용해보는 방법을 정리해볼까합니다.

최대한 차근차근 작성했지만 혹시 따라하시다 잘 안되시는 부분은 댓글로 남겨주세요. 

 

1. 구글 클라우드 프로젝트 세팅하기


0 - 구글 클라우드 플랫폼(GCP) 가입하기

  • 우선 구글 클라우드 플랫폼에 가입하지 않으신 분들은 가입을 해주셔야합니다. 가입하는 내용은 구글 계정 (유튜브 보는 분들이라면 한개씩 있으시겠죠!)으로 간편히 할 수 있으니 스킵하겠습니다.
  • 추가로 처음 가입하실떄 무료 크레딧 300 달러를 받게 됩니다. 이때 회사 계정(이메일)인증을 하게되면, 다른 이메일에서 가입하실떄도 100 달러를 추가로 받아 총 400달러 크레딧을 받게됩니다.

 

 

1 - 프로젝트 생성 및 결제정보 등록하기

1-1. 결제정보 등록

  • 무료 크레딧 사용 중일 경우, 결제수단 등록해도 결제되지 않습니다.
  • “결제”를 누르고 들어가셔서 "계정 만들기"를 통해 만들 수 있습니다. 결제 계정 만드실때, VISA 나 MASTER 카드를 준비해주시면 됩니다.

 

1-2. 프로젝트 생성하기

  • 좌측 상단 “My First Project”라고 되어있는 부분을 누르면 다음과 같은 창이 나옵니다. 창의 오른쪽 상단 “새 프로젝트”를 눌러주세요.

  • 새 프로젝트의 이름은 자유롭게 지정해주시고, 사전에 만든 결제 계정을 등록해주세요. 조직은 따로 입력하지 않으셔도 괜찮습니다.

 

1-3. Compute Engine API 사용 신청하기

  • 처음 사용하시는 분들은 “Computer Engine > VM 인스턴스”를 클릭해줍니다.

 

  • 이후 나오는 아래 화면에서 “사용”을 눌러주시고 잠시 기다려줍니다. (이때 결제계정이 등록 안되어있다면 에러가 날 수 있음)


 

1-4. 무료계정 > 유료계정으로 업그레이드 (GPU 사용위해선 유료계정 필요)

  • 무료계정을 사용하시다 만료되신 분들은, 보이시는 화면 우측 최상단에 “활성화” 버튼을 눌러줍니다. 


 

  • 만약 처음 가입하신 분들이라면, 결제 계정을 등록하신 후 위와 같이 “활성화” 를 눌러주시거나 결제 계정 등록과정에서 “유료계정 업그레이드”를 진행해주시면 됩니다.

 

 

2 - GPU 할당량 증가 신청하기 (중요!)

2-1. IAM > 할당량 에서 “all regions” & “gpu” 로 검색하면 “Compute Engine API , GPUs(all regions)”가 나옵니다.

 

IAM > 할당량 > GPUs(all regions)

 

 

2-2. 위의 GPUS(all regions)를 클릭한후, 보이는 화면의 우측 상단 “할당량 수정”를 누릅니다. 그리고 새 한도에 1을 입력한 후, 완료를 누릅니다. 

 

사유는 자유롭게 작성해주시면 됩니다. 아마 5분 이내에 GCP에 등록하신 이메일로 회신이 올거에요.

 

IAM > 할당량 내 할당량 수정

 

할당량 수정 화면

 

 

3 - SSH Key 생성해서 프로젝트에 등록하기

3-1. SSH로 public key, private key 생성하기 [Mac 기준]

  • ssh-keygen 명령어로 공개키와 암호키를 생성합니다.
  • rsa 암호화 기본 2048이지만 4096이 좀더 안전
ssh-keygen -t rsa -b 4096 -f gcp_rsa_4096 -C  [본인 이메일] 

 

3-2. 아래와 같이 root dir 에 public, private key 가 생성되면 ~/.ssh 밑으로 옮겨 줍니다.

 

# .ssh dir 없을 경우 생성
mkdir ~/.ssh

# .ssh 밑으로 이동
mv ~/gcp_rsa_4096 ~/.ssh/gcp_rsa_4096
mv ~/gcp_rsa_4096.pub ~/.ssh/gcp_rsa_4096.pub

# 잘 옮겨졌는 지 확인
cd ~/.ssh 
ls -a 

 

 

4 - SSH로 클라우드와 로컬 연결하기

4-1. Computer Engine - 설정 - 메타데이터로 이동합니다. 

 

4-2. SSH 키 화면을 누르고, SSH public key(gcp_rsa_4096.pub) 값을 복사 붙여넣기 합니다.

  • gcp_rsa_4096.pub key 값 복붙
sudo vi ~/.ssh/gcp_rsa_4096.pub
# 접속할때 비밀번호는 노트북 잠금해제할 때 비밀번호.
# 이후 값 ctrl c
# esc + : + q
  • 복붙한 값을 아래 SSH키에 입력

  • 아래와 같이 저장되면 됩니다.

 

4-3. (5번 인스턴스 할당이후) 아래 커맨드로 ssh를 접속성공할 수 있습니다.

ssh -i gcp_rsa_4096 vm 등록한 아이디@vm 외부 IP

** vm 외부 IP는 Computer Engine - GPU 탭에서 확인하실 수 있습니다.

 

⇒ 하지만 저희는 추후 VS-Code의 SSH 익스텐션을 통해서 접속하는 방법으로 살펴볼 예정입니다.

 

5 - Computer Engine > VM 인스턴스 > 인스턴스 할당받기 

5-1. Computer Engine > VM 인스턴스로 이동하기 

 

5-2. 인스턴스 만들기 클릭

 

5-3. 인스턴스 생성하기 - 기본 옵션

 

 

 

  • 이름 : 본인이 원하는 대로 설정
  • 머신 구성 : GPU 선택 후, GPU 유형은 NVIDIA V100 설정, 갯수는 1개
  • 머신 유형 : n1-standard-8(vCPU 8개, 30GB 메모리) 선택

 

 

 

 

 

 

5-4. 인스턴스 생성하기 - 부팅디스크

 

 

 

  • 운영체제 : ubuntu (버전은 알아서, 기본은 18.04)
  • 크기(GB) : 100 or 50으로 변경
  • 이후, 최하단 “만들기” 버튼을 누르면 생성 완료. (쥬피터랩을 쓸 경우는 다음 글 참고)

 

 

 

 

2. VS-Code SSH 설정하기 


1 - vs-code에 extention 설치하기

1-1. extention (아래 아이콘 참고) 클릭하시고 “SSH” 로 검색하셔서 맨위에 나오는 익스텐션 2가지 설치

 

1-2. “docker” 로 검색해서 docker extention도 설치

  • 나중에 도커 사용할 때 쓸 예정

 

 

2 - SSH Config 세팅 수정하기

2-1. ctrl+shift+p (윈도우) , command+shift+p (맥) : default setting 검색 , “기본 설정 : 기본 설정 열기(JSON)” 클릭

  • defaultSettings.json file에 들어간후 , ctrl +f 로 “useLocalServer”검색
  • remote.SSH.use.LocalServer 를 false > true로 변경 (이미 True라면 무방함)

 

 

3 - SSH-Config file 에 호스트 추가하기

3-1. ctrl+shift+p (윈도우) , command+shift+p (맥) : ssh config 로 검색 , “원격 - SSH : SSH 구성 파일열기” 클릭

  • 리스트중 root/.ssh/config 에 해당되는 파일 클릭

 

3-2. config file 내 새로운 호스트(host) 추가

예시 사진임

  • HOST : 자유롭게 지정
  • HostName : 구글 클라우드 인스턴스의 외부 IP
  • IdentityFile : 생성한 키(gcp_rsa_4096)이 존재하는 경로
  • User : GCP 계정의 유저이름

 

3-3. ctrl+shift+p (윈도우) , command+shift+p (맥) : ssh 검색 후 “원격-SSH : 호스트에 연결” 클릭한 후 내가 지정한 HOST(GCP_V100)을 클릭하면 연결 끝!  

 

 

3. 기본  세팅하기 

1- nvidia driver 설치

1-1. nvidia driver 설치되지 않은 것 확인하기

 

1-2. 아래코드 입력한 후에 재접속 

## GCP VM cuda install
sudo apt-get update 
# 이후 재부팅
sudo apt install nvidia-driver-470 libnvidia-gl-470 libnvidia-compute-470 libnvidia-decode-470 libnvidia-encode-470 libnvidia-ifr1-470 libnvidia-fbc1-470

sudo reboot # 재부팅 시간이 걸리니 3분 정도 후에 접속하기

 

막상 GPU를 쓰려니 어떻게해야할까 고민하다가 GCP GPU 사용하는 방향으로 잡고 잘 사용중입니다. 

(꼭 사용하지 않으실떄는 중지, 오래 안쓰신다면 삭제 해주세요!! 돈나갑니다)

 

혹시 하시다가 에러가 있거나 질문있으신 분들은 편하게 댓글로 남겨주세요!!

반응형