Search what you want

Wednesday, April 11, 2018

Insall CUDA 9.1 cuDNN 7.1.2 and Tensorflow in Ubuntu 16.04

jika bermain dengan data yang sangat besar banyak sekali hal-hal yang harus dipersiapkan, mulai dari penetapan sebuah masalah yang ingin dipecahkan terlebih dahulu, pencarian solusi dari masalah tersebut hingga training data yang sudah dipersiapkan, mesikipun tahapan itu merupakan perulangan yang harus dilakukan terus menerus hingga mendapatkan hasil yang mendekati penyelesaian masalah yang kita kehendaki. Proses training data menggunakan algoritma tertentu merupakan salah satu proses yang memakan waktu, belum lagi jika masalah tersebut adalah masalah yang baru pertama kali kita temui dan ingin kita selesaikan. pastinya kita memerlukan beberapa perulangan terhadap proses yang kita jalani.

beberapa hal yang menjadi batasan waktu dari proses training bisa jadi dari algoritma yang kita gunakan dan seberapa besar data yang kita mau latih. Jika CPU saja sudah tidak mampu membantu  mempercepat proses training maka saya membutuhkan hal yang bisa membantu saya, yap!, GPU salah satunya. Karena memang saya (mungkin) tidak sanggup menunggu lebih lama lagi. #eh

oke langsung saja, pada altikel kali ini saya akan menjabarkan pengalaman saya dalam mengingstall tools untuk menggunakan GPU.

System:
1. CUDA 9.1.85, Driver Version: 390.48
2. cuDNN 7.1.2
3. Tensorflow 1.5
4. Keras 2.1.5
5. ubuntu 16.04
6. NVIDIA GEFORCE 940mx

oke kenapa saya mengalami kesulitan ketika ingin menginstall software2 tersebut? karena bebrapa sofware tidak compatibel dengan driver yang ada. contohnya ketikan saya menginstall tensorflow menggunakan pip, package yang terinstall masih menggunakan CUDA versi 9.0 bukan 9.1. semoga versi setelahnya sudah bisa langsung compatibel. jadinya saya harus menginstall tensorflow dari sourcecodenya. oya tujuan akhir saya sih sebenarnya untuk bisa menggukan package Keras menggunakan backend dari tensorflow. Langusung saja ketutorialnya, saya membagi kebeberapa tahap untuk menginstalnya:

Tahap:
1. install Cuda 9.1
2. install cuDNN 7.1.2
3. install tensorflow
4. install package lain


