딥러닝 환경 구축 맨 땅에 헤딩하기 - 이론편 (1)
1. 무작정 시작해보기 - 사전 조사
딥러닝을 해보려고 한다.
.
.
.
뭐 부터 해야 하나...?
우선 딥러닝 쪽을 하려면 우분투로 실행하는 것이 낫다고 한다.
근데 난 윈도우인데?
그래서 가상환경을 알아보다...가 WSL2을 접하게 되었다.
WSL2이란 Windows Subsystem for Linux 2 이라는 윈도우가 직접 배포하는 정식 릴리스의 약자로, 윈도우에서 경량 가상화 기술을 사용해 리눅스를 구동할 수 있도록 해주는 기능이라고 한다.
확실히 가상환경으로 딥러닝을 하기에는 다소 느리다는 한계가 있다고 들었는데... 그럼 WSL2으로 환경을 구축해야 하는 건가???
혹시 호환성 문제같은 건 없나?
... conda, CUDA, cudnn, TF, Docker라는 단어가 심심찮게 보이기 시작한다. 이건 또 뭐지?
Docker: OS-level 가상화툴, 리눅스의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트이라고 한다(https://ko.wikipedia.org/wiki/%EB%8F%84%EC%BB%A4_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4 역시 위키...)
도커 (소프트웨어) - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 도커(Docker)는 리눅스의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트이다.
ko.wikipedia.org
쉽게 말해서 Git은 코드를 관리 및 배포, Docker는 환경을 관리 및 배포! (Git 설명은 추후에...)
이게 윈도우용 Docker와 리눅스용 Docker가 있다는데,
윈도우용 Docker는 Hyper-V 기반으로 구동이 되어 많은 제약이 있고 속도도 느리다고 한다.
구체적인 Docker 설명은 아래 링크 참조(아직 나도 다 이해하지는 못했다):
www.redhat.com/ko/topics/containers/what-is-docker
Docker(도커)란? 도커 컨테이너 실행, 사용법, 다운로드, 배포
Docker(도커)란 Linux(리눅스) 컨테이너 생성 및 사용을 돕는 컨테이너 기술을 뜻합니다. Docker 사용법, Docker container(도커 컨테이너), 다운로드 방법을 설명합니다.
www.redhat.com
-> 즉 WSL2 설치 후, 리눅스를 통해 Docker를 설치해보자!
ysyu.kr/2020/03/how-to-install-wsl2-with-docker/
WSL2(Windows Subsystem for Linux 2) 설치하기 with Dokcer
WSL2(Windows Subsystem for Linux 2)는 WSL의 후속으로 조금 더 빠르고, 조금 더 윈도우 커널에 찰싹 들러붙도록 설계되었다. 이 기능은 Windows 10 20H1(2020년 4월 릴리즈 예정)에서
ysyu.kr
WSL2 설치 및 Docker & CUDA 사용 방법
1. Docker Install WSL2 설치 및 사용 방법 https://www.44bits.io/ko/post/wsl2-install-and-basic-usage WSL2(Windows Subsystem for Linux 2) 설치 및 사용 방법 지난 5월 윈도우10의 대규모 업데이트가 있었습..
rosypark.tistory.com
WSL2에서 Ubuntu GUI 프로그램 실행하기 (VcXsrv)
WSL2가 Hyper-V를 이용한 VM 방식으로 바뀌면서 기존에 WSL1에서 사용하던 방식으로는 우분투의 GUI 프로그램을 실행할 수 없게 됐다. WSL1은 호스트와 이더넷을 공유했기에 WSL1와 (로컬호스트인) 127.0.0
thenoface.tistory.com
근데 해당 환경에서 GPU 활용은 가능한가?
실컷 다 환경 구축했는데 GPU를 사용하지 못한다면 전혀 의미가 없다...
(아 참고로 이것만을 위해 RTX3090 이 대기중이다...ㅎ)
docs.docker.com/config/containers/resource_constraints/#gpu
Runtime options with Memory, CPUs, and GPUs
docs.docker.com
공식 홈페이지에 보면 NVIDIA GPU도 이제 지원해주는 것 같다 (나이스)
아래에서 설치팩을 다운받거나,
www.nvidia.com/Download/index.aspx
Download Drivers | NVIDIA
www.nvidia.com
아니면 아래와 같이 우분투에서 직접 명령어를 작성하여 설치할 수도 있다.
nvidia.github.io/nvidia-container-runtime/
Repository configuration
NVIDIA container runtime repository.
nvidia.github.io
아래는 Docker 컨테이너에서 그래픽카드 드라이버 설치하는 전체 과정
docker 컨테이너에서 GPU 사용
본 내용은 2020년 5월 14일에 작성 됨 본 내용은 docker community에디션 19.03.5 버전을 기준으로 작성 됨 예전에 docker에서 gpu를 사용해야 할때, nvidia 그래픽 카드를 지원하는 nvidia-docker 명령어를 따로..
ykarma1996.tistory.com
WSL2 설치 및 Docker & CUDA 사용 방법
1. Docker Install WSL2 설치 및 사용 방법 https://www.44bits.io/ko/post/wsl2-install-and-basic-usage WSL2(Windows Subsystem for Linux 2) 설치 및 사용 방법 지난 5월 윈도우10의 대규모 업데이트가 있었습..
rosypark.tistory.com
그 다음에는 CUDA와 CuDNN을 설치해야 한다고 한다.
근데 CUDA는 뭐고 CuDNN은 뭐지??
3.GPGPU와 CUDA (feat.cuDNN)
안녕하세요~ 이번글은 GPGPU라는 개념과 CUDA를 소개하면 GPU구조를 가볍게 살펴볼거에요. CPU는 다양한 시스템 자원(ex; I/O device)를 제어해야하고 복잡한 명령들을 처리해야하기 때문에 연산을 위한
89douner.tistory.com
위 글에 따르면,
CUDA: GPU의 등장으로 C/C++ 언어로 병렬계산에 필요한 기능들을 제공해주는 소프트웨어 중 하나, NVIDIA의 소프트웨어. 따라서 Tensorflow, Pytorch 등의 framework를 설치할 때에 먼저 설치해야 하는 소프트웨어라고 한다.
(Tensorflow, Pytorch 비교는 나중에 다시 다뤄보도록 하겠다...)
cuDNN:
하드웨어 가속: 컴퓨팅 일부 기능을 CPU에서 구동하는 소프트웨어 방식보다 더 빠르게 수행할 수 있는 하드웨어의 사용 (예: GPU 블리팅 가속 기능, 블로그에서 소개를 하고는 있는데 정확히 뭔지는 몰겠다. 나중에 다시 검색해봐야지)
그럼 WSL2로 CUDA를 설치해보자
WSL2로 CUDA 개발환경 구성하기
NVIDIA DRIVER 설치 https://developer.nvidia.com/cuda/wsl/download 위 링크에서 컴퓨터 환경에 맞게 nvidia 드라이버를 다운로드 받아준다. CUDA 설치 CUDA 설치를 위한 network repository를 설정한다. sudo a..
sincerechloe.tistory.com
docs.nvidia.com/cuda/wsl-user-guide/index.html
CUDA on WSL :: CUDA Toolkit Documentation
Windows Subsystem for Linux (WSL) is a Windows 10 feature that enables users to run native Linux command-line tools directly on Windows. WSL is a containerized environment within which users can run Linux native applications from the command line of the Wi
docs.nvidia.com
설치된 뒤, 확인하는 방법:
WSL2 CUDA - WSL2에서 Ubuntu와 CUDA 사용하기 - 라임오렌지파이와 일상
WSL2에서 CUDA 사용하기 - Windows 10 Insider Preview 20150 버전부터 사용할 수 있는, WSL2 with CUDA(NVIDIA GPU) Acceleartion, 설치법 및 Tensorflow를 이용한 사용법
dailylime.kr
그리고 아무래도 Ubuntu를 깔았으면 GUI도 있으면 좋겠다 싶어서 찾아본 글:
WSL2에서 Ubuntu GUI 프로그램 실행하기 (VcXsrv)
WSL2가 Hyper-V를 이용한 VM 방식으로 바뀌면서 기존에 WSL1에서 사용하던 방식으로는 우분투의 GUI 프로그램을 실행할 수 없게 됐다. WSL1은 호스트와 이더넷을 공유했기에 WSL1와 (로컬호스트인) 127.0.0
thenoface.tistory.com
이정도로 하면 얼추 설치는 다 된 것이라고 봐도 될듯...?