## Nvidia Drivers, Cuda, Cudnn, Tensorrt ### Nvidia Drivers Gỡ bỏ Cuda, Drivers cũ trên máy ```bash sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl sudo /usr/bin/nvidia-uninstall sudo reboot ``` ```bash sudo add-apt-repository ppa:graphics-drivers sudo apt-get update sudo apt-get install nvidia-driver-440 sudo reboot ``` Kiểm tra với `nvidia-smi` ### Nvidia Cuda 10.1 Cài đặt Cuda 10.1 ```bash cd ~ wget -O cuda-repo-ubuntu1804_10.1.105-1_amd64.deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.105-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu1804_10.1.105-1_amd64.deb sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub sudo apt-get update sudo apt-get install cuda-10-1 ``` Add Cuda to path: Thêm vào ~/.bashrc ```bash # NVIDIA CUDA Toolkit export PATH=/usr/local/cuda-10.1/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64 ``` `source ~/.bashrc` Kiểm tra cuda: `nvcc -V` ### Cudnn 7.6.5.32 Cài đặt Cudnn 7.6.5.32 cho Cuda 10.1. Tải tại [đây](https://developer.nvidia.com/cudnn) (sử dụng .tgz) ```bash cd ~ tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.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/include/cudnn.h /usr/local/cuda/lib64/libcudnn* ``` ### Nvidia Tensorrt Cài đặt TensorRT 6.0.1.5-ga. Phiên bản cuda10.1, deb (tải tại [đây](https://developer.nvidia.com/tensorrt)) ```bash cd ~ sudo dpkg -i nv-tensorrt-repo-ubuntu1804-cuda10.1-trt6.0.1.5-ga-20190913_1-1_amd64.deb sudo apt-key add /var/nv-tensorrt-repo-cuda10.1-trt6.0.1.5-ga-20190913/7fa2af80.pub sudo apt-get update sudo apt-get install tensorrt sudo apt-get install python3-libnvinfer-dev sudo apt-get install uff-converter-tf ``` ## Cài Docker, Nvidia-docker, Tensorflow Serving Docker ### Docker ```bash sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io ``` ### Nvidia-Docker ```bash distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker ``` ### Tensorflow Serving Docker ```bash sudo docker pull tensorflow/serving:latest-gpu ``` ## Build Opencv với Cuda ### Cài đặt các thư viện ```bash $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install build-essential cmake unzip pkg-config $ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev $ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev $ sudo apt-get install libv4l-dev libxvidcore-dev libx264-dev $ sudo apt-get install libgtk-3-dev $ sudo apt-get install libatlas-base-dev gfortran $ sudo apt-get install python3-dev python3-pip ``` ### Tải source opencv ```bash $ cd ~ $ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip $ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip $ unzip opencv.zip $ unzip opencv_contrib.zip $ mv opencv-4.2.0 opencv $ mv opencv_contrib-4.2.0 opencv_contrib ``` ### Tạo và config virtualenv ```bash sudo python3 -m pip install virtualenv virtualenvwrapper ``` Add virtuanenvwrapper to path: Thêm vào ~/.bashrc ```bash # virtualenv and virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source /usr/local/bin/virtualenvwrapper.sh ``` `source ~/.bashrc` Tạo môi trường ```bash mkvirtualenv iview -p python3 pip install numpy ``` ### Build Opencv với Cuda ```bash cd ~/opencv mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D INSTALL_C_EXAMPLES=OFF \ -D OPENCV_ENABLE_NONFREE=ON \ -D WITH_CUDA=ON \ -D WITH_CUDNN=ON \ -D OPENCV_DNN_CUDA=ON \ -D ENABLE_FAST_MATH=1 \ -D CUDA_FAST_MATH=1 \ -D CUDA_ARCH_BIN=7.5 \ -D WITH_CUBLAS=1 \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D HAVE_opencv_python3=ON \ -D PYTHON_EXECUTABLE=~/.virtualenvs/iview/bin/python \ -D BUILD_EXAMPLES=ON .. ``` ```bash make -j8 sudo make install sudo ldconfig ``` Dẫn opencv đến môi trường ```bash cd ~/.virtualenvs/iview/lib/python3.6/site-packages/ ln -s /usr/local/lib/python3.6/site-packages/cv2/python-3.6/cv2.cpython-36m-x86_64-linux-gnu.so cv2.so ```