본문 바로가기
AWS/기능 소개 및 에러처리

EC2 G4DNlarge 인스턴스에 Tensorflow 및 Pytorch설치하기.

by Pacloud 2023. 10. 12.
반응형

이번에 숙명여대 신빅해(신한은행 빅데이터 해커톤)에 멘토 및 과정 기획 설계자로 참여하며,

160개팀에 대해 EC2 학습환경을 세팅해야 하는 업무가 있었다.

 

160개를 하나하나 생성할 수 없었기에 AMI를 생성하여 나머지는 테라폼으로 일괄 처리하려고 계획을 세웠다.

 

그렇게 인공지능 서버를 구축하면서..수많은 글을 찾아보았지만 두 기술다 버전이슈가 너무 심각해서 고생을 많이했고,

성공한 버전과 설치과정을 블로그로 남기려고 한다.

 

먼저 내가 세팅한 환경은 아래와 같다.

 

OS : Ubuntu 20.04 LTS

GPU : RTX3090, Tesla T4등

Archi : x86_64

Cuda : 11.2

pytorch : 1.11.0+cu113

tensorflow : 2.8.0

cudnn : 11.2

 

이제 자세한 설치 과정을 아래에서 소개하겠다.

 

0) CUDA 11.2 및 드라이버 설치

$ sudo apt update
$ sudo apt install build-essential
$ sudo apt-get install manpages-dev
$ sudo apt -y install gcc-8 g++-8

 

위 과정을 끝낸 후 아래 명령어로 CUDA 11.2 버전을 설치함

$ wget https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda_11.2.1_460.32.03_linux.run
$ sudo bash cuda_11.2.1_460.32.03_linux.run

📌 설치 시 CUDA Toolkit을 제외한 나머지 항목들의 체크박스는 옵션으로 선택 가능
(Driver의 경우 반드시 체크박스를 해제하고 설치할 것)

 

위 설치 과정이 끝난 후에 아래 명령어를 통해 PATH 설정을 해줌

$ sudo vi ~/.bashrc

#파일 가장 마지막 줄에 삽입
export PATH=$PATH:/usr/local/bin

$ source ~/.bashrc
$ sudo vi /etc/profile
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/cuda-11.2/bin
export LD_LIBRARY_PATH=:/usr/local/cuda-11.2/lib64
export CUDARDIR=/usr/local/cuda-11.2

 

모든 PATH 설정이 끝난 후 아래 명령어를 통해 서버를 재부팅 해줌

$ sudo reboot now

 

✅ CUDA 및 드라이버 버전 확인

# CUDA 버전 확인
$ nvcc -V

#드라이버 버전 확인
$ nvidia-smi

 

1) Anaconda 가상환경 설치

Python 3.10 버전으로 구축할 것이기 때문에 해당 버전의 Anaconda를 설치함

# Anaconda가 설치되는 현재 경로 확인
$ pwd
$ wget https://repo.anaconda.com/archive/Anaconda3-2023.07-0-Linux-x86_64.sh
$ sudo bash Anaconda3-2023.07-0-Linux-x86_64.sh

 

설치 시 아래 화면이 나오면 이전에 pwd로 확인했던 경로로 설정함

Anaconda3 will now be installed into this location:
/root/anaconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/root/anaconda3] >>> [pwd로 확인한 경로]/anaconda3

 

설치가 완료되면 아래 명령어를 입력한 후 서버를 재부팅 함

$ source /usr/anaconda3/bin/activate
$ conda init
$ source ~/.bashrc

 

2) Pytorch 환경 구축

Pytorch를 설치하여 사용할 가상환경을 생성함

# [] 내 가상환경 이름 변경 가능
$ conda create -n [Pytorch] python=3.10
$ conda (또는 source) activate Pytorch

 

CUDA 11.2, Python 3.10과 호환되는 Pytorch 버전 설치

$ pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113

 

✅ Pytorch 버전 확인

$ python
# Pytorch 버전 확인
>> import torch
>> torch.__version__
"1.11.0+cu113"
# GPU 사용 가능 확인
>> print(torch.cuda.is_available())
True
>> exit()

 

3)  Tensorlfow 환경구축

Tensorflow를 설치하여 사용할 가상환경을 생성함

# [] 내 가상환경 이름 변경 가능
$ conda create -n [Tensorflow] python=3.10
$ conda (또는 source) activate Tensorflow

Tensorflow 설치 이전에 필요한 라이브러리인 cuDNN을 설치함
아래 링크를 통해 CUDA 11.2, Python 3.10과 호환되는 cuDNN 8.1.1 버전 파일 다운로드 (로그인 필요)
📌 https://developer.nvidia.com/rdp/cudnn-archive

 

cuDNN Archive

Download releases from the GPU-accelerated primitive library for deep neural networks.

developer.nvidia.com

 

파일 압축 해제 및 설치

$ tar –xzvf cudnn-11.2-linux-x64-v8.1.1.33.tgz
$ sudo cp cuda/include/cudnn*.h /usr/local/cuda-11.2/include
$ sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-11.2/lib64
$ sudo chmod a+r /usr/local/cuda-11.2/include/cudnn*.h /usr/local/cuda-11.2/lib64/libcudnn*

 

✅ cuDNN 버전 확인

$ cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
$ ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn

아래 명령어를 통해 모든 라이브러리와 호환되는 Tensorflow 2.8.0 버전 설치

 

 

$ pip install tensorflow-gpu==2.8.0

 

✅ Tensorflow 버전 확인

$ python
>> tensorflow.__version__
2.8.0
>> tensorflow.config.list_physical_devices('GPU')
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

 

여기까지 모든 환경구성을 완료했다.

 

내가 고생은 했지만 다른 분들은 좀 덜 고생하길 바라면서 이만.