1. Install Nvidia CUDA Toolkit:

  • sebenarnya di webnya sudah sangat jelas cara mengistallnya, jadi bisa cek ke webnya
  • ikuti tahapan pre-install
  • download installer cuda toolkit di website (https://developer.nvidia.com/cuda-downloads)
$ sudo dpkg -i cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
$ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get install cuda-9.1


2. Install cuDNN 7.1.2

  • silahkan menuju ke website cuDNN (https://developer.nvidia.com/cudnn).
  • saya memerlukan untuk sign-in untuk bisa mendownload installernya
  • silahkan mendownload tiga package. Runtime Library, Developer Library, dan Code sample. semuanya dalam extention .deb
install tiga package yang sudah selesai di download. lakukan instalasi menggunakan command:
$ sudo dpkg -i <nama-package>.deb
  • masukkan kedalam file ~/.bashrc
  • export PATH=/usr/local/cuda-9.1/bin${PATH:+:${PATH}}





Cek versi Cuda yang telah di install

  • $ nvcc -V,  hasil yang saya dapatkan  >> Cuda compilation tools, release 9.1, V9.1.85
  • $ nvidia-smi, hasil yang saya dapatkan >>  Driver Version: 390.48   



Running Cuda sample code

ini memakan waktu yang agak lama....
$ cd /usr/local/cuda/samples/
$ make clean && make
setelah selesai, maka jalankan salah satu sample binary
$ cd /usr/local/cuda/samples/
$ ./bin/x86_64/linux/release/deviceQuery
maka akan tampil hasil seperti ini

pada tahap ini cuda berhasil di install dengan baik


3. Install Tensorflow 1.5 dari code asli

pada tahap ini sebenarnya merupakan hasil dari coba-coba agar bisa compatible dengan Cuda 9.1. akhirnya dari blog ini, versi 1.5 merupakan versi yang cocok dengan cuda yang sudah di install sebelumnya. deskripsi lengkap bisa di lihat di artikel asli dari tensorflow. (https://www.tensorflow.org/install/install_sources)

Install Bazel (https://docs.bazel.build/versions/master/install-ubuntu.html)
$ sudo apt-get install openjdk-8-jdk
$ sudo apt-get update && sudo apt-get install bazel
$ sudo apt-get upgrade bazel

Install tensorflow

  • Clone dan Configure

$ git clone https://github.com/tensorflow/tensorflow 
$ cd tensorflow
$ git checkout r1.5
$ ./configure
jika masih terdapat error yang menyatakan Bazel belum terinstall, maka install terlebih dulu Bazel pada tahap sebelumnya

jika sudah terinstal, ikuti langkah yang disajikan.
menurut blog sebelah pilih default pada setiap pilihan dan hanya ubah pada tiga pertanyaan berikut.

Do you wish to build TensorFlow with CUDA support? [y/N]: y
Please specify the CUDA SDK version you want to use, e.g. 7.0. [Leave empty to default to CUDA 9.0]: 9.1
Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 7.0]: 7.1.2

  • build menggunakan bazel (GPU)

$ bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

  • build pip package (output: /tmp/tensorflow_pkg)

$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

  • install pip package 

$ sudo pip3 install /tmp/tensorflow_pkg/tensorflow-1.5.1-cp35-cp35m-linux_x86_64.whl

  • validasi tensorflow

$ python3
# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

pada tahap ini tensorflow telah siap digunakan


4. Install Keras dan Run LSTM (Tambahan)

  • install dependency

$ pip3 install keras
$ pip3 install h5py

  • copy source code dan download data sample

https://github.com/keras-team/keras/blob/master/examples/lstm_seq2seq.py
$ wget http://www.manythings.org/anki/fra-eng.zip

  • extract data dan run program

$ python3 lstm_seq2seq.py

  • saat program dijalankan maka pada awalnya akan merespon seperti gambar berikut


  • dan penggunaan GPU akan naik 

$ watch nvidia-smi

process name: python3
GPU-util : 92%

oya, untuk penggunaan Keras dengan backend Tensorflow kita tidak perlu melakukan tambahan kode apapun pada progran yang kita buat, keras akan mendeteksi otomatis jika komputer kita sudah terinstall cuda.



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SELESAI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~





reference:
1. source 1 (https://medium.com/@xinh3ng/install-cuda-9-1-and-cudnn-7-for-tensorflow-1-5-0-cda36239bc68)
2. source 2 (https://alliseesolutions.wordpress.com/2016/09/08/install-gpu-tensorflow-from-sources-w-ubuntu-16-04-and-cuda-8-0/)
3. source 3 (http://www.python36.com/install-tensorflow141-gpu/)

4. source 4 (https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=debnetwork)
5. source 5 (https://developer.nvidia.com/rdp/cudnn-download)

6. source 6 (https://docs.bazel.build/versions/master/install-ubuntu.html)
7. source 7 (https://www.tensorflow.org/install/install_sources)
8. source 8 (https://www.tensorflow.org/install/install_linux)
8. install Cuda 9.0 (https://yangcha.github.io/CUDA90/)
9 install tensorflow with cuda 9.0 (https://medium.com/@zhanwenchen/install-cuda-and-cudnn-for-tensorflow-gpu-on-ubuntu-79306e4ac04e)
10. https://medium.com/@mishra.thedeepak/cuda-and-cudnn-installation-for-tensorflow-gpu-79beebb356d2

No comments:

Post a Comment