0. Prefacio
Soluciones comunes para la implementación de modelos de IA
Referencia: del modelo pytorch a la implementación del modelo TensorRT
- cpu: pytorch->onnx->onnxruntime
- gpu: pytorch->onnx->onnx2trt->tensorRT
- brazo: pytorch->onnx->ncnn/mace/mnn
Aquí estamos usando la implementación del modelo GPU: pytorch->onnx->onnx2trt->tensorRT
1. Configuración del entorno (Linux)
dependencia importante
- CUDA
- oculto
- TensorRT
- antorcha
instalación CUDA
paso 1. Debe verificar la versión máxima de CUDA admitida por el controlador de gráficos de su computadora
Comandos para ver la información de la GPU
watch -n 0.5 nvidia-smi
Por ejemplo, la versión máxima de CUDA admitida por el controlador de la tarjeta
CUDA Version: 12.0
paso 2. Descarga CUDA
Enlace: sitio web oficial de descarga de CUDA: CUDA Toolkit Archive | NVIDIA Developer
Después de la descarga, obtendrá un archivo .run
paso 3. Instalar
sudo chmod +x cuda_11.6.0_510.39.01_linux.run #给文件权限
./ cuda_11.6.0_510.39.01_linux.run
Para aquellos que ya han seguido el controlador de la tarjeta gráfica, siempre decimos que debemos presionar Enter para cancelar la instalación del controlador.
Las opciones son sobre la ruta de instalación y la configuración del enlace, elijo el valor predeterminado.
Paso 4. Configuración de variables de entorno
Después de completar la instalación
cd /usr/local/
Verá cuda y cuda11.6, cuda es un enlace a cuda11.6.
Si ha instalado más cuda, como cuda11.6 y cuda11.7, entonces debe apuntar el archivo cuda a cuda11.7 cuando necesite usar cuda11.7 Esta operación puede realizarse automáticamente durante la instalación.
establecer variables de entorno
sudo gedit ~/.bashrc
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
export PATH="/usr/local/cuda/bin:$PATH"
export CUDA_HOME="/usr/local/cuda:$CUDA_HOME"
Después de guardar y salir, debe actualizar en cada terminal
source ~/.bashrc
O reinicie su computadora.
No instalaremos cudnn primero y luego lo instalaremos de acuerdo con la versión de cudnn requerida por TensorRT después de que se confirme la versión de TensorRT. Si no lo hace, habrá alertas cuando use TensorRT, que será mejor que evitemos. Las instrucciones para cudnn aparecerán en el capítulo de instalación de TensorRT.
paso 5. Verificación
nvcc -V
instalación de Pytorch
paso 1. Instale Miniconda y cree un entorno para la instalación de pytorch
Link: linux install miniconda3
versión python, elijo 3.8
paso 2. Instalar la versión de pytorch
Enlace: pytorch
Aquí puede elegir más versiones de pytorch, según la versión de cuda que tenga instalada.
versión de mi elección
1.12.0+cu116
Instalación de TensorRT
paso 1. Descarga TensorRT
Enlace: Descarga de NVIDIA TensorRT
Seleccione una versión para descargar y asegúrese de que el CUDA compatible con esta versión corresponda a su versión.
Lo que descargué
Vamos a instalar cudnn La versión de cudnn requerida por TensorRTu es 8.6.
Instalación de Step2.cudnn
Enlace: descarga de cuDNN
Después de descargarlo y descomprimirlo, lo obtendrá.
Luego use el comando para copiar los archivos en include y lib a la carpeta cuda-11.6, /usr/local/cuda-11.6
Enlace: instalación y versión de Linux cuda, cudnn traspuesta
sudo cp include/cudnn* /usr/local/cuda-11.6/include/
sudo cp lib/lib* /usr/local/cuda-11.6/lib64/
sudo chmod a+r /usr/local/cuda-11.6/include/cudnn* /usr/local/cuda-11.6/lib64/libcudnn*
paso 3. Instalación de TensorRT-python
Cambiar al entorno pytorch
conda activate pytorch
Ingrese a la carpeta de instalación de TensorRT-python
según su versión de python
pip install tensorrt-8.5.1.7-cp38-none-linux_x86_64.whl
Solo disponible en su entorno pytorch después de la lista de pips
import tensorrt as trt
Información del entorno de impresión
import torch
import cv2
import tensorrt
print(torch.__version__)# 1.12.1+cu116
print(torch.version.cuda)# 11.6
print(torch.backends.cudnn.version())# 8600
print(cv2.__version__)
print(tensorrt.__version__)
Tenga en cuenta que la impresión de la versión cudnn es adecuada para tensorrt. Si actualiza la versión de cuda o cudnn, debe reinstalar el kit de herramientas tensorrt en el entorno pytorch.
torch.backends.cudnn.version()