AWS EC2 인스턴스로 딥러닝 환경 구축

Jiyeahhh·2021년 11월 14일
1

[Project] AI 홈트 앱

목록 보기
6/9

원래 학교 전산실이면 GPU를 사용할 수 있지 않을까.. 싶어서 크롬 원격 데스크톱 설치를 했던건데 그게 좀 어렵게 돼서 결국 AWS로 딥러닝 환경을 구축하기로 했다.

💡 참고
2번 방법


1. AWS EC2 인스턴스

위 방법에서는 Reverse Tunneling으로 하는데 내 노트북에서 reverse tunnel을 생성하는 작업이 잘 되지 않아서 서버 만들고 접속까지만 해놓은 상태이다.

맨 아래 인스턴스가 이번에 생성한 인스턴스 - EC2 P2 인스턴스로 생성


❗ 중간에 Permission Denied 문제로 .pem 파일 권한 변경을 해줘야 하는데

chmod 400 [키페어 위치]

로 해줘야 한다!


인스턴스 접속

ssh -i [키페어 위치] ubuntu@[PUBLIC_DNS_ADDRESS]
  • 종료exit 명령어

GPU 확인

lspci | grep -i nvidia

GPU가 확인되는 걸 볼 수 있다..!


...근데 docker부터 시작해서 다시 설치해야하는 건 상상도 못했다..😭

이래서 Reverse Tunnel을 생성해서 하는 건가? 싶긴한데 이쪽은 더 공부해봐야겠다..

아무튼 다시 docker 설치하고 tar 파일도 로컬에서 ec2 서버로 전송하고 있다..!

scp -i [키페어 위치] [보낼려는파일경로] ubuntu@[PUBLIC_DNS_ADDRESS]:[받으려는위치]


2. Docker 이미지 로드

docker load --input sleek.tar


확실히 진짜 빠르다... 진작 이렇게 할걸...


3. nvidia driver, cuda, cudnn 설치

💡 참고
https://nirsa.tistory.com/332

3-1. Nvidia driver 설치

  • 적합한 드라이버 검색
ubuntu-drivers devices

  • 설치
apt install -y nvidia-driver-470
  • nvidia driver 버전 확인
nvidia-smi


3-2. cuda 설치

  • cuda 11.0 설치
wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run
sudo sh cuda_11.0.2_450.51.05_linux.run
  • cuda 11.0 PATH 설정

👉 /etc/profile 하단에 아래 내용 추가

export PATH=$PATH:/usr/local/cuda-11.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.0/lib64
export CUDADIR=/usr/local/cuda-11.0
  • cuda 버전 확인
nvcc -V


3-3. cuDNN 설치

https://developer.nvidia.com/cudnn 에서 원하는 버전 설치

tar xvzf cudnn-11.0-linux-x64-v8.0.5.39.tgz
sudo cp cuda/include/cudnn* /usr/local/cuda-11.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.0/lib64
sudo chmod a+r /usr/local/cuda-11.0/include/cudnn.h /usr/local/cuda-11.0/lib64/libcudnn*

sudo ln -sf /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.0.5 /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
sudo ln -sf /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.0.5  /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8
sudo ln -sf /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.0.5  /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8
sudo ln -sf /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.0.5  /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8
sudo ln -sf /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.0.5  /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn_ops_train.so.8
sudo ln -sf /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.0.5 /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
sudo ln -sf /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn.so.8.0.5  /usr/local/cuda-11.0/targets/x86_64-linux/lib/libcudnn.so.8

ldconfig
  • 중간에 용량 또 부족해서... 용량 늘림..
    이렇게 용량 막 늘려도 되나 싶고,,, 요금 폭탄 맞는 거 아닌가 싶지만,,,
    일단 참고(https://ithub.tistory.com/253)..
  • 설치 확인
ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn


4. Docker 컨테이너 실행

docker run --gpus all -it sleek:1.0 bash

드디어 됐다..!😭

profile
람차람차

0개의 댓글