Home » Install tensorflow+ubuntu14.04+gtx 980 ti

Install tensorflow+ubuntu14.04+gtx 980 ti

텐서플로우를 나도 한번 테스트 해보고자 그래픽카드 (NVIDIA 980 TI)를 사고 이틀 삽질하다가 드디어 설치가 완료가 되어 기쁜 마음으로 랩 노트를 작성해 봅니다.

1. 하드웨어 및 설정

lshw -short

H/W path Device Class Description
system To Be Filled By O.E.M. (To Be Filled By O.E.M.)
/0 bus B150M-HDV
/0/0 memory 64KiB BIOS
/0/9 memory 128KiB L1 cache
/0/a memory 128KiB L1 cache
/0/b memory 1MiB L2 cache
/0/c memory 6MiB L3 cache
/0/d processor Intel(R) Core(TM) i5-6600 CPU @ 3.30GHz
/0/e memory 16GiB System Memory
/0/e/0 memory 8GiB DIMM Synchronous 2133 MHz (0.5 ns)
/0/e/1 memory 8GiB DIMM Synchronous 2133 MHz (0.5 ns)
/0/100 bridge Sky Lake Host Bridge/DRAM Registers
/0/100/1 bridge Sky Lake PCIe Controller (x16)
/0/100/1/0 display GM200 [GeForce GTX 980 Ti]
/0/100/1/0.1 multimedia NVIDIA Corporation
/0/100/14 bus Sunrise Point-H USB 3.0 xHCI Controller
/0/100/14.2 generic Sunrise Point-H Thermal subsystem
/0/100/16 communication Sunrise Point-H CSME HECI #1
/0/100/17 storage Sunrise Point-H SATA controller [AHCI mode]
/0/100/1c bridge Sunrise Point-H PCI Express Root Port #5
/0/100/1c.7 bridge Sunrise Point-H PCI Express Root Port #8
/0/100/1c.7/0 eth0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/1f bridge Sunrise Point-H LPC Controller
/0/100/1f.2 memory Memory controller
/0/100/1f.3 multimedia Sunrise Point-H HD Audio
/0/100/1f.4 bus Sunrise Point-H SMBus
/0/1 scsi0 storage
/0/1/0.0.0 /dev/sda disk 256GB Samsung SSD 850
/0/1/0.0.0/1 /dev/sda1 volume 222GiB EXT4 volume
/0/1/0.0.0/2 /dev/sda2 volume 15GiB Extended partition
/0/1/0.0.0/2/5 /dev/sda5 volume 15GiB Linux swap / Solaris partition
/0/2 scsi1 storage
/0/2/0.0.0 /dev/sdb disk 3TB ST3000DM001-1CH1
/0/2/0.0.0/1 /dev/sdb1 volume 2047GiB EXT4 volume

  • 먼저 SSD 드라이브에 우분투 14.04 LTS 버전을 설치
  • 모니터를 외장 그래픽 카드에 붙이니 보이지 않습니다. ㅜㅜ 한참 검색으로 찾다가 BIOS 에서 설정을 해야 한다는 사실을 깨닫게 되고 Primary GPU 를 PCIe 로 바꾸고 재부팅 합니다.
  • 재부팅 하면 모니터에 뭔가 뜨는 데, 전원을 연결하라는 문구가 뜹니다. 아.~!! GPU 에도 전원 케이블이 있었다는 사실을 뒤늦게 알아채리고 부랴부랴 다시 뜯어서 연결해 줍니다.
  • 이제야 온전히 모니터에 정상적인 부팅화면이 뜹니다.

2. GPU 드라이버 설치

  • 먼저 NVIDIA 드라이버를 설치해 줘야 합니다. CUDA 바로 설치하다가 화면이 먹통이 되서 3-4번 우분투를 다시 깔았습니다.
  • 다음 명령어를 이용하여 설치 합니다.

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-352 nvidia-settings

  • 설치한 후에
    nvidia-smi -a 를 쳐서 뭔가 화면에 뿌려지면 정상적으로 설치된 겁니다.

  • 이제 재부팅합니다.

3. CUDA 툴킷, 기타 라이브러리 설치

  • 이제 CUDA 연산 기능을 이용하기 위해 툴킷을 설치하고 DNN 라이브러리를 설치합니다.

Cuda Toolkit 설치 (7.5)

https://developer.nvidia.com/cuda-downloads
Installation Instructions:

sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda

cuDNN 설치 (v4)

https://developer.nvidia.com/cudnn

tar xvzf cudnn-7.5-linux-x64-v4.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

라이브러리 경로 설정

export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/cuda/lib64″
export CUDA_HOME=/usr/local/cuda

4. 텐서플로우 설치하기

4.1 Anaconda 설치

  • 다운로드 및 설치하기 (Linux 64비트 다운 받고 설치한다.)

https://www.continuum.io/downloads

  • 가상환경 생성하기

conda create -n py27 python=2.7 anaconda (python2 환경 설정)
conda create -n py35 python=3.5 anaconda (python3 환경 설정)
source activate py27 (가상환경 진입)
source deactivate (가상환경에서 나가기)

4.2 JDK 8 설치하기

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

4.3 텐서플로우 라이브러리 설치 (바이너리 using pip)

  • 의존 라이브러리 설치

    sudo apt-get install swig python-dev

  • python 2.7 환경에서 텐서플로우 설치

    source activate py27
    export LC_ALL=C
    pip install –upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl

  • python 3.5 환경에서 텐서플로우 설치

    source activate py35
    export LC_ALL=C
    wget https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0rc0-cp34-cp34m-linux_x86_64.whl
    mv ensorflow-0.8.0rc0-cp34-cp34m-linux_x86_64.whl tensorflow-0.8.0rc0-py3-none-linux_x86_64.whl
    pip install –ignore-installed –upgrade tensorflow-0.8.0rc0-py3-none-linux_x86_64.whl

4.4 설치 검증해 보기

  • 텐서플로우 설치 폴더 찾기

    python -c ‘import os; import inspect; import tensorflow; print(os.path.dirname(inspect.getfile(tensorflow)))’

  • MNIST 데모 모델 돌려 보기

    python -m tensorflow.models.image.mnist.convolutional