-
Notifications
You must be signed in to change notification settings - Fork 2
How to Set Environment for Development
Seunghan Lim edited this page Jan 28, 2019
·
81 revisions
- 기존 윈도우 시스템의 안정적인 운용을 위해 별도의 하드에 우분투를 설치하는 것이 안정적인 운용이 가능하다.
- 데스크탑용 우분투를 다운로드한다. [다운로드 사이트]
- 우분투 설치를 위해 USB를 부팅가능하도록 만든다. [참고 사이트]
- USB로 부팅하여 설치를 진행한다.
- 'Installation type'에너 'Something else'를 선택한다.
- 설치할 때 '/boot' 영역은 500MB(주파티션), '/' 영역은 50GB(주파티션), 'Swap' 영역은 32GB(주파티션), '/home' 영역은 드라이브의 나머지(논리파티션)를 할당한다.
- 'Device for boot loader installation'에서는 Ubuntu를 설치하는 드라이브를 선택한다.
- System Setting > Software & Updates > Updates 로 이동
- 안정적인 시스템 운용을 위해 Unsupported updates (xenial-backports) 체크 해제
- 터미널창 명령
sudo apt-get update sudo apt-get upgrade
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-384
[참고 사이트]
- Repository 셋업
- 패키지 인덱스 업데이트
sudo apt-get update
- https 기반 repository의 apt 설치를 인가하기 위한 패키지 설치
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
- Docker 공식 GPG key 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 안정적인 repository를 설정한다.
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- Docker CE 설치
- 패키지 인덱스 업데이트
sudo apt-get update
- 최신 버전 Docker CE 설치
sudo apt-get install docker-ce
- 'hello-world' 이미지를 통해서 설치 검증
sudo docker run --rm hello-world
- 패키지 repository 추가
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
- NVIDIA-docker v2.0 설치
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
- 설치 검증
sudo docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
- Docker 이미지, 컨테이너 설치 폴더 변경 [참고 사이트]
- Docker 서비스 중지 및 폴더 생성
sudo serviece docker stop mkdir DIR_DOCKER
- Docker daemon 설정 파일 생성(또는 수정)
sudo gedit /etc/docker/daemon.json
- 아래 구문 추가
{ "data-root": "DIR_DOCKER", "storage-driver": "overlay", "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } } }
- Docker 서비스 재실행
sudo service docker start
- 확인
sudo lsof | grep DIR_DOCKER
-
NVIDIA GPU CLOUD에 로그인
- 가입 후 개인 API Key를 얻어야 각종 도커 이미지를 다운로드할 수 있다.
- 해당 컴퓨터로 1회 해놓으면 향후 별도 로그인은 불필요하다.
- 터미널창 명령
sudo docker login nvcr.io Username: $oauthtoken Password: NGC에 가입하면 얻을 수 있는 API Key 입력
[참고사이트]
- Docker 프로세스 중지
sudo service docker stop
- Docker 이미지나 컨테이너를 저장할 폴더 생성
mkdir -p /home/USER/DOCKERFOLDER
- Docker 환경정보 파일 열기
sudo gedit /etc/default/docker
- Docker_OPT 변경
DOCKER_OPTS="-g /home/USER/DOCKERFOLDER"
- Docker 프로세스 시작
sudo service docker start
- 아래 명령어를 통해 NVIDIA에서 제공하는 DIGITS 기반 학습환경 컨테이너 생성
sudo docker run --runtime=nvidia --name digits -d -p 5000:5000 -v [Source Directory]:[Target Directory] nvcr.io/nvidia/digits:18.07
- Tip!
- [Source Directory]에
/home/USER/
를 - [Target Directory]에
/workspace/
를 - 입력하면 자신의 폴더를 컨테이너에서도 자유롭게 이용할 수 있다.
- [Source Directory]에
- 포트 5000으로 연결해놓았으므로 Chrome 등을 통해서 0.0.0.0:5000에 접속
- 주요 명령어 정리
sudo docker stop digits # 컨테이너 중지 sudo docker start digits # 컨테이너 시작 sudo docker exec -it digits bash # 컨테이너 내부 쉘 명령 창
-
아래 명령어를 통해 NVIDIA에서 제공하는 TensorFlow 기반 학습환경 컨테이너 생성
sudo docker run -it --runtime=nvidia --name tensorflow -v [Source Directory]:[Target Directory] -p 8888:8888 nvcr.io/nvidia/tensorflow:18.07-py3
- Tip!
- [Source Directory]에
/home/USER/
를 - [Target Directory]에
/workspace/
를 - 입력하면 자신의 폴더를 컨테이너에서도 자유롭게 이용할 수 있다.
- [Source Directory]에
- Tip!
-
설치여부 확인
-
python
실행 - 아래 명령어 코딩
import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello))
-
Hello, TensorFlow!
출력되는 지 확인
-
-
Jupyter Notebook 사용 방법
- 컨테이너 내부에서 Jupyter Notebook 설치
python3 -m pip install --upgrade pip python3 -m pip install jupyter
- 아래 명령어로 Jupyter Notebook 실행
jupyter notebook --allow-root --ip 0.0.0.0
- 컨테이너 외부 브라우져에서 0.0.0.0:8888에 접속 또는 Pycharm 등을 이용해서 Jupyter Notebook 파일 만들어서 해당 서버주소 입력
- 컨테이너 내부에서 Jupyter Notebook 설치
-
주요 명령어 정리
sudo docker stop tensorflow # 컨테이너 중지 sudo docker start tensorflow # 컨테이너 시작 sudo docker exec tensorflow jupyter notebook --allow-root --ip 0.0.0.0 # Jupyter Notebook 바로 실행
-
matplotlib에서 한글 사용이 가능하도록 폴트 설정
sudo docker exec -it tensorflow bash # tensorflow 컨테이너로 들어가서 콘솔명령으로 설치할 수 있도록 함. apt-get install fontconfig apt-get install fonts-nanum* sudo fc-cache -fv cp /usr/share/fonts/truetype/nanum/Nanum* /usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/fonts/ttf/ rm -rf /home/ubuntu/.cache/matplotlib/*
- GitHub Mirosoft/AirSim 참고
- Unreal Engine 4.18 소스코드 복사 및 컴파일
git clone -b 4.18 https://github.com/EpicGames/UnrealEngine.git cd UnrealEngine ./Setup.sh ./GenerateProjectFiles.sh make
- AirSim 1.2 소스코드 복사 및 컴파일
cd .. git clone https://github.com/Microsoft/AirSim.git cd AirSim ./setup.sh ./build.sh
- 최신 버전(3.3 L4T)을 다운로드 받는다. 링크
-
설치안내 링크에 따라 설치한다.
- Jetpack을 설치하고 나면
sudo apt-get update
수행 시에 오류가 발생할 수 있다. 이는 JetPack이 Jetson TX2를 지원하기 위해서 arm64를 지원하도록 ppa를 지정했기 때문으로 보인다. 아직 이 문제는 해결되지 않았으나 NVIDIA에서는 기능상 문제는 없다고 얘기하고 있다. 참고 - 위 문제를 해결하려면 arm64 아키텍쳐와 관련된 설정들을 삭제하기 위해서 아래 명령어를 실행한다.
sudo dkpg --force-architecture --remove-architecture arm64 sudo apt-get -f install
- Jetpack을 설치하고 나면