tensorflow-gpu 설치방법

choi jihwan·2021년 1월 22일
0

0. 목표 및 환경

  • turtlebot3 waffle_pi의 시뮬레이션 환경을 위하여 tensorflow-gpu를 설치 및 실행한다.
  • python 2.7.15
  • anaconda 5.2.0
  • 우리의 환경에 맞는 버전의 CUDA와 cuDNN을 설치한다. 링크

1. tensorflow-gpu 설치

  1. tensorflow-gpu 버전을 설치한다. 나같은 경우 python 2.7.15를 사용하고 turtlebot3를 제작한 ROBOTIS에서 권장하는 버전인 1.8.0을 다운 받도록 했다.
    $ pip install tensorflow-gpu==1.8.0
  2. tensorflow가 잘 설치되었는지 확인한다.
    $ pip list

2. NVIDIA Graphics Driver 설치

  1. 아래 명령어를 통해 업데이트 및 업그레이드를 한다.
    ```terminal
    $ sudo apt-get update
    $ sudo apt-get upgrade
    ```
  2. 우리 환경에 맞는 NVIDIA Graphics Driver를 설치하도록 한다.
    CUDA 버전Driver
    CUDA 9.2396.XX
    CUDA 9.1387.XX
    CUDA 9.0384.XX
    CUDA 8.0 (GA2)375.XX
    CUDA 8.0367.4X
    CUDA 7.5352.XX
    CUDA 7.0346.XX
    우리의 경우 CUDA 9.0을 설치해야하기 때문에 384 버전을 다운받도록 한다.
    $ sudo apt-get install nvidia-384 nvidia-modprobe
    그 뒤 리부트 하면서 BIOS로 진입한 뒤, Secure Boot을 disable해준다.
    그 다음 nvidia-smi를 입력하면 아래와 같이 나오는 것을 확인 할 수 있다.
 Wed Apr 11 23:34:18 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.111                Driver Version: 384.111                   |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1060    Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   60C    P5     8W /  N/A |    242MiB /  6072MiB |      3%      Default |
+-------------------------------+----------------------+----------------------+                                                                             
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1003      G   /usr/lib/xorg/Xorg                           177MiB |
|    0      1646      G   compiz                                        60MiB |
|    0      2230      G   /usr/lib/firefox/firefox                       1MiB |
+-----------------------------------------------------------------------------+

3. CUDA 9.0 설치

  1. 다음 명령어를 입력해서 CUDA 9.0을 다운받거나 다음 링크로 가서 원하는 버전의 CUDA를 다운 받는다.
	$ wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run
  1. 다운 받은 파일이 있는 폴더로 이동한 뒤 다음 명령어를 입력한다.
	$ chmod +x cuda_9.0.176_384.81_linux-run
	$ ./cuda_9.0.176_384.81_linux-run --extract=$HOME
  1. 그 결과 총 3가지의 파일을 얻게 될 것인데, 차례대로 실행한다. 나오는 모든 질문에 accept 한다. (NVIDIA 드라이버는 이미 다운 받았기때문에 안해도 된다.)
    $ sudo ./cuda-linux.9.0.176-22781540.run
    $ sudo ./cuda-samples.9.0.176-22781540-linux.run
  2. 설치가 완료되면 runtime library를 설정한다.
    $ sudo bash -c "echo /usr/local/cuda/lib64/ > /etc/ld.so.conf.d/cuda.conf"
    $ sudo ldconfig
  3. 우분투의 경우, /etc/environment/usr/local/cuda/bin를 추가해주는 것으로 환경 변수 설정을 할 수 있다. 이를 위해 재부팅한 뒤 $ sudo nano /etc/environment를 통해 들어간 뒤, PATH="/어쩌고:/어쩌고/어쩌고" 되어있는것의 "" 안에 :를 포함해서 :/usr/local/cuda/bin을 추가해준다.
  4. 재부팅한 뒤, make를 통해 설치를 완료해주도록 한다.
    $ cd /usr/local/cuda-9.0/samples
    $ sudo make
  5. 한참 지나고 나서 아래 명령어를 통해 cuda가 그래픽카드를 잘 잡았는지 확인한다.
    $ cd /usr/local/cuda/samples/bin/x86_64/linux/release
    $ ./deviceQuery
    그러면 아래와 같은 결과가 나오고 자신의 그래픽카드의 이름을 확인한 뒤 마지막 result에 Pass가 있을을 확인한다.
    ./deviceQuery Starting...
    CUDA Device Query (Runtime API) version (CUDART static linking)
    Detected 1 CUDA Capable device(s)
    Device 0: "GeForce GTX 1060"
    CUDA Driver Version / Runtime Version          9.0 / 9.0
    CUDA Capability Major/Minor version number:    6.1
    Total amount of global memory:                 6073 MBytes (6367739904 bytes)
    (10) Multiprocessors, (128) CUDA Cores/MP:     1280 CUDA Cores
    GPU Max Clock rate:                            1671 MHz (1.67 GHz)
    Memory Clock rate:                             4004 Mhz
    Memory Bus Width:                              192-bit
    L2 Cache Size:                                 1572864 bytes
    Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
    Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
    Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
    Total amount of constant memory:               65536 bytes
    Total amount of shared memory per block:       49152 bytes
    Total number of registers available per block: 65536
    Warp size:                                     32
    Maximum number of threads per multiprocessor:  2048
    Maximum number of threads per block:           1024
    Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
    Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
    Maximum memory pitch:                          2147483647 bytes
    Texture alignment:                             512 bytes
    Concurrent copy and kernel execution:          Yes with 2 copy engine(s)
    Run time limit on kernels:                     Yes
    Integrated GPU sharing Host Memory:            No
    Support host page-locked memory mapping:       Yes
    Alignment requirement for Surfaces:            Yes
    Device has ECC support:                        Disabled
    Device supports Unified Addressing (UVA):      Yes
    Supports Cooperative Kernel Launch:            Yes
    Supports MultiDevice Co-op Kernel Launch:      Yes
    Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
    Compute Mode:
       < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
    deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Version = 9.0, NumDevs = 1
    Result = PASS

    4. cuDNN 7.0 설치

  • NVIDIA Driver와 마찬가지로 다음 링크로 가서 원하는 버전의 runtile library, developer library, code samples library 3가지 파일을 같은 폴더에 저장한다.
  • 아래 명령어를 입력해서 각 파일들을 실행한다.
    $ sudo dpkg -i libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb
    $ sudo dpkg -i libcudnn7-dev_7.00.5.15-1+cuda9.0_amd64.deb
    $ sudo dpkg -i libcudnn7-doc_7.0.5.15-1+cuda9.0_amd64.deb
  • 아래 명령어를 차례대로 입력해서 제대로 설치되었는지 확인한다.
    $ cp -r /usr/src/cudnn_samples_v7/ ~
    $ cd ~/cudnn_samples_v7/mnistCUDNN
    $ make clean && make
    $ ./mnistCUDNN
  • 설치가 잘되어 테스트가 성공적으로 실행되었다면 Test passed!를 확인할 수 있다.

마지막으로 아래 명령어를 입력해서 path 설정을 한다.

	export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64" 
profile
I don't know what I like yet, so I'll just do what I'm attracted to.

0개의 댓글