小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Ubuntu 20.04 深度學習開發(fā)環(huán)境安裝教程完全版 [CUDA/TensorRT/Docker/OpenCV ...]_ubuntu20.04 深度學習安裝

 netouch 2023-05-18 發(fā)布于北京

  • Ubuntu 20.04 LTS Desktop 系統(tǒng)安裝
  • 中文輸入法
  • Python 開發(fā)環(huán)境
  • C++ 開發(fā)環(huán)境
  • CUDA 工具包
  • CuDNN
  • 張量RT
  • 碼頭工人
  • FFmpeg
  • 流星
  • OpenCV 源代碼編譯
  • 深流
  • 更多


1. Ubuntu 20.04 LTS Desktop 系統(tǒng)安裝

  • 下載Ubuntu20.04 LTS Desktop桌面版 鏡像

  • 下載balanceEtcher USB 鏡像工具

  • 1個8 GB左右的USB(提供前份)

  • 打開鏡像工具,依次添加ISO鏡像文件,選擇USB,單擊Flash!生成鏡像

  • 重新啟動電腦,進入BIOS修改啟動順序,將USB啟動工作為最高優(yōu)先級。不同型號進入BIOS方式:

    • 華擎:F2 或 DEL
    • 華碩:F2 用于所有 PC,F(xiàn)2 或 DEL 用于主板
    • 宏碁:F2 或 DEL
    • 戴爾:F2 或 F12
    • ECS : 刪除
    • 千兆通過te / Aorus : F2 或 DEL
    • 惠普:F10
    • Lenovo(消費類筆記本電腦):F2 或 Fn + F2
    • 聯(lián)想(臺式機):F1
    • Lenovo (ThinkPads):輸入然后按 F1。
    • MSI : DEL 用于主板和 PC
    • Microsoft Surface 平板電腦:按住提高音量按鈕。
    • 原始電腦:F2
    • 三星:F2
    • 東芝:F2
    • 索泰:DEL

具體的安裝步驟就不贅述了,只需要注意以下幾點即可:

  • 安裝類型頁面時,選擇Something else選項進入分區(qū)頁面
  • 創(chuàng)建EFI分區(qū):500 MB
  • 創(chuàng)建swap分區(qū):和實際內存一樣,比如實際16GB內存,則分配16*1024=16384MB
  • 創(chuàng)建ext4 /掛載點

2. 安裝后配置

中文輸入法
Ubuntu 系統(tǒng)只推薦搜索狗輸入法,其他的都是坑。根據(jù)官網教程安裝即可,安裝后需要重新啟動。

截圖工具
推薦安裝Flameshot :

sudo apt install flameshot

安裝完成后,打開Settings -> Keyboard Shortcuts,拉到最下面,點擊' + '按鍵:

  • 姓名:任意名字
  • 命令/usr/bin/flameshot gui
  • Shortcut: 按鍵綁定到自己喜歡的鍵,本文件綁定了F1

更換清華源
清華源鏡像站,選擇Ubuntu原版后恢復制作源,不想登錄的也可以直接連接制作:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo gedit /etc/apt/sources.list
# 默認注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋
deb https://mirrors.tuna./ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna./ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna./ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna./ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna./ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna./ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna./ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna./ubuntu/ focal-security main restricted universe multiverse

# 預發(fā)布軟件源,不建議啟用
# deb https://mirrors.tuna./ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna./ubuntu/ focal-proposed main restricted universe multiverse

3. Python開發(fā)環(huán)境

3.1 Anaconda 虛擬環(huán)境

官網下載Miniconda3 Linux 64-bit腳本,本文選擇了Python 3.8版本。該版本是指虛擬環(huán)境中的默認Python版本,與系統(tǒng)的Python版本無關。

cd ~/Downloads 
bash Miniconda3-py38_4.12.0-Linux-x86_64.sh

