총평
오랜만에 Hands-on ML을 위해서 리눅스 셋팅을 시작했다. 역시 어깨 너머로 보던 것과 직접 하는 것은 많이 다른 것 같다. 특히 이런 종류의 셋팅은 신상이 무조건 좋은 것은 아니라는 것을 다시금 깨닫게 되었다.
시작 전 주의사항
GPU 드라이버 및 ML 관련 도구들은 SW의 버전 호완성에 민감한 편이기 때문에, 최신 SW를 설치하기 보다는 인터넷 상에 사례가 많은 SW로 설치하는 것이 좋음.
또한 ML 도구에 따라 지원하는 드라이버의 종류가 다르기 때문에, 설치전에 사용할 ML Package(Tensorflow 또는 Pytorch)에 맞는 버전을 공식 사이트에서 확인해야 함.
Step.1 Linux OS 설치
1.1 부팅 디스크 준비
- Ubuntu 18.04 LTS 설치 (22.04를 설치하는 경우, 내장 gcc 컴파일러를 낮은 버전으로 새로 설치해야 함.)
- 설치 사이트: https://ubuntu.com/download/desktop
- 설치 방법: 부팅용 USB를 준비하고, 홈페이지 소개 절차에 따라 USB 부팅 디스크 준비.
1.2 OS 설치
- GPU 가 있는 데스크 탑의 부팅 우선순위를 변경하여, 부팅용 USB로 부팅되도록 유도 (일반적으로 F1 키를 여러 번 클릭)
- 기존 OS를 살릴지 물어보는데, 굳이 살릴 이유가 없으면, 삭제 후 설치를 권장
(왜냐하면, 기존 OS를 살리는 경우, OS가 설치된 제일 좋은 저장장치를 사용하지 않고, 백업용 HDD에 설치가 되는 경우가 많음)
Step.2 그래픽 드라이버 및 Cuda, cuDNN 설치
2.1 GPU 제한 사항
- 현재(2022.05)까지 ML Acceleration은 NVIDIA의 CUDA 기능만 지원함. 따라서 NVIDIA외의 다른 GPU는 해당사항 없음.
- 현재 설치된 GPU 확인은 아래 명령어로 가능
- 명령어: lshw -C display
- 아래 명령어로 일반적으로 자주 사용하는 패키지 사전 설치
- 명령어: sudo apt install build-essential
2.2 설치 가능 GPU 드라이버 확인
- 윈도우와 마찬가지로 리눅스용 GPU 드라이버를 설치 해야함.
- 명령어: ubuntu-drivers devices
- 위 명령어를 실행하면, 탑재된 GPU에 맞는 드라이버 버전이 제안됨.
- 숫자가 높을 수록 최신판이지면, 설치 대상이 되는 CUDA 의 요구사항에 가장 근접한 드라이버 설치 권장
2.3 GPU 드라이버 설치
- 드라이버 버전을 선택하였으면, 해당 숫자를 입력하여 아래 명령어로 설치
- 명령어: sudo apt-get install nvidia-driver-460
- 위 명령어에서 , 'nvidia-driver-460'이 설치 드라이버 이름임(GPU에 맞게 변경)
- 리부팅! (명령어: sudo reboot now)
- 설치 후, 아래 명령어를 입력하여 설치된 드라이버 확인
- 명령어: nvidia-smi
- 이때, cuda 버전이 표시되는데, 이는 2.4에서 설치할 cuda버전과 달라도 상관없음. (무시해도 됨)
2.4 CUDA 드라이버 설치
- 그래픽 카드를 활용한 병렬 컴퓨팅을 위한 드라이버 이다.
- 설치안내 홈페이지: https://developer.nvidia.com/cuda-toolkit-archive
- 위 홈페이지에 설치할 쿠다 버전(다시한번 더 강조하지만, 꼭 맞는 버전을 선택해야함!)을 선택 후,
안내에 따라 OS 버전 선택하면, 3가지 옵션이 나오는데, 'runfile'이 제일 간단함.
- 실행 후 package manager가 설치되지 않아서 abort 하라는 메시지가 드는 경우, 아래와 깉이 실행 명령어 제일 끝에 --override 를 추가로 입력
- 수정 명령어: sudo sh cuda_11.2.0_460.27.04_linux.run --override
- continue 선택후, accpet 입력하여 설치화면 로딩 GPU 드라이버는 이미 설치했기 때문에, 설치 대상에서 뺀 후 install 선택
- 설치 완료 후 아래 랭크의 12. Post-Installation Actions를 참고하여 경로 등록을 해줘야 함
- 링크: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions
- 리부팅! (명령어: sudo reboot now)
- 아래 명령어를 실행해서, 설치된 Cuda 버전 확인
- 명령어 nvcc-V
2.5 cuDNN 드라이버 설치
- 이름에서 풍기듯이 Deep Neural Network 학습을 위한 드라이버임
- 설치안내 홈페이지: https://developer.nvidia.com/rdp/cudnn-archive
- 젇래절대, 최신것 다운 받으면 안됨! Archieved cuDNN Release 클릭해서, 맞는 cuDNN 선택!
(2022.5.9 현재 tensorflow는 8.1.0 지원)
- deb 파일 대신에, 'cuDNN Library for Linux (x86_64)'를 선택하여, tgz 압축 파일 선택 (왜 그런지.. deb 설치는 여러차례 실패함.)
- 설명 페이지의 2.3.1을 참고하여 설치: https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
- 리부팅! (명령어: sudo reboot now)
Step.3 Python 개발환경 꾸미기
아래 순서에 따라 필요한 패키지 설치(설치방법은 인터넷에 너무 많으므로 생략!)
3.1 pip 설치
3.2 python 설치 (ML 패키지에 호환되는 python 설치!) (신상이 무조건 좋지 않음!!!)
3.3 venv 가상환경 설정
3.4 가상환경에서 tensorflow 설치
3.5 로컬 작업용 VSCODE 설치
3.6 Remote 작업을 위한 opensSh 설치
- 명령어: sudo apt-get install openssh-server
3.7 Remote 컴퓨터의 VSCOD에서 ssh로 연결하여 작업하기.
- 참고사이트: https://prod.velog.io/@khs0415p/VSCode-SSH-%EC%9B%90%EA%B2%A9-%EC%A0%91%EC%86%8D%ED%95%98%EA%B8%B0
3.8 GPU 정상 설치 여부 확인 코드
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
4. 리눅스가 어색한 경우 기타 참조할 만한 자료
4.1 리눅스 명령어 약어
- APT: Advanced Package Too
- GREP: Global Regular Expression Print
- gcc: GNU C Compiler (리눅스 기본 탑채되는 c 컴파일러. 버전을 탐!)
- sudo 가 앞에 붙는 경우 (관리자 권한으로 실행)
4.2 설치과정에서 사용할 리눅스 명령어
- wget XXXX : 인터넷에서 파일을 현재 폴더로 다운로드하는 명령어
- XXX 패키지 파일 설치: sudo apt-get install XXX
- XXX 패지키 파일 삭제: sudo apt-get --purge remove XXX
- 설치된 서비스 확인: service --status -all | grep +
- 설치된 패키지 전체 추력: apt list --installed
- XXX 가 포함된 패키지 출력: sudo dpkg --get-selections | grep XXX
- 설치된 gcc 버전 확인: gcc --version
4.3 브라우져가 작동하지 않는 경우 크롬 설치 방법
- 기본 탑재된 브라우져인 사파리가 작동하지 않는 경우, 아래 명령어로 크롬다운 후 설치
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb