일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 특가촌
- 뷰 상태 저장
- 타이머앱
- moveToState
- 안드로이드 클린 아키텍쳐
- nvidia-docker
- 카드내역 공유
- recyclerview
- RxJava
- 뷰 상태복구
- todofication
- onViewCreated
- 올인원타이머
- fragment
- android clean architecture
- 특가게시판
- 작성
- 안드로이드
- Android
- Quickly
- RX
- 특가알람
- kotlin
- compileKotlin FAILED
- Koin
- 카드 내역 공유 앱
- 대학톡
- List
- java.lang.OutOfMemoryError: Java heap space
- andorid
- Today
- Total
seoft
Tensorflow Docker 환경에서 GPU 연동 본문
Environment (작성시점 : 19.12.15)
OS : Ubuntu 18.04
GPU : GTX 1080
이전글 https://seoft.tistory.com/28(Ubuntu 18.04 설치 ~ nvidia-docker 세팅)에 이어
docker환경에서 Tensorflow GPU연동을 위해 시행착오 겪은 내용들 정리
이전 글의 nvidia-docker 세팅 후 쿠다기반 도커 이미지에서 tensorflow를 넣어 돌리면 되는줄 알았으나
tensorflow에서 GPU를 적용하기 위해서 지원하는 driver, cuda 버전을 맞출 필요가 있었다.
* 작성 시점 기준 : TensorFlow supports CUDA 10.0 (TensorFlow >= 1.13.0)
그래서 최신 GPU 드라이버와 쿠다 버전이 아닌 텐서플로우에 지원하는 버전으로 설치하는 방향으로 진행하였다.
GPU 드라이버 설치
해당 가이드의 Linux setup을 OS버전에 맞게 진행
export 구문도 진행
Docker에서의 Tensorflow환경을 위해 host는 GPU 드라이버만 필요
CUDA, CUDNN 설치하지 않고 다음까지 진행 : ~ Reboot. Check that GPUs are visible using the command: nvidia-smi
https://www.tensorflow.org/install/gpu
(텐서플로우에 맞는 GPU 드라이버, CUDA버전 대상으로 설치 가이드가 있는듯함)
도커 설치
작성 시점 기준 nvidia-docker2는 deprecated되어 19.03이상(최신)으로 설치
최신 도커 설치 : https://computingforgeeks.com/how-to-install-docker-on-ubuntu/
이후, 해당 가이드의 Quick Start를 OS 버전에 맞게 진행
https://github.com/NVIDIA/nvidia-docker
Tensorflow 도커 실행
해당 가이드 참조하여 도커실행
https://www.tensorflow.org/install/docker
해당 가이드는 deprecated된 nvidia-docker2의 GPU 사용 명령어 를 가이드 (작성 시점 기준)
--runtime=nvidia
대신 최신 버전의 명령어로 진행 필요
--gpus all
py3, tensor, gpu, jupyter 를 포함한 full run 명령어 예시
docker run -it --name tensor -p 6006:6006 -p 8888:8888 -v /data:/tf/data --gpus all tensorflow/tensorflow:latest-gpu-py3-jupyter
검증
Tensor GPU 사용 검증을 위해 다음 방법들을 진행
1. 도커 컨테이너 내 다음 명령어 실행
nvidia-smi
2. Host에서 다음 코드 실행
lspci | grep -i nvidia
3. 컨테이너 내 python에서 다음 코드 실행
print("GPU is", "available" if tf.config.experimental.list_physical_devices("GPU") else "NOT AVAILABLE")
// result : GPU is available
4. gpustat
실제 돌려봤을때 nvidia-smi에 process되는 리스트가 비어있어 GPU를 setup은 됬지만 사용이 안되는줄 알았으나
컨테이너 내에서 kaggle의 예제를 돌리고, gpustat을 확인했을때 GPU가 사용됨을 확인
'etc' 카테고리의 다른 글
ubuntu java gradle 설치, 환경변수 설정 (0) | 2022.12.18 |
---|---|
Android Studio / intellij 설치 후 초기 세팅 (0) | 2020.01.06 |
Ubuntu 18.04 설치 ~ nvidia-docker 세팅 (0) | 2019.12.15 |
ubuntu 터미널 현 디렉토리 우측에 git branch 출력 (2) | 2019.10.07 |
git merge, rebase, cherry-pick, reset, Squash and merge 정리 (0) | 2019.09.27 |