TensorRT
,请注意CUDA 支持的最高算力要大于等于GPU本身的算力, 可以先看3小节^_^
Q
裙-472648720
显卡算力查询
nouveau
核显nouveau
核显,不然安装显卡驱动后会黑屏# 1 禁用nouveau
sudo vim /etc/modprobe.d/blacklist.conf
# 2 末尾添加下面2句代码, 来禁用其他核显
blacklist nouveau
options nouveau modeset=0
# 3 生效
sudo update-initramfs -u
# 4 查看是否生效,如果没输出就已经生效,如果有输出重启在试试
lsmod | grep nouveau
apt
二进制# 查看可以安装的驱动
sudo ubuntu-drivers devices
# 根据table补全选择一个合适的
sudo apt install nvidia-drive-470
nouveau
核显官方网站下载
按照自己显卡型号下载linux版本就行
依赖
sudo apt install g++ make
安装
sudo ./NVIDIA-Linux-x86_64-515.76.run
一直默认就行,点enter就行
查看版本
nvidia-smi
终端输出nvidia-smi
, 有显卡信息即代表安装成功
1.下载
cuda下载
cuda版本和算力
6000显卡算力 8.9
; cuda-12.0
支持的算力5.0 – 9.0
30系显卡算力8.6
; cuda-11.1 – 11.4
算力支持 3.5-8.6
cuda-11.8 support for compute capability 3.5 – 9.0
# cuda12.0
wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.60.13_linux.run
# cuda11.3.0
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run
sudo sh cuda_11.3.1_465.19.01_linux.run
安装时注意, 选择continue ,然后输入accept
之后 只选择cuda tookit
, 其他driver \文档\ sample
等都不要安装, 即把选项之前的X
按enter
去掉就行,最后选择install
等待安装完成就行。
安装后会在/usr/local/
下生成cuda
和cuda-11.3
目录 ,cuda
是cuda-11.3
软连接得到的,在本机有多个cuda
环境时,可以重新软连接切换cuda
版本
vim ~/.bashrc
# 在~/.bashrc文本加入下面2句
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
# 退出~/.bashrc, 生效
source ~/.bashrc
nvcc -V
出现nvcc版本信息表示安装cuda成功
有的人nvcc -V
没有输出,可能是因为环境变量没有设置对,要确认/usr/local
下是否含有
cuda
和cuda-11.3
,有可能是cuda-11.x
, 第3步就换成对应的,退出~/.bashrc
一定要source
下载cudnn下载
选择支持cuda11.x版本linux平台的cudnn-8.6.0
,下载后解压
# 8.2.1版本.tgz
tar -xf cudnn-11.3-linux-x64-v8.2.1.32.tgz
# 8.6.0版本.tar.xz
tar -xf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz
解压后得到的文件,拷贝到/usr/local/cuda-11.3/中
cp cuda/lib64/* /usr/local/cuda-11.3/lib64/
cp cuda/include/* /usr/local/cuda-11.3/include/
查看cudnn版本
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
cat /usr/local/cuda-11.3/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
上面2句结果都一样,证明cudnn复制成功,并生效
CuBLAS CuBLAS查看版本,自己根据版本好修改
miniconda地址
anaconda地址
下载完后,先加权限,再运行安装包
chmod +x Miniconda3-latest-Linux-x86_64.sh
sudo ./Miniconda3-latest-Linux-x86_64.sh
安装一直yes就行,安装路径可以自己设定, 不懂就直接默认即可
cd Miniconda3
./bin/conda init
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/
conda config --set show_channel_urls yes
~/.pip/pip.conf
文件,然后将下面的源地址添加进去# 创建~/.pip/pip.conf文件
mkdir ~/.pip && vim ~/.pip/pip.conf
~/.pip/pip.conf
即可[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
torch版本和cuda版本对应查询
conda和pip换源后就可以安装虚拟python环境了
# 创建一个名为lin,python环境为3.8的虚拟环境. 一直yes即可
conda create -n lin python=3.8
# 1 激活lin虚拟环境
conda activate lin
# 2 在lin虚拟环境中,使用pip安装python包
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
TensorRT
tensorRT
下载, 需要注册账号
注册后选择登录,以TensorRT8
为例子,选择TensorRT8
,勾选下图上的Agree
,选择8.6GA
版本(GA
通用版,EA
抢先体验版),和自己的ubuntu
版本和cuda
对应上,我是ubuntu20.04-cuda11.3
选择下图红框内容,选择tar
版本(已经编译好了)
c++
解压就能用tar -xf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz
python
版本的tensorrt
安装,根据python
版本选择,这里是python3.8
# 进入解压后的tensorRT/python目录
cd TensorRT-8.6.1.6/python
# 虚拟环境中安装python3.8版本
pip install tensorrt-8.6.1.6-cp38-none-linux_x86_64.whl
自此,c++
版本和python
版本的tensorRT
已经安装完成。
TensorRT
部署时, 注意cuda
的算力和显卡的算力编译c++
的时候会报错**
nvcc fatal : Unsupported gpu architecture 'compute_89'
CUDA
支持的最高算力要大于等于GPU
本身的算力显卡支持 89
的算力,而cuda
是11.3
只支持86
的算力
yolov5-v7
使用tensorRT
加速
ros
下完成lidar2cam
的点云上色、目标检测、测距代码链接
CMakeLists.txt
文件输出相关库的版本号
MESSAGE("\n------------\n")
MESSAGE("----OPENCV VERSION: " ${OpenCV_VERSION})
MESSAGE("----PCL VERSION: " ${PCL_VERSION})
MESSAGE("----CUDA VERSION: " ${CUDA_VERSION})
message(STATUS " cuda-libraries: ${CUDA_LIBRARIES}")
message(STATUS " cuda-include path: ${CUDA_INCLUDE_DIRS}")
MESSAGE("----TensorRT VERSION: " ${TensorRT_FOUND})
message("\n---------------\n")