ak uz mame linux, driver a funkcnu CUDA nainstalovanu, tak prve kroky umerne tomu preskakujeme. Tentoraz nam postaci akakolvek verziaCUDA. Problem budeme mat skor s verziou Ubuntu, NVIDIA zatial podporuje 16.04 Xenial a uz aj 17.10 ale nie 18.04 Pokial sa nam CUDA nepodari rozbehat, nie je to fatalny problem, dlib dokaze pracovat aj bez nej, ale vyrazane pomalsie, co sa prejavuje ako pri spracovani obrazu z kamery, tak pri trenovani modelov, nie je to vsak prilis citelne pri off-line spracovani obrazkov. nainstalujeme 64 bit ovu verziu ubuntu (idealne) 16.04 na 64 bitovy hardware pricom graficku kartu este nevlozime pripadne zaktualizujeme: $ sudo apt-get update $ sudo apt-get upgrade nainstalujeme nvidia driver pre graficku kartu (toto je mozne aj vynechat a nechat instalaciu drivera na instalator CUDA, ale toto je istota. je taktiez mozne ze uz mate vhodny driver nainstalovany co sa da aj vidiet podla HD kvality obrazu na monitore.) najprv pri beznom driveri rozbehame pristup cez ssh lebo monitor nemusi po vlozeni grafickej karty vobec fungovat $ sudo apt-get install mc joe $ sudo apt-get install openssh-server $ sudo joe /etc/ssh/sshd_config zmenime UseLogin na yes $ sudo service ssh restart zistime si IP adresu cez $ ifconfig z windowsov sa vieme dostat na stroj pomocou ssh z pouzitime konta usera vytvoreneho pri instalacii a zistenej IP adresy stiahneme si driver z NVIDIA vo forme skriptu http://www.nvidia.com/Download/index.aspx?lang=en-us (show all operating systems a vyberieme Linux 64-bit) napr pre GeForce GTX750 je to NVIDIA-Linux-x86_64-390.25.run $ cd ~/Downloads $ wget http://us.download.nvidia.com/XFree86/Linux-x86_64/390.25/NVIDIA-Linux-x86_64-390.25.run vypneme PC, vlozime kartu, nastartujeme cez ssh ziskame spojenie zlozime X server, napr $ sudo service lightdm stop $ ps -A | grep X 4979 tty7 00:00:01 Xorg $ sudo kill 4979 $ ps -A | grep X $ a spustime skript driveru, napr $ chmod 0777 NVIDIA-Linux-x86_64-334.21.run $ sudo ./NVIDIA-Linux-x86_64-334.21.run vsetko potvrdime kladne Accept, Continue installation $ sudo reboot moze sa pritom stat ze najprv bude skript pozadovat odinstalovat predosly driver. Vtedy ponukne vytvorit skript ktory ho pri reboote odinstaluje, co treba potvrdit a rebootnut. Inokedy ani to nepomoze a treba tento driver odstavit rucne $ sudo joe /etc/modprobe.d/blacklist-nouveau.conf blacklist nouveau options nouveau modeset=0 $ sudo update-initramfs -u $ sudo reboot zakladne baliky (vacsinou mame a su aktualne) $ sudo apt-get install -y build-essential cmake gfortran git pkg-config $ sudo apt-get install -y python-dev software-properties-common wget vim $ sudo apt-get autoremove CUDA na https://developer.nvidia.com/cuda-downloads vyberieme najnovsiu verziu (9.2) local(deb) stiahneme ju z browsera alebo takto cez wget a mv: $ wget https://developer.nvidia.com/compute/cuda/9.2/Prod/local_installers/cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64 (trva to dlho) $ mv cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64 cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb instalujeme: $ sudo dpkg -i cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb zadame prikaz na instalaciu kluca ktory vypise dpkg: $ sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub OK $ sudo apt-get update $ sudo apt-get install cuda $ sudo apt-get install nvidia-cuda-toolkit restartneme $ reboot analogicky nainstalujeme Patch1 z https://developer.nvidia.com/compute/cuda/9.2/Prod/patches/1/cuda-repo-ubuntu1604-9-2-local-cublas-update-1_1.0-1_amd64 alternativne mozeme instalovat CUDA jednoduchsie (pokial to zafunguje) takto: $ sudo apt-get install cuda-9-2 $ sudo apt-get install nvidia-cuda-toolkit vyskusame ci CUDA funguje $ ls /usr/local | grep cuda- cuda-9.2 $ nvidia-smi $ nvcc --version $ cd /usr/local/cuda/samples $ sudo make $ cd 5_Simulations/oceanFFT $ ./oceanFFT instalujeme CUDA Deep Neural Network (cuDNN) z https://developer.nvidia.com/rdp/form/cudnn-download-survey (musime sa zadarmo zaregistrovat) Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.2 z https://developer.nvidia.com/rdp/form/cudnn-download-survey instalujene debianovsky balik analogicky postupu vyssie pre https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v7.1.4/prod/9.2_20180516/Ubuntu16_04-x64/libcudnn7_7.1.4.18-1_cuda9.2_amd64 a https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v7.1.4/prod/9.2_20180516/Ubuntu16_04-x64/libcudnn7-dev_7.1.4.18-1_cuda9.2_amd64 doplnime environmentalne premenne CUDA-y $ echo 'export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"' >> ~/.bashrc $ echo 'export CUDA_HOME=/usr/local/cuda' >> ~/.bashrc $ echo 'export PATH="/usr/local/cuda/bin:$PATH"' >> ~/.bashrc $ echo 'export TF_CPP_MIN_LOG_LEVEL=2' >> ~/.bashrc a aktualne ich nastavime (aby sme sa nemuseli odhlasit a prihlasit) $ source ~/.bashrc overime si $ echo $CUDA_HOME /usr/local/cuda $ echo $TF_CPP_MIN_LOG_LEVEL 2 ak nemame cmake (vyskusaj $ cmake --version ci vypise nieco blizke 3.5) $ sudo apt install cmake instalujeme dlib $ sudo chmod 0777 /opt $ cd /opt $ wget http://dlib.net/files/dlib-19.13.tar.bz2 $ bzip2 -d dlib-19.13.tar.bz2 $ tar -x -f dlib-19.13.tar $ ls dlib-19.13 $ cd dlib-19.13 $ mkdir build $ cd build $ cmake .. ... DLIB WILL USE CUDA ... $ cmake --build . --config Release $ sudo make install nainstalujeme opencv $ sudo apt install unzip $ sudo apt install ffmpeg $ sudo apt install ant $ cd /opt $ mkdir opencv-3.4.1 $ cd opencv-3.4.1 $ wget https://github.com/opencv/opencv/archive/3.4.1.zip -O opencv-3.4.1.zip $ unzip opencv-3.4.1.zip $ wget https://github.com/opencv/opencv_contrib/archive/3.4.1.zip -O opencv_contrib-3.4.1.zip $ unzip opencv_contrib-3.4.1.zip $ wget https://docs.opencv.org/3.4.1.zip -O opencv-docs-3.4.1.zip $ unzip opencv-docs-3.4.1.zip $ cd opencv-3.4.1 $ mkdir build $ cd build $ cmake -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.1/modules -D BUILD_opencv_python=OFF -D WITH_FFMPEG=ON .. $ make -j8 $ sudo make install rozbehame vytvaranie vlastnych projektov $ cd /home/$USER $ wget www.robotika.sk/seminar/2018/cviko7-faces.tar.gz $ gunzip dlib.tar.gz $ tar -xf dlib.tar $ cd dlib $ cd projects $ ./create-project.sh MyFacialLandmarks so far empty projects, press enter $ cp FacialLandmarks/main.cpp MyFacialLandmarks $ cd MyFacialLandmarks pripojte kameru, pripadne zmente cislo kamery z 0 na 1 a pod (pozor, nie kazda usb kamera je kompatibilna s Linuxom) $ make $ ./MyFacialLandmarks dalsie projekty robime cez create-project.sh v nom je dolezite kompilovat projekt s CXX_FLAGS -mavx -O3 inak je aplikacia priserne pomala