安裝過程序中根據(jù)提示輸入即可:

  • Please, press ENTER to continue: 按回車鍵
  • End User License Agreement - Miniconda:q按鍵退出
  • Do you accept the license terms? [yes|no]: 輸入yes
  • [/home/sparkai/miniconda3] >>>: 回車
  • Do you wish the installer to initialize Miniconda3
    by running conda init? [yes|no]: 輸入yes

注:最后一行輸入后,今后每次打開Terminal 都會自動初始化base虛擬環(huán)境,可以輸入命令關閉:

conda config --set auto_activate_base false
Conda 常用命令
  • 創(chuàng)造環(huán)境conda create -n <環(huán)境名> python=3.8
  • 顯示環(huán)境conda env list
  • 刺激環(huán)境conda activate <環(huán)境名>
  • 退出環(huán)境conda deactivate
  • 選擇貝環(huán)境conda create -n <環(huán)境名> --clone <舊環(huán)境名>
  • 刪除環(huán)境:conda remove -n <環(huán)境名> --all
3.2 Pycharm 專業(yè)版(收費) / 社區(qū)版(免費)

可以從官網下載(麻煩),或者使用Ubuntu命令安裝(容易):

 # 專業(yè)版
sudo snap install pycharm-professional --classic
 # 社區(qū)版
sudo snap install pycharm-community --classic

4. C/C++ 開發(fā)環(huán)境

4.1 編譯環(huán)境,一條命令完全搞定:

  • GNC C 編譯器
  • GNC C++ 編譯器
  • GNC C 庫
  • 健安喜品牌
 sudo apt install build-essential
4.2 克里昂

官網下載或運行命令:

sudo snap install clion --classic

4.3 制作

可以使用命令安裝sudo apt install cmake,雖然簡單,但一般版本都落后很多。使用下面任一種方法安裝最新版CMake。

4.3.1 預編譯文件

進入官網,在Binary distributions下,找到Linux x86_64對應的.tar.gz文件并下載(寫本時代CMake的版本是3.23.2。運行命令安裝:

cd ~/Downloads

tar zxvf cmake-3.23.2-linux-x86_64.tar.gz
sudo mv cmake-3.23.2-linux-x86_64 /opt/cmake-3.23.2
rm cmake-3.23.2-linux-x86_64.tar.gz

# 如果使用 cmake-gui,也創(chuàng)建一個軟鏈接既可
sudo ln -s /opt/cmake-3.23.1/bin/cmake /usr/bin/cmake

4.3.2 源代碼編譯

極少數(shù)情況可能需要進入源碼編譯,在Source distributions下面根據(jù)操作系統(tǒng)下載對應的源碼,本例是cmake-3.23.2.tar.gz。運行命令安裝:

cd ~/Downloads
tar zxvf cmake-3.23.1.tar.gz
cd cmake-3.23.1/

sudo apt install libssl-dev
./bootstrap -- -DCMAKE_BUILD_TYPE:STRING=Release
make -j$(nproc)
sudo make install

安裝完成后別忘記了實驗證明一下:cmake --version


5. NVIDIA CUDA 工具包

5.1 NVIDIA驅動安裝

雖然CUDA Toolkit包含了驅動,但是為了安裝特定版本的驅動,本文將驅動安裝單獨出來。

安裝步驟

  • 官網下載510.47.03版驅動(Deepstream 6.1需求),或執(zhí)行命令:
cd ~/Downloads
wget https://us.download./XFree86/Linux-x86_64/510.47.03/NVIDIA-Linux-x86_64-510.47.03.run
  • 禁止使用Nouveau驅動:
    • 查看 nouveau:lsmod | grep nouveau
    • 加入黑名單:
     BLACKLIST=/etc/modprobe.d/blacklist-nouveau.conf
     sudo touch ${BLACKLIST}
     echo "blacklist nouveau" | sudo tee ${BLACKLIST}
     echo "options nouveau modeset=0" | sudo tee -a ${BLACKLIST}
    
  • 更新initramfssudo update-initramfs -u
  • 重新啟動系統(tǒng):sudo reboot
  • 安裝驅動:
cd ~/Downloads
chmod 755 NVIDIA-Linux-x86_64-510.47.03.run
sudo ./NVIDIA-Linux-x86_64-510.47.03.run

5.2 CUDA工具包安裝

CUDA是一套集合了驅動、工具庫、軟件開發(fā)套件以及應用程序接口于一體的整體計算平臺。使用CUDA可以使開發(fā)人員受益使用NVIDIA GPU進行高效的并行計算。要使用CUDA, 首先加入NVIDIA Developer Program,使用郵箱注冊并登錄即可。

5.2.1 安裝前檢查

你當然可以直接進入官網,下載并直接安裝CUDA,但這里還是推薦你進行一些檢查再安裝。

  • 檢查顯示卡是否支持 CUDA :

    • lspci | grep -i nvidia
    • 如果沒有任何輸出,則執(zhí)行update-pciids更新硬文件庫,并再次執(zhí)行上記命令
    • 如果顯卡來源于NVIDIA,并且包含在https://developer./cuda-gpus中,則顯卡支持CUDA
  • 檢查系統(tǒng)是否支持CUDA

  • 是否安裝 GCC

    • gcc --version
  • 檢查系統(tǒng)內核頭文件

    • CUDA驅動要請求運行時的內核版本與安裝時的一致,否則將要重裝CUDA驅動。
    • 查看系統(tǒng)內核:uname -r
    • 安裝內核頭文件:sudo apt-get install linux-headers-$(uname -r)

5.2.2 安裝CUDA工具包

CUDA Toolkit中包含了CUDA Driver以及用于構建CUDA應用的工具庫文件頭文件等內容。支持兩種安裝方式,可以選擇其中任一種:

  • 特定于發(fā)布版本的安裝包(RPMDeb包)
    • 對接Ubuntu本地包管理系統(tǒng)
  • 獨立于發(fā)布版的安裝包(runfile packages)
    • 可支持很多Linux發(fā)行版,但無法使用特定發(fā)行版的本地包管理系統(tǒng)

由于本文采用了獨立驅動安裝方式,因此這里采用runfile安裝CUDA。Deb安裝方式下一個節(jié)。

Runfile安裝步驟

cd ~/Downloads
wget https://developer.download./compute/cuda/11.6.1/local_installers/cuda_11.6.1_510.47.03_linux.run
sudo sh cuda_11.6.1_510.47.03_linux.run

注意:安裝選項中要去掉Driver,因為已經單獨安裝過了。

當看到如下提示時,則安裝成功:

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-11.6/

Please make sure that
 -   PATH includes /usr/local/cuda-11.6/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-11.6/lib64, or, add /usr/local/cuda-11.6/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-11.6/bin
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 510.00 is required for CUDA 11.6 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run --silent --driver

Logfile is /var/log/cuda-installer.log
  • [重要]添加環(huán)境變化,見5.3節(jié)。

Deb 安裝步驟

  1. 下載CUDA Toolkit,依次選擇Linux -> x86_64 -> 20.04 -> deb (local)

網頁給了下載和安裝腳本(這里只下載)。本安裝的版本是CUDA Toolkit 11.6 Update 1

wget https://developer.download./compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
  1. [任選] 驗證MD5,CUDA 11.6.1的MD5在這里
 md5sum cuda-repo-ubuntu2004-11-7-local_11.7.0-515.43.04-1_amd64.deb
  1. 刪除/etc/X11/xorg.conf或將/etc/X11/xorg.conf.d/00-nvidia.conf的內容添加到xorg.conf。CUDA Toolkit 依賴自動生成的xorg.conf文件,如果自定義創(chuàng)建文件存在,那么CUDA驅動無法正常工作。

  2. 刪掉舊的CUDA Toolkit。若設備之前通過runfile安裝了舊版CUDA Toolkit,則需要必須手動刪掉,Deb安裝的則不能刪掉:

# 刪除 Toolkit runfile
 sudo /usr/local/cuda-<版本>/bin/cuda-uninstaller

# 刪除 Driver runfile
 sudo /usr/bin/nvidia-uninstall

# 刪除 Deb
 sudo apt-get --purge remove <package_name>
  1. 安裝CUDA:
 # 刪除過期簽名秘鑰
 sudo apt-key del 7fa2af80`
 # 安裝本地倉庫至文件系統(tǒng)
 sudo dpkg -i cuda-repo-ubuntu2004-11-7-local_11.7.0-515.43.04-1_amd64.deb
 # 注冊臨時公共 GPG 密鑰
 sudo cp /var/cuda-repo-ubuntu2004-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
 # 更新倉庫緩存,安裝 CUDA 并重啟
 sudo apt-get update
 sudo apt-get install cuda
 sudo reboot

5.3 配置環(huán)境變量

安裝完成之后,執(zhí)行如下操作

sudo vim /etc/profile.d/cuda-conf.sh

# 增加如下內容
export PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}}

# runfile 安裝還需要增加如下內容
# 64-bit 系統(tǒng)
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

# 32-bit 系統(tǒng)
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} 

# 保存并退出,下次重啟后就會生效了

重新啟動后可以使用nvcc --version進行驗證。

5.4 刪除 CUDA 和顯卡驅動

要完全刪除 CUDA 和驅動,可以按照命令執(zhí)行。

# 刪除 CUDA Toolkit: 
 sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*"  "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" 
# 刪除顯卡驅動
 sudo apt-get --purge remove "*nvidia*"

 sudo apt-get autoremove

6. 英偉達 CuDNN

安裝前從鏈接查看最新的CuDNN依賴的CUDA版本和GPU架構。

與CUDA Toolkit類似,CuDNN同樣提供了多種安裝方法。本文只給出Tar文件安裝方法,該方法具有更好的靈性,更多安裝方法式參考官方教程。

安裝步驟

 tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
 
 sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 
 sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 
 sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
  • 如果你的設備安裝了多個版本的CuDNN,要切換到版本:sudo update-alternatives --config libcudnn

7. NVIDIA TensorRT

TensorRT 包含EAGA兩種類型:

  • EA:Early-Access,是指發(fā)布版本發(fā)布前的版本,不推薦
  • GA:General Available,經過完全測試和穩(wěn)定的發(fā)布版本,推薦

本文使用TensorRT 8.2 GA Update 4版本。同樣的,TensorRT也提供了很多安裝方式,本文只給出Tar文件安裝方法,由于這種方法足夠使多個版本的TensorRT同時安裝可能,因此更靈活。許多其他安裝方法參考官方教程。

安裝步驟

 cd ~/Downloads
 
 sudo tar -zxvf TensorRT-8.2.5.1.Linux.x86_64-gnu.cuda-11.4.cudnn8.2.tar.gz -C /usr/local
 sudo ln -s /usr/local/TensorRT-8.2.5.1/ /usr/local/tensorrt
 
 # 修改環(huán)境變量
 sudo vim /etc/profile.d/cuda-conf.sh
 export LD_LIBRARY_PATH=/usr/local/TensorRT-8.2.5.1/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
  • 安裝 TensorRT 附帶的一系列 Python 工具:
 cd /usr/local/tensorrt/python/
 python3 -m pip install --user tensorrt-8.2.5.1-cp38-none-linux_x86_64.whl

 cd /usr/local/tensorrt/uff/
 python3 -m pip install --user uff-0.6.9-py2.py3-none-any.whl

 cd /usr/local/tensorrt/graphsurgeon/
 python3 -m pip install --user graphsurgeon-0.4.5-py2.py3-none-any.whl

 cd /usr/local/tensorrt/onnx_graphsurgeon 
 python3 -m pip install --user onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl
  • 試驗證明TensorRT安裝是否成功,你應該不需要任何額外的依賴即可編譯并運行:
cd /usr/local/tensorrt/samples/sampleMNIST
sudo make clean && sudo make

# 運行
../../bin/sample_mnist
7.1 安裝PyCUDA

如果需要使用 TensorRT Python 綁定,則必須安裝PyCUDA。

  • 安裝前請確認nvcc是否添加到PATH
  • 執(zhí)行命令安裝:
    python3 -m pip install --user 'pycuda<2021.1'

注意:如果你更新了 CUDA,則需要刪除現(xiàn)在有 PyCUDA 然后重新安裝。


8. 碼頭工人

目標 Docker 主推 Docker Desktop 應用,但顯然這不是(大多數(shù))開發(fā)人員需要的。本文件安裝命令執(zhí)行 Docker。官網安裝教程在此。

安裝方式有很多種,本文只給使用增加 docker 庫的方式安裝。

安裝步驟:

  • [任選] 完整擔載docker-desktop(如果有的話):
 sudo apt remove docker-desktop

 rm -rf ~/.docker/desktop
 rm -f ~/.config/systemd/user/docker-desktop.service
 rm -f ~/.local/share/systemd/user/docker-desktop.service
 sudo rm -f /usr/local/bin/com.docker.cli

 sudo apt purge docker-desktop
  • 載舊版docker, docker-io, docker-engine(如果有的話):
 sudo apt-get remove docker docker-engine docker.io containerd runc
 sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • [任選] 如果要刪除舊的image, container,volumescustomized configuration:
 sudo rm -rf /var/lib/docker
 sudo rm -rf /var/lib/containerd
  • 新的設備在第一次安裝 docker 之前,需要添加倉庫設置:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release

# 添加 docker 的 官方 GPG 秘鑰:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download./linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 增加 docker stable 版本到倉庫
echo   "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download./linux/ubuntu   $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 安裝Docker-Engine (默認是最新版)
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • 測試安裝是否成功:sudo docker run hello-world
    如果看到你好來自Docker!等字樣表示安裝成功。

  • [推薦]其他設置:

    • 使用非root用戶進行管理
      # 增加 docker 用戶組
      sudo groupadd docker
      # 增加當前用戶到用戶組
      sudo usermod -aG docker $USER
      # 使設置生效
      newgrp docker
      # 驗證是否生效
      docker run hello-world
      
    • 開機自動啟動 docker 服務 (默認已啟動)
      # 手動開啟
      sudo systemctl enable docker.service
      sudo systemctl enable containerd.service
      # 手動關閉
      sudo systemctl disable docker.service
      sudo systemctl disable containerd.service
      

8.1 安裝NVIDIA Container Toolkit

安裝前確認

  • 安裝了顯卡驅動 >= 418.81.07 (通過命令檢查: nvidia-smi)
  • GPU 架構 >= Kelper(或計算能力3.0)
  • Docker >= 19.03 (可通過命令檢查: docker --version)
  • Linux Kernel > 3.10 (通過命令檢查: uname -r)

安裝步驟

  • 增加倉庫并添加 GPG 秘鑰:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)       && curl -fsSL https://nvidia./libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg       && curl -s -L https://nvidia./libnvidia-container/$distribution/libnvidia-container.list |             sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' |             sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
  • 安裝nvidia-docker2 :
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
  • 測試安裝是否成功
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

9.FFmpeg

Ubuntu 20.04 LTS 默認包含了FFmpeg 4.2.4,可以直接安裝。

9.1 使用包管理器

sudo apt update
sudo apt install ffmpeg

9.2 源碼編譯

TODO


10. Gstreamer

10.1 使用包管理器

如果只是使用 Gstreamer,建議使用這種方式安裝。Gstreamer v1.16.2 已經包含在 Ubuntu 20.04 中,可直接安裝:

sudo apt install libgstreamer1.0-0 gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav

# 可選但建議
sudo apt install libgstrtspserver-1.0-0 gstreamer1.0-rtsp gir1.2-gst-rtsp-server-1.0

10.2 源碼安裝

TODO

10.3 安裝 Gst-Python

注意: Python libs not found when configure

安裝步驟:

  • 下載依賴庫:
sudo apt install python3-gi python3-dev python3-gst-1.0 python-gi-dev git python-dev python3 python3-pip python3.8-dev cmake g++ build-essential libglib2.0-dev libglib2.0-dev-bin libgstreamer1.0-dev libtool m4 autoconf automake libgirepository1.0-dev libcairo2-devsu
  • 下載 Gst-Python:
cd ~/Downloads
git clone https://github.com/GStreamer/gst-python.git
cd gst-python
git checkout 5343aeb
  • 生成 configure 文件:
export GST_LIBS="-lgstreamer-1.0 -lgobject-2.0 -lglib-2.0"
export GST_CFLAGS="-pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include"

./autogen.sh PYTHON=/usr/bin/python3
  • [可選] 如果運行上一步出錯:
    configure: error: Python libs not found. Windows requires Python modules to be explicitly linked to libpython.
    修改 configure 文件第 14466 行:
    PYTHON_LIBS=`$PYTHON-config --ldflags 2>/dev/null`
    
    改為
    PYTHON_LIBS=`$PYTHON-config --embed --ldflags 2>/dev/null`
    
  • 重新運行 configure 并編譯安裝
./configure PYTHON=/usr/bin/python3

make -j$(nproc)
sudo make install

11. OpenCV with CUDA

本文將從源碼編譯并安裝 OpenCV 4.2.0 ,包含 C++ 和 Python 綁定,支持 CUDA 和 CuDNN。

說明:

  • OpenCV v4.5 支持 CuDNN v8。 低于 v4.5 版本需要關閉 CuDNN選項 或 使用 CuDNN v7。
  • 低于 v4.5 版本需要設置 -DWITH_CUDNN=OFF
  • CUDA_ARCH_BIN=8.6 是指顯卡 算力,請根據(jù)當前顯卡型號查找。查詢顯卡型號: nvidia-smi -L
  • CMAKE_INSTALL_PREFIX =/usr/local 是指 OpenCV 的安裝路徑,可以自行修改
  • 設置-DBUILD_opencv_cudacodec=OFF,因為 NVIDIA Video Decoder (NVCUVID) 已過期

安裝步驟

  • 刪除舊版 OpenCV
sudo apt purge libopencv* python-opencv 
sudo apt purge x264 libx264-dev
sudo apt autoremove
  • 安裝依賴環(huán)境
sudo apt -y install software-properties-common
sudo add-apt-repository "deb http://security./ubuntu xenial-security main"
sudo apt -y update

sudo apt -y install build-essential checkinstall pkg-config 
sudo apt -y install git gfortran yasm
sudo apt -y install libjpeg8-dev libpng-dev
sudo apt -y install libjasper1 libtiff5-dev
sudo apt -y install libavcodec-dev libavformat-dev 
sudo apt -y install libswscale-dev libdc1394-22-dev
sudo apt -y install libxine2-dev libv4l-dev
sudo ln -s -f /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h

sudo apt -y install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt -y install libopenblas-dev libopenblas-base liblapacke-dev
sudo ln -s /usr/include/x86_64-linux-gnu/cblas.h /usr/include
sudo ln -s /usr/include/x86_64-linux-gnu/cblas-openblas.h /usr/include
sudo ln -s /usr/lib/x86_64-linux-gnu/liblapack.so /usr/lib

# sudo apt -y install libgtk2.0-dev
# sudo apt -y install libatlas-base-dev 
sudo apt -y install libgtk-3-dev libtbb-dev qt5-default
sudo apt -y install libgtkglext1 libgtkglext1-dev
sudo apt -y install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt -y install libvorbis-dev libxvidcore-dev
sudo apt -y install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt -y install libavresample-dev
sudo apt -y install x264 v4l-utils
sudo apt -y install python3 python3-dev python3-numpy python3-bs4
sudo apt -y install libprotobuf-dev protobuf-compiler
sudo apt -y install libgoogle-glog-dev libgflags-dev
sudo apt -y install libgphoto2-dev libeigen3-dev 
sudo apt -y install libhdf5-dev doxygen graphviz
<>< font="">g src="http://image109.360doc.com/DownloadImg/2023/05/1820/266193153_1_20230518085636633.png" alt="" title=""><>
  • 下載 OpenCV 和 OpenCV_contrib
export WORKSPACE=~/Desktop/install_opencv
mkdir ${WORKSPACE}
cd ${WORKSPACE}

git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout tags/4.2.0
cd ..

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout tags/4.2.0
  • 低于 v4.4 且 WITH_CUDNN=ON: 修改 cmake/FindCUDNN.cmake在這里插入圖片描述
  • 創(chuàng)建 Makefile
cd ${WORKSPACE}/opencv
mkdir build && cd build

CUDA_DIR="/usr/local/cuda"
PY3=$(which python3)
VERSION=$($PY3 -c "import sysconfig; print(sysconfig.get_python_version())")


cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_POLICY_DEFAULT_CMP0069=NEW -D CMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=ON -D BUILD_DOCS=ON -D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=OFF -D BUILD_PACKAGE=OFF -D BUILD_EXAMPLES=OFF -D WITH_TBB=ON -D OPENCV_ENABLE_NONFREE=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUDA=ON -D CUDA_ARCH_BIN=8.6 -D WITH_CUBLAS=ON -D WITH_CUFFT=ON -D WITH_NVCUVID=ON -D WITH_CUDNN=ON -D CUDA_TOOLKIT_ROOT_DIR=${CUDA_DIR} -D CUDNN_INCLUDE_DIR=${CUDA_DIR}/include -D CUDNN_LIBRARY=${CUDA_DIR}/lib64/libcudnn.so -D OPENCV_DNN_CUDA=ON -D BUILD_opencv_cudacodec=OFF -D WITH_IPP=OFF -D WITH_V4L=ON -D WITH_1394=ON -D WITH_GTK=ON -D WITH_QT=OFF -D WITH_OPENGL=OFF -D WITH_EIGEN=ON -D WITH_FFMPEG=ON -D WITH_GSTREAMER=ON -D BUILD_JAVA=OFF -D BUILD_NEW_PYTHON_SUPPORT=ON -D OPENCV_SKIP_PYTHON_LOADER=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=${WORKSPACE}/opencv_contrib/modules -D PYTHON3_EXECUTABLE=$PY3 -D PYTHON3_INCLUDE_DIR=$($PY3 -c "import sysconfig; print(sysconfig.get_config_var('INCLUDEPY'))") -D PYTHON3_NUMPY_INCLUDE_DIRS=$($PY3 -c "import numpy; print(numpy.get_include())") -D PYTHON3_PACKAGES_PATH=$($PY3 -c "import sysconfig; print(sysconfig.get_path('platlib'))") -D PYTHON3_LIBRARY=$($PY3 -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")/libpython${VERSION}.so ..
<>< font="">g src="http://image109.360doc.com/DownloadImg/2023/05/1820/266193153_1_20230518085636633.png" alt="" title=""><>
  • 編譯并安裝
sudo make -j$(nproc)
sudo make install
sudo ldconfig
  • 創(chuàng)建 Python 綁定的軟鏈接
    OpenCV 將 Python 綁定安裝至 /usr/lib/python3/dist-packages 文件夾,通過創(chuàng)建軟鏈接可以使得所有 Python虛擬環(huán)境共用一個 OpenCV:
sudo ln -s /usr/lib/python3/dist-packages/cv2.cpython-38-x86_64-linux-gnu.so ~/.local/lib/python3.8/site-packages/

12. DeepStream 6.1 SDK

截止目前, DeepStream 已經更新到了 6.1,官方安裝教程在這

本文包括 本地安裝Docker 安裝 兩張方式。

12.1 本地安裝:

安裝前需要安裝以下軟件:

  • Ubuntu 20.04 LTS
  • GStreamer 1.16.2
  • NVIDIA driver 510.47.03
  • CUDA 11.6 Update 1
  • CuDNN 8.4.0.27
  • TensorRT 8.2.5.1

前置軟件安裝步驟:

  • GStream 1.16.2,參考本文 第10.1 節(jié)
  • [可選] Gst-Python,參考本文 第 10.3 節(jié)
  • NVIDIA driver 510.47.03, 參考本文 第5.1 節(jié)
  • CUDA 11.6 Update 1, 參考本文 5.2.2 Runfile 安裝方式
  • CuDNN 8.4.0.27,參考本文 第 6 節(jié)
  • TensorRT 8.2.5.1,參考本文 第 7 節(jié)

安裝步驟

  • 安裝依賴:
sudo apt install libssl1.1 libgstreamer1.0-0 gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav libgstrtspserver-1.0-0 libjansson4 libyaml-cpp-dev liblz4-dev libsasl2-dev gcc make git python3
  • 安裝 librdkafka
cd ~/Downloads/
git clone https://github.com/edenhill/librdkafka.git
cd librdkafka/
git reset --hard 7101c2310341ab3f4675fc565f64f0967e135a6a
./configure
make -j$(nproc)
sudo make install
  • 安裝 DeepStream 6.1 (重要:采用 Tar 包形式)
cd ~/Downloads/
wget https://developer./deepstream_sdk_v6.1.0_x86_64.tbz2

sudo tar -xvf deepstream_sdk_v6.1.0_x86_64.tbz2 -C /
sudo /opt/nvidia/deepstream/deepstream-6.1/install.sh
sudo ldconfig
  • 將 librdkafka 拷貝至 DeepStream 目錄
sudo mkdir -p /opt/nvidia/deepstream/deepstream-6.1/lib
sudo cp /usr/local/lib/librdkafka* /opt/nvidia/deepstream/deepstream-6.1/lib

12.2 安裝 DeepStream 6.1 Docker

TODO

12.3 [可選] 安裝 Deepstream Python bindings

安裝步驟:

  • 下載 DeepStream Python
cd ~/Downloads/
git clone https://github.com/NVIDIA-AI-IOT/deepstream_python_apps
cd deepstream_python_apps
  • 初始化子模塊
git submodule update --init
  • 編譯 Python 綁定, 生成 pyds-*.whl
cd bindings/
mkdir build && cd build
cmake -D DS_VERSION=6.1 -D PYTHON_MAJOR_VERSION=3 -D PYTHON_MINOR_VERSION=8 -D PIP_PLATFORM=linux_x86_64 -D DS_PATH=/opt/nvidia/deepstream/deepstream-6.1 ..

make -j$(nproc)
  • 安裝 pyds (可以激活 conda 虛擬環(huán)境安裝):
sudo apt install libgirepository1.0-dev

python3 -m pip install pyds-1.1.2-py3-none-linux_x86_64.whl
  • deepstream_python_apps 拷貝至 DeepStream 目錄
sudo cp -r ~/Downloads/deepstream_python_apps/ /opt/nvidia/deepstream/deepstream/sources/
  • 運行 deepstream-test1 Demo
cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps
cd apps/deepstream-test1

python3 deepstream_test_1.py ../../../../samples/streams/sample_720p.h264

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多