Ubuntu 16.04 Cuda, CUDNN, Caffe, Torch, Jupyter, Digits Kurulumu

Bu yazı www.openzeka.com sitesinden alınmıştır. Derin öğrenme eğitimine katıldığım sırada Nvidia Digits ve ilgili kütüphanelerin kurulu için aşağıdaki sh’ı incelemenizi öneririm. Lütfne unutmayın, aşağıdaki sh’ı kendi geliştirme ortamınıza göre customize etmeniz gerekiyor.

# Uzak sunucuda karakter kaynaklı hataları gidermek için aşağıdaki komutları çalıştırınız.
echo 'export LC_CTYPE=en_US.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=en_US.UTF-8' >> ~/.bashrc
source ~/.bashrc

# Sistem güncelleme
sudo apt-get update && sudo apt-get -y upgrade
# Cuda kurulumu
wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64-deb
mv cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64-deb cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get -y install cuda-8-0

#CUDA dizinlerini .bashrc dosyasına eklemek aşağıdaki satırları çalıştırın.
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
echo 'export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}' >> ~/.bashrc

# Cudnn Kurulumu cudnn-8.0-linux-x64-v6.0.tgz dosyasını aşağıdaki adresden indiriniz.
wget http://developer.download.nvidia.com/compute/redist/cudnn/v6.0/cudnn-8.0-linux-x64-v6.0.tgz
# İndirdikten sonra dosyayı indirdiğiniz dizinde aşağıdaki komutu çalıştırınız. Eğer dosya inmiyorsa kayıt olup indirmeyi deneyiniz.
tar -zxf cudnn-8.0-linux-x64-v6.0.tgz
cd cuda
sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/
sudo cp -P include/* /usr/local/cuda-8.0/include/

# Aşağıdaki iki satırda olduğu gibi bir hata mesajı alırsanız aşağıda belirtilen 4 satırdaki işlemi yapınız
# /sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link
# /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link
sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1

##Cuda test
# cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
# sudo make
# ./deviceQuery
##Cuda test

cd ~
##NCLL-birden fazla GPU varsa http://docs.nvidia.com/deeplearning/sdk/nccl-install-guide/index.html ##
#wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
#sudo dpkg -i nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
#sudo apt-get update
#sudo apt-get install libnccl2=2.1.4-1+cuda8.0 libnccl-dev=2.1.4-1+cuda8.0
##NCLL son##

cd ~
##DIGITS Kurulumu
sudo apt-get install --no-install-recommends git graphviz python-dev python-flask python-flaskext.wtf python-gevent python-h5py python-numpy python-pil python-pip python-scipy -y

#Caffe Kurulumu
sudo apt-get install --no-install-recommends build-essential cmake git gfortran libatlas-base-dev libboost-filesystem-dev libboost-python-dev libboost-system-dev libboost-thread-dev libgflags-dev libgoogle-glog-dev libhdf5-serial-dev libleveldb-dev liblmdb-dev libopencv-dev libsnappy-dev python-all-dev python-dev python-h5py python-matplotlib python-numpy python-opencv python-pil python-pip python-scipy python-skimage python-sklearn python-setuptools python-tk -y

#Protobuf kurulumu (https://github.com/NVIDIA/DIGITS/blob/master/docs/BuildProtobuf.md)
sudo apt-get install autoconf automake libtool curl make g++ git python-dev python-setuptools unzip -y
export PROTOBUF_ROOT=~/protobuf
git clone https://github.com/google/protobuf.git $PROTOBUF_ROOT -b '3.3.x'
cd $PROTOBUF_ROOT
./autogen.sh
./configure
make "-j$(nproc)"
sudo make install
sudo ldconfig
cd python
sudo python setup.py install --cpp_implementation
#Test başarılı ise protobuf hazır

# Pip update
cd ~
pip update
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz
tar -xzvf pip-9.0.1.tar.gz
cd pip-9.0.1
sudo python setup.py install
#########################

#Yeni eklenen kütüphaneler
# OpenBlasın ayrıca derlenmesi performans artışı sağlayabilir. hızlı kurulum için aşağıdaki komut yeterli olacaktır.
sudo apt-get install libboost-all-dev libturbojpeg libopenblas-dev -y
cd ~
export CAFFE_ROOT=~/caffe
echo 'export CAFFE_ROOT=~/caffe' >> ~/.bashrc
git clone https://github.com/NVIDIA/caffe.git $CAFFE_ROOT
sudo pip install -r $CAFFE_ROOT/python/requirements.txt

#hata alırsan https://github.com/NVIDIA/DIGITS/blob/master/docs/BuildCaffe.md adresine bak

cd $CAFFE_ROOT
cp Makefile.config.example Makefile.config
sudo sed -i 's/# USE_CUDNN := 1/USE_CUDNN := 1/' Makefile.config
#Çoklu GPU detseği istenirse
# sudo sed -i 's/# USE_NCCL := 1/USE_NCCL := 1/' Makefile.config

# Enable with python layer
sudo sed -i 's/# WITH_PYTHON_LAYER := 1/WITH_PYTHON_LAYER := 1/' Makefile.config

# Eğer hdf5 hatası alınırsa
# Add hdf5 library path and dir
# echo 'INCLUDE_DIRS += /usr/include/hdf5/serial' >> Makefile.config
# echo 'LIBRARY_DIRS += /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial' >> Makefile.config

mkdir build
cd build
cmake ..
make --jobs $(nproc)
make install
#Caffe Kurulum bitti

#Torch Kurulumu
cd ~
sudo apt-get install --no-install-recommends git software-properties-common -y
export TORCH_ROOT=~/torch
echo 'export TORCH_ROOT=~/torch' >> ~/.bashrc
git clone https://github.com/torch/distro.git $TORCH_ROOT --recursive
cd $TORCH_ROOT
./install-deps
./install.sh -b
source ~/.bashrc

sudo apt-get install --no-install-recommends libhdf5-serial-dev liblmdb-dev -y
luarocks install tds
luarocks install dpnn
luarocks install "https://raw.github.com/deepmind/torch-hdf5/master/hdf5-0-0.rockspec"
luarocks install "https://raw.github.com/Neopallium/lua-pb/master/lua-pb-scm-0.rockspec"
luarocks install lightningmdb 0.9.18.1-1 LMDB_INCDIR=/usr/include LMDB_LIBDIR=/usr/lib/x86_64-linux-gnu
# If you have installed NCCL
# luarocks install "https://raw.githubusercontent.com/ngimel/nccl.torch/master/nccl-scm-1.rockspec"

cd ~
DIGITS_ROOT=~/digits
echo 'export DIGITS_ROOT=~/digits' >> ~/.bashrc
git clone https://github.com/NVIDIA/DIGITS.git $DIGITS_ROOT
sudo pip install -r $DIGITS_ROOT/requirements.txt
sudo pip install -e $DIGITS_ROOT
#Text Classification
sudo pip install $DIGITS_ROOT/plugins/data/textClassification
sudo pip install $DIGITS_ROOT/plugins/view/textClassification
#The Sunnybrook plug-in
sudo pip install $DIGITS_ROOT/plugins/data/sunnybrook/

#Jupyter Notebook kurulumu: http://blog.impiyush.com/2015/02/running-ipython-notebook-server-on-aws.html
#https://github.com/mGalarnyk/Installations_Mac_Ubuntu_Windows/blob/master/AWS/Part_4_IPython_Notebook_Server_on_AWS_EC2_Instance.ipynb
sudo apt-get -y install ipython ipython-notebook
sudo pip install jupyter

#itorch kurulumu
cd ~
sudo apt-get install -y libssl-dev
luarocks install lzmq
git clone https://github.com/facebook/iTorch.git
cd iTorch
luarocks make

cd ~
jupyter notebook --generate-config
mkdir certs
cd certs
sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
#Sorulan sorulara cevap olarak aşağıdaki gibi cevap verin ve entera basın
#Country Name (2 letter code) [AU]:TR
#State or Province Name (full name) [Some-State]:Ankara
#Locality Name (eg, city) []:.
#Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
#Organizational Unit Name (eg, section) []:.
#Common Name (e.g. server FQDN or YOUR name) []:.
#Email Address []:.

cd ~/.jupyter/
nano jupyter_notebook_config.py
#Dosyanın en üstüne aşağıdakileri yaz ve kaydet
##############basla
c = get_config()

c.IPKernelApp.pylab = 'inline'
c.NotebookApp.certfile = u'/home/openzeka/certs/mycert.pem'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:c6a94092eed9:aaa1432e3651a0af955c513b92d2e2c0bbc78e7d'
c.NotebookApp.port = 8888
#############bitir

#nohup jupyter notebook
#cd ~/caffe/examples
#jupyter notebook
#Çalışıyorsa herşey hazır demektir.

# Şifreyle ilgili kısım bilgi maksatlı
# şifre: openzeka
# 'sha1:c6a94092eed9:aaa1432e3651a0af955c513b92d2e2c0bbc78e7d'

#Crontab
#Aşağıdaki dosyayı start-digits.sh olarak kaydet
cd ~
pico start-digits.sh
#Aşağıdaki içeriği dosyaya kaydet
###basla
#!/bin/bash
export CAFFE_ROOT=/home/openzeka/caffe
export TORCH_ROOT=/home/openzeka/torch
. /home/openzeka/torch/install/bin/torch-activate
cd /home/openzeka/digits
./digits-devserver
##bitir

chmod +x start-digits.sh
####
#Aşağıdaki dosyayı start-jupyter.sh olarak kaydet
pico start-jupyter.sh
#Aşağıdaki içeriği dosyaya kaydet
###basla
#!/bin/bash
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
cd ~/caffe/examples
jupyter notebook
##bitir

chmod +x start-jupyter.sh
crontab -e
#2 seç ve entera bas aşağıdakileri sayfa sonuna ekle
@reboot /home/openzeka/start-digits.sh > /home/openzeka/digits.log 2>&1
@reboot /home/openzeka/start-jupyter.sh > /home/openzeka/jupyter.log 2>&1

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.