이번에 숙명여대 신빅해(신한은행 빅데이터 해커톤)에 멘토 및 과정 기획 설계자로 참여하며,
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
파일 압축 해제 및 설치
$ 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')]
여기까지 모든 환경구성을 완료했다.
내가 고생은 했지만 다른 분들은 좀 덜 고생하길 바라면서 이만.
'AWS > 기능 소개 및 에러처리' 카테고리의 다른 글
[AWS] Windows 개발 환경에서 Serverless Framework 오류 (Runtime.ImportModuleError) (3) | 2024.03.29 |
---|---|
AWS Ec2 인스턴스에 탄력적 IP 설정하기(Ec2 IP고정하기) (0) | 2023.07.28 |
AWS RDS를 Workbench로 실행시키기( + 연결 에러?? Faild to connect to mysql ) (2) | 2023.07.12 |
AWS EC2 SSH X-shell로 연결하기 (0) | 2023.07.05 |
[AWS Ec2] Failed to connect to your instance, Error establishing SSH connection to your instance 에러 해결법 (0) | 2023.06.26 |