环境
RTX3060 Laptop
- 显卡驱动:NVIDIA-SMI 470.256.02 | Driver Version: 470.256.02 | CUDA Version: 11.4
- CUDA:11.4
- CUDNN:8.4.1
- opencv:4.5.3
安装步骤
- 显卡驱动:
sudo apt update
sudo apt upgrade
添加NVIDIA PPA并安装驱动:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-470
reboot重启
2. CUDA:
安装时注意取消勾选第一项driver,因为我们已经安装过显卡驱动。
前往官网下载runfile,下载完成后执行sudo sh cuda_11.4.3_470.82.01_linux.run
添加环境变量
echo 'export PATH=/usr/local/cuda-11.4/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
nvcc -V检查一下
3.CUDNN:
官网下载tar包cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar
解压后把对应文件进行拷贝
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*
- OPENCV:
- 下载依赖
sudo apt install build-essential cmake git pkg-config libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev
下载opencv和opencv_contrib并把opencv_contrib放到opencv里
- 预编译 注意路径
cmake \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN="8.6" \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D cuDNN_VERSION='8.4' \
-D cuDNN_INCLUDE_DIR='/usr/local/cuda/include' \
-D CUDA_ARCH_PTX="" \
-D OPENCV_EXTRA_MODULES_PATH=/home/strinkin/opencv-4.5.3/opencv_contrib-4.5.3/modules \
-D WITH_GSTREAMER=ON \
-D WITH_LIBV4L=ON \
-D BUILD_opencv_python3=ON \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_CUBLAS=1 \
-D PYTHON3_EXECUTABLE=$(which python3) \
-D PYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
-D PYTHON3_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
-D OPENCV_ENABLE_NONFREE=ON \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \
-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages \
-D PYTHON_DEFAULT_EXECUTABLE=$(which python3) \
-D OPENCV_PYTHON3_INSTALL_PATH=/usr/lib/python3/dist-packages \
-D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=OFF \
-D HAVE_opencv_python3=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON \
-D BUILD_opencv_python3=ON \
-D OPENCV_GENERATE_PKGCONFIG=YES \
..
-
编译
nproc查看核心数量
make -j(核心数量)例如make -j12 -
安装
sudo make isntall -
将OpenCV的库添加到路径
sudo gedit /etc/ld.so.conf.d/opencv4.conf
执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加/usr/local/lib
执行sudo ldconfig
编辑sudo gedit /etc/bash.bashrc
在文件最后添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
执行source /etc/bash.bashrc
apt-get install mlocate
sudo updatedb
最后输入pkg-config --modversion opencv4来查看opencv的版本
- TensorRT
- 官網下載tar包
tar -xvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz #解压
sudo mv TensorRT-8.6.1.6/ /usr/local/
- 添加環境變量
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/TensorRT-8.6.1.6/lib" >> ~/.bashrc
- 測試
cd /usr/local/TensorRT-8.6.1.6/samples/sampleOnnxMNIST
make
cd /usr/local/TensorRT-8.6.1.6/bin
./sample_onnx_mnist






