AWS g4dn.xlarge instance에 torch 적용하기

하루·2022년 8월 22일
1

colab notebook에서 작성된 코드를 EC2로 옮기면서 작성한 글입니다.

- 작업환경
ubuntu 20.04
python 3.8

1. 인스턴스 생성

인스턴스 생성시 SSD용량을 32로 설정했었는데 한번 용량초과로 서버가 멈춘적이 있다.
설정 완료 후 KOBERT 모델을 사용하는 현재 디스크 용량은 약 20정도로 32면 충분해보이지만 만약을 대비해 약간 더 여유를 잡는 것이 좋을 것 같다.

2. ssh를 이용해 원격 접속

> ssh -i "KEYFILE.pem" ubuntu@EC2-ADDRESS

3. venv를 이용해 가상환경 설정

> sudo apt update
> sudo apt install python3.8-venv
> python3 -m venv environment

4. 필요 패키지 설치

> sudo apt install build-essential
> sudo apt install python3.8-dev

5. CUDA 드라이버 설치

> sudo apt-get install linux-headers-$(uname -r)
> sudo apt-key del 7fa2af80
> wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
> sudo dpkg -i cuda-keyring_1.0-1_all.deb
> sudo apt-get update
> sudo apt-get install cuda

// GDS 기능 활성화를 원할 경우에만
> sudo apt-get install nvidia-gds 

6. 환경변수 설정

> vim ~/.bash_profile
export PATH=/usr/local/cuda-11.7/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64\
                         ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
> source ~/.bash_profile

7. POWER9 설정

> systemctl status nvidia-persistenced
● nvidia-persistenced.service - NVIDIA Persistence Daemon
     Loaded: loaded (/lib/systemd/system/nvidia-persistenced.service; enabled; vendor preset: enabled)
     Active: inactive (dead)
> sudo systemctl enable nvidia-persistenced (if not enabled)
> sudo cp /lib/udev/rules.d/40-vm-hotadd.rules /etc/udev/rules.d
> sudo sed -i '/SUBSYSTEM=="memory", ACTION=="add"/d' /etc/udev/rules.d/40-vm-hotadd.rules

> sudo reboot

8. Python 패키지 설치

> source environment/bin/activate
> pip install wheel
> pip install mxnet
> pip install gluonnlp pandas tqdm
> pip install sentencepiece
> pip install transformers
> pip install torch
> pip install git+https://git@github.com/SKTBrain/KoBERT.git@master

9. 설정 후

GPU 수에 변경이 있을 수 있으므로 num_workers 등 파라미터 조정이 일부 필요할 수 있다.

profile
뭐라도 남는게 있었으면 좋겠다

0개의 댓글