또이리의 Server Engineer

TensorFlow install (NVIDA NGC) 텐서플로우 설치 본문

Linux Engineer

TensorFlow install (NVIDA NGC) 텐서플로우 설치

또이리 2021. 1. 21. 18:08

Tensorflow install (NVIDIA NGC) 텐서플로우 설치

TensorFlow nvidia-docker install

 

오늘은 docker를 통하여 간단하게 tensorflow를 설치해보겠습니다. 도커를 이용해서 텐서플로우를 사용하실 거라면, 엔비디아 드라이버, 도커-ce, nvidia-docker만 설치를 하면 됩니다.

 

엔비디아 드라이버 설치

엔비디아 드라이버를 설치하는 가장 간단한 방법은 레포지터를 추가하여 설치하는 방법입니다. 설치하고자 하는 서버가 가 인터넷에 연결되어 있다면 아래와 같이 진행하면 됩니다.

 

테스트 OS는 ubuntu 16.04.7 LTS server 입니다. 그래픽카드 즉, GPU는 RTX 3090입니다.

root@ubuntu:~# apt-add-repository ppa:graphics-drivers/ppa
 Fresh drivers from upstream, currently shipping Nvidia.

## Current Status

Current long-lived branch release: `nvidia-430` (430.40)
Dropped support for Fermi series (https://nvidia.custhelp.com/app/answers/detail/a_id/4656)

Old long-lived branch release: `nvidia-390` (390.129)

For GF1xx GPUs use `nvidia-390` (390.129)
For G8x, G9x and GT2xx GPUs use `nvidia-340` (340.107)
For NV4x and G7x GPUs use `nvidia-304` (304.137) End-Of-Life!

Support timeframes for Unix legacy GPU releases:
https://nvidia.custhelp.com/app/answers/detail/a_id/3142

## What we're working on right now:

- Normal driver updates
- Help Wanted: Mesa Updates for Intel/AMD users, ping us if you want to help do this work, we're shorthanded.

## WARNINGS:

This PPA is currently in testing, you should be experienced with packaging before you dive in here:

Volunteers welcome!

### How you can help:

## Install PTS and benchmark your gear:

    sudo apt-get install phoronix-test-suite

Run the benchmark:

    phoronix-test-suite default-benchmark openarena xonotic tesseract gputest unigine-valley

and then say yes when it asks you to submit your results to openbechmarking.org. Then grab a cup of coffee, it takes a bit for the benchmarks to run. Depending on the version of Ubuntu you're using it might preferable for you to grabs PTS from upstream directly: http://www.phoronix-test-suite.com/?k=downloads

## Share your results with the community:

Post a link to your results (or any other feedback to): https://launchpad.net/~graphics-drivers-testers

Remember to rerun and resubmit the benchmarks after driver upgrades, this will allow us to gather a bunch of data on performance that we can share with everybody.

If you run into old documentation referring to other PPAs, you can help us by consolidating references to this PPA.

If someone wants to go ahead and start prototyping on `software-properties-gtk` on what the GUI should look like, please start hacking!

## Help us Help You!

We use the donation funds to get the developers hardware to test and upload these drivers, please consider donating to the "community" slider on the donation page if you're loving this PPA:

http://www.ubuntu.com/download/desktop/contribute
 More info: https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa
Press [ENTER] to continue or ctrl-c to cancel adding it

 

root@ubuntu:~# apt-add-repository ppa:graphics-drivers/ppa

다음과 입력하시고 엔터를 누르시면 레포지터리가 등록됩니다.

 

레포지터리가 등록 되었다면, apt-get update를 진행하여 목록을 업데이트합니다.

root@ubuntu:~# apt-get update
Hit:1 https://download.docker.com/linux/ubuntu xenial InRelease
Hit:2 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu xenial InRelease
Hit:3 https://nvidia.github.io/libnvidia-container/stable/ubuntu16.04/amd64  InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu xenial InRelease
Get:5 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB]
Hit:6 https://nvidia.github.io/nvidia-container-runtime/stable/ubuntu16.04/amd64  InRelease
Get:7 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Hit:8 https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64  InRelease
Get:9 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Fetched 325 kB in 2s (145 kB/s)
Reading package lists... Done
root@ubuntu:~#

 

이제 apt-get install 명령어로 엔비디아 드라이버를 설치할 수 있습니다.

apt-get install nvidia- 까지 타이핑 하시고 tab 키를 누르시면 현재 설치 가능한 nvidia driver version이 화면에 표시됩니다.

 

ubuntu18.04 나 20.04에서는 apt-get install nvidia-driver-까지 타이핑하셔야 설치 가능한 드라이버 버전이 표시됩니다.

root@ubuntu:~# apt-get install nvidia-
Display all 107 possibilities? (y or n)
nvidia-304                     nvidia-current-dev
nvidia-304-dev                 nvidia-current-updates
nvidia-304-updates             nvidia-current-updates-dev
nvidia-304-updates-dev         nvidia-docker
nvidia-331                     nvidia-docker2
nvidia-331-dev                 nvidia-experimental-304
nvidia-331-updates             nvidia-experimental-304-dev
nvidia-331-updates-dev         nvidia-libopencl1-304
nvidia-331-updates-uvm         nvidia-libopencl1-304-updates
nvidia-331-uvm                 nvidia-libopencl1-331
nvidia-340                     nvidia-libopencl1-331-updates
nvidia-340-dev                 nvidia-libopencl1-340
nvidia-340-updates             nvidia-libopencl1-340-updates
nvidia-340-updates-dev         nvidia-libopencl1-346
nvidia-340-updates-uvm         nvidia-libopencl1-346-updates
nvidia-340-uvm                 nvidia-libopencl1-352
nvidia-346                     nvidia-libopencl1-352-updates
nvidia-346-dev                 nvidia-libopencl1-361
nvidia-346-updates             nvidia-libopencl1-361-updates
nvidia-346-updates-dev         nvidia-libopencl1-367
nvidia-352                     nvidia-libopencl1-375
nvidia-352-dev                 nvidia-libopencl1-384
nvidia-352-updates             nvidia-libopencl1-410
nvidia-352-updates-dev         nvidia-libopencl1-415
nvidia-361                     nvidia-libopencl1-418
nvidia-361-dev                 nvidia-libopencl1-430
nvidia-361-updates             nvidia-modprobe
nvidia-361-updates-dev         nvidia-nsight
nvidia-367                     nvidia-opencl-dev
nvidia-367-dev                 nvidia-opencl-icd-304
nvidia-375                     nvidia-opencl-icd-304-updates
nvidia-375-dev                 nvidia-opencl-icd-331
nvidia-384                     nvidia-opencl-icd-331-updates
nvidia-384-dev                 nvidia-opencl-icd-340
nvidia-410                     nvidia-opencl-icd-340-updates
nvidia-410-dev                 nvidia-opencl-icd-346
nvidia-415                     nvidia-opencl-icd-346-updates
nvidia-415-dev                 nvidia-opencl-icd-352
nvidia-418                     nvidia-opencl-icd-352-updates
nvidia-418-dev                 nvidia-opencl-icd-361
nvidia-430                     nvidia-opencl-icd-361-updates
nvidia-430-dev                 nvidia-opencl-icd-367
nvidia-cg-dev                  nvidia-opencl-icd-375
nvidia-cg-doc                  nvidia-opencl-icd-384
nvidia-cg-toolkit              nvidia-opencl-icd-410
nvidia-common                  nvidia-opencl-icd-415
nvidia-container-runtime       nvidia-opencl-icd-418
nvidia-container-runtime-hook  nvidia-opencl-icd-430
nvidia-container-toolkit       nvidia-persistenced
nvidia-cuda-dev                nvidia-prime
nvidia-cuda-doc                nvidia-profiler
nvidia-cuda-gdb                nvidia-settings
nvidia-cuda-toolkit            nvidia-visual-profiler
nvidia-current
root@ubuntu:~# apt-get install nvidia-

해당 OS에서는 nvidia-430 버젼까지만 표시가 됩니다. 스토리 작성 당시 460 버전까지 나왔는 것을 홈페이지에서 확인했습니다.

 

우분투 18.04에서도 460 버젼까지 레포지터리 등록으로 설치할 수 있습니다. 16.04는 430 버전 이후로 레포지터리 등록이 안되고 있는 것 같습니다.

 

여하튼 우분투에서는 인터넷만 연결되어 있다면, 이렇게 간단하게 엔비디아 드라이버 설치가 가능합니다.

 

저는 RTX 3090을 사용하기 때문에 엔비디아 홈페이지에서 455버젼을 다운로드 받아서 설치했습니다.

RTX 3090

위의 사진은 드라이버 설치 이후 gpu burn을 실행 한 상태입니다.

 

이제 엔비디아 드라이버 설치가 완료 됬습니다. 도커를 설치하겠습니다.

 

도커 설치

도커 설치 또한 매우 간단합니다.

sudo apt-get update
sudo apt-get -y install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
sudo apt-get update
sudo apt-get -y install docker-ce

 

엔비디아 도커 설치

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
sudo apt-get install -y nvidia-docker2

 

위의 명령어들을 스크립트로 사용하셔도 되고, 그대로 복사 붙여 넣기로 명령어 프롬프트에 사용하셔도 설치 가능합니다.

도커, 엔비디아 도커 설치 후

 

systemctl restart docker.service로 도커를 재시작합니다.

systemctl status docker.service로 도커 서비스를 확인합니다.

docker.service

위의 사진과 같이 Active: active (running) 상태이면 도커 서비스가 정상 작동하는 것입니다.

 

텐서플로우 이미지 당겨오기

docker pull tensorflow/tensorflow:latest-gpu

docker pull nvcr.io/nvidia/tensorflow:20.12-tf2-py3

 

컨테이너 생성, 실행

docker run --runtime=nvidia -it --rm nvidia/cuda nvidia-smi

docker run --gpus all -it --rm nvidia/cuda nvidia-smi

 

docker run --runtime=nvidia -it --rm tensorflow/tensorflow:latest-gpu

docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu

 

로컬 볼륨 마운트

docker run --runtime=nvidia -it --rm -v /root:/root nvcr.io/nvidia/tensorflow:20.12-tf2-py3

docker run --gpus all -it --rm -v /root:/root nvcr.io/nvidia/tensorflow:20.12-tf2-py3

 

벤치마크 다운로드

git clone https://github.com/tensorflow/benchmarks.git

 

참고사이트

 

nvidia driver download

https://www.nvidia.co.kr/Download/index.aspx?lang=kr

 

NVIDIA 드라이버 다운로드

 

www.nvidia.co.kr

 

docker install

https://docs.docker.com/engine/install/

 

Install Docker Engine

 

docs.docker.com

 

nvidia-docker install

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker

 

Installation Guide — NVIDIA Cloud Native Technologies documentation

On RHEL 7, install the nvidia-container-toolkit package (and dependencies) after updating the package listing: Restart the Docker daemon to complete the installation after setting the default runtime: Note Depending on how your RHEL 7 system is configured

docs.nvidia.com

 

tensorflow install

https://www.tensorflow.org/install/docker

 

Docker  |  TensorFlow

Docker는 컨테이너를 사용하여 TensorFlow 설치를 나머지 시스템에서 격리하는 가상 환경을 만듭니다. TensorFlow 프로그램은 호스트 머신과 리소스를 공유(디렉터리 액세스, GPU 사용, 인터넷 연결 등)

www.tensorflow.org

 

ngc tensorflow

https://ngc.nvidia.com/catalog/containers/nvidia:tensorflow

 

NVIDIA NGC

 

ngc.nvidia.com

 

Comments