Deepstream用户手册——快速入门指南

快速入门指南

英伟达®DeepStream软件开发工具包(SDK)是一个加速的人工智能框架,用于构建智能视频分析(IVA)管道。DeepStream在英伟达®T4、英伟达®Hopper、英伟达®Ampere、英伟达®ADA和英伟达®Jetson AGX Xavier™、英伟达®Jetson NX™、英伟达®Jetson AGX Orin™、英伟达®Jetson Orin™NX、英伟达®Jetson Orin™Nano等平台上运行。

Jetson设置

本节介绍如何在安装DeepStream SDK之前准备Jetson设备。

安装Jetson SDK组件

https://developer.nvidia.com/embedded/jetpack下载NVIDIA SDK Manager,您将使用它来安装JetPack5.1.2GA(对应L4T 35.4版本)

  • NVIDIA SDK Manager是一个图形应用程序,它会闪烁并安装JetPack包。
  • 闪烁过程大约需要10-30分钟,具体取决于主机系统。

如果您使用的是Jetson NX开发工具包,您可以从https://developer.nvidia.com/embedded/jetpack下载SD卡映像。

安装依赖项

输入以下命令来安装先决条件包:

$ 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 \
libgstreamer-plugins-base1.0-dev \
libgstrtspserver-1.0-0 \
libjansson4 \
libyaml-cpp-dev
安装Library dkafka(为消息代理启用Kafka协议适配器)

1. 从GitHub克隆Library dkafka存储库:

$ git clone https://github.com/edenhill/librdkafka.git

2. 配置和构建库:

$ cd librdkafka
$ git reset --hard 7101c2310341ab3f4675fc565f64f0967e135a6a
./configure
$ make
$ sudo make install

3. 将生成的库复制到深度流目录:

$ sudo mkdir -p /opt/nvidia/deepstream/deepstream-6.3/lib
$ sudo cp /usr/local/lib/librdkafka* /opt/nvidia/deepstream/deepstream-6.3/lib

安装最新的NVIDIA BSP

安装JetPack5.1.2GA将确保安装最新的NVIDIA BSP软件包。

安装DeepStream SDK

  • 方法一:使用SDK管理器

Additional SDKs部分选择DeepStreamSDK以及用于安装的JP5.1.2GA软件组件。

  • 方法2:使用DeepStream tar包:DeepStream | NVIDIA NGC
    1. DeepStream 6.3 Jetson tardeepstream_sdk_v6.3.0_jetson.tbz2下载到Jetson设备。
    2. 输入以下命令以提取和安装DeepStream SDK
$ sudo tar -xvf deepstream_sdk_v6.0_jetson.tbz2 -C /
$ cd /opt/nvidia/deepstream/deepstream-6.3
$ sudo ./install.sh
$ sudo ldconfig

下载DeepStream 6.3 Jetson Debiandeepstream-6.3_6.3.0-1_arm64.debJetson设备。输入以下命令:

$ sudo apt-get install ./deepstream-6.3_6.3.0-1_arm64.deb
  • 方法4:使用Docker容器

NGC上提供了DeepStream docker容器。请参阅Docker容器部分,了解如何使用docker容器开发和部署DeepStream

运行深度流应用程序(参考应用程序)

  1. 导航到开发工具包上的示例目录。
  2. 输入以下命令以运行参考应用程序:
  3. $ deepstream-app -c <path_to_config_file>

其中<path_to_config_file>是参考应用程序配置文件之一的路径名,位于configs/deepstream-app/中。有关可用文件的列表,请参阅包内容。

配置可以使用深度流应用程序运行的文件:

    1. source30_1080p_dec_infer-resnet_tiled_display_int8.txt
    2. source30_1080p_dec_preprocess_infer-resnet_tiled_display_int8.txt
    3. source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt
    4. source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_gpu1.txt(仅dGPU
    5. source1_usb_dec_infer_resnet_int8.txt
    6. source1_csi_dec_infer_resnet_int8.txt(仅限Jetson
    7. source2_csi_usb_dec_infer_resnet_int8.txt(仅限Jetson
    8. source6_csi_dec_infer_resnet_int8.txt(仅限Jetson
    9. source2_1080p_dec_infer-resnet_demux_int8.txt
    10. source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.yml
    11. source30_1080p_dec_infer-resnet_tiled_display_int8.yml
    12. source4_1080p_dec_preprocess_infer-resnet_preprocess_sgie_tiled_display_int8.txt
    13. source2_dewarper_test.txt

  • 您可以在/opt/nvidia/deepstream/deepstream-6.3/samples目录下找到示例配置文件。输入此命令以查看应用程序使用情况:
$ deepstream-app --help

  •  要保存TensorRT Engine/Plan文件,请运行以下命令: 
$ sudo deepstream-app -c <path_to_config_file>
  1. 要在2D平铺显示视图中显示标签,请用鼠标左键单击源展开感兴趣的源。要返回平铺显示,请右键单击窗口中的任何位置。
  2. 还支持键盘选择源。在运行应用程序的控制台上,按z键,然后按所需的行索引(09),然后按列索引(09)展开源。要恢复2D平铺显示视图,请再次按z
加快时钟

安装DeepStream SDK后,在Jetson设备上运行以下命令以提升时钟:

$ sudo nvpmodel -m 0
$ sudo jetson_clocks
对于Jetson NX,运行sudo nvpmodel-m 8而不是0

运行预编译的示例应用程序

  1. 导航到sources/apps/sample_apps中选定的应用程序目录。
  2. 按照目录的README文件运行应用程序。

如果应用程序遇到错误并且无法创建Gst元素,请删除GStreamer缓存,然后重试。要删除GStreamer缓存,请输入以下命令: $ rm ${HOME}/.cache/gstreamer-1.0/registry.aarch64.bin

当为没有现有引擎文件的模型运行应用程序时,文件生成和应用程序启动可能需要几分钟(取决于平台和模型)。对于以后的运行,可以重用这些生成的引擎文件以加快加载速度。

UbuntudGPU设置

本节介绍如何在安装DeepStream SDK之前使用NVIDIA dGPU设备准备Ubuntu x86_64系统。

本文档使用术语dGPU离散GPU”)来指代NVIDIA GPU扩展卡产品,例如NVIDIA特斯拉®T4NVIDIA®HopperNVIDIA®AmpereNVIDIA®ADANVIDIA GeForce®GTX 1080NVIDIA GeForce®RTX 2080NVIDIA GeForce®RTX 3080NVIDIA GeForce®RTX 4080。此版本的DeepStream SDK可在NVIDIA驱动程序525.125.06支持的数据中心GPU和驱动程序530.41.03支持的GeForce®/NVIDIA RTX/QUADRO等专业/消费级GPUNVIDIA TensorRT™及更高版本上运行。

您必须安装以下组件:

  • Ubuntu 20.04
  • GStreamer1.16.3
  • NVIDIA driver 525.125.06
  • CUDA 12.1
  • TensorRT 8.5.3.1

删除所有以前的DeepStream安装

输入以下命令以删除所有以前的DeepStream 3.0或以前的安装:

$ sudo rm -rf /usr/local/deepstream /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstnv* /usr/bin/deepstream* /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libnvdsgst*
/usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream*
/opt/nvidia/deepstream/deepstream*
$ sudo rm -rf /usr/lib/x86_64-linux-gnu/libv41/plugins/libcuvidv4l2_plugin.so

要删除DeepStream 4.0或更高版本的安装:

  1. 打开/opt/nvidia/deepstream/deepstream/文件中的uninstall.sh
  2. PREV_DS_VER设置为4.0
  3. 运行以下脚本作为sudo ./uninstall.sh

安装依赖项

在安装DeepStream SDK之前,输入以下命令来安装必要的包:

$ 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 \
libgstreamer-plugins-base1.0-dev \
libgstrtspserver-1.0-0 \
libjansson4 \
libyaml-cpp-dev \
libjsoncpp-dev \
protobuf-compiler \
gcc \
make \
git \
python3
安装CUDA Toolkit 12.1

运行以下命令(引用,https://developer.nvidia.com/cuda-downloads):

$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
$ sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
$ sudo apt-get update
$ sudo apt-get install cuda-toolkit-12-1

如果您在CUDA安装时发现以下错误,请参阅https://developer.nvidia.com/blog/updating-the-cuda-linux-gpg-repository-key/

W: GPG error: https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A4B469963BF863CC
E: The repository 'https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 InRelease' is no longer signed.
安装NVIDIA驱动程序525.125.06(仅适用于数据中心GPU
$chmod 755 NVIDIA-Linux-x86_64-525.125.06.run
$sudo ./NVIDIA-Linux-x86_64-525.125.06.run --no-cc-version-check

确保在安装nvidia驱动程序时停止gdmlightdmXorg服务

使用命令:sudo service gdm stop sudo service lightdm stop sudo pkill -9 Xorg

  • 要在HopperAmpereAda上运行更多数量的流(200+),请按照以下说明操作:
$ sudo service display-manager stop
#Make sure no process is running on GPU i.e. Xorg or trition server etc
$ sudo pkill -9 Xorg
#Remove kernel modules
$ sudo rmmod nvidia_drm nvidia_modeset nvidia
#Load Modules with Regkeys
$ sudo modprobe nvidia NVreg_RegistryDwords="RMDebugOverridePerRunlistChannelRam = 1;RMIncreaseRsvdMemorySizeMB = 1024;RMDisableChIdIsolation = 0x1;RmGspFirmwareHeapSizeMB = 256"
$ sudo service display-manager start
为专业和消费类GPUGeForce/NVIDIA RTX/QUADRO)安装NVIDIA驱动程序530.41.03
$chmod 755 NVIDIA-Linux-x86_64-530.41.03.run
$sudo ./NVIDIA-Linux-x86_64-530.41.03.run --no-cc-version-check

确保在安装nvidia驱动程序时停止gdmlightdmXorg服务

使用命令:sudo service gdm stop sudo service lightdm stop sudo pkill -9 Xorg

安装cuda-compat-12-1(仅适用于数据中心GPU

要编译包含“. cu”文件的源代码并运行应用程序,请运行以下命令:

sudo apt-get install -y cuda-compat-12-1
export LD_LIBRARY_PATH=/usr/local/cuda/compat:$LD_LIBRARY_PATH
安装TensorRT8.5.3.1

运行以下命令安装TensorRT8.5.3.1

sudo apt-get install libnvinfer8=8.5.3-1+cuda11.8 libnvinfer-plugin8=8.5.3-1+cuda11.8 libnvparsers8=8.5.3-1+cuda11.8 \
libnvonnxparsers8=8.5.3-1+cuda11.8 libnvinfer-bin=8.5.3-1+cuda11.8 libnvinfer-dev=8.5.3-1+cuda11.8 \
libnvinfer-plugin-dev=8.5.3-1+cuda11.8 libnvparsers-dev=8.5.3-1+cuda11.8 libnvonnxparsers-dev=8.5.3-1+cuda11.8 \
libnvinfer-samples=8.5.3-1+cuda11.8 libcudnn8=8.7.0.84-1+cuda11.8 libcudnn8-dev=8.7.0.84-1+cuda11.8 \
python3-libnvinfer=8.5.3-1+cuda11.8 python3-libnvinfer-dev=8.5.3-1+cuda11.8

安装Library dkafka(为消息代理启用Kafka协议适配器)

1. 从GitHub克隆Library dkafka存储库:

$ git clone https://github.com/edenhill/librdkafka.git

2. 配置和构建库:

$ cd librdkafka
$ git reset --hard 7101c2310341ab3f4675fc565f64f0967e135a6a
./configure
$ make
$ sudo make install

3. 将生成的库复制到深度流目录:

$ sudo mkdir -p /opt/nvidia/deepstream/deepstream-6.3/lib
$ sudo cp /usr/local/lib/librdkafka* /opt/nvidia/deepstream/deepstream-6.3/lib

安装DeepStream SDK

  • 方法一:使用DeepStream Debian

下载DeepStream 6.3 dGPU Debiandeepstream-6.3_6.3.0-1_amd64.debDeepStream | NVIDIA NGC

输入命令:

$ sudo apt-get install ./deepstream-6.3_6.3.0-1_amd64.deb

导航到下载的DeepStream包的位置以提取和安装DeepStream SDK

$ sudo tar -xvf deepstream_sdk_v6.3.0_x86_64.tbz2 -C /
$ cd /opt/nvidia/deepstream/deepstream-6.3/
$ sudo ./install.sh
$ sudo ldconfig
  • 方法3:使用Docker容器

NGC上提供了DeepStream docker容器。请参阅Docker容器部分,了解如何使用docker容器开发和部署DeepStream

运行深度流应用程序(参考应用程序)

  • 转到示例目录并输入以下命令:
$ deepstream-app -c <path_to_config_file>

其中<path_to_config_file>是参考应用程序配置文件之一的路径名,位于configs/deepstream-app中。有关可用文件的列表,请参阅包内容。

要转储引擎文件,请运行以下命令:

$ sud deepstream-app -c <path_to_config_file>

您可以在/opt/nvidia/deepstream/deepstream-6.3/samples目录下找到示例配置文件。输入此命令以查看应用程序使用情况:

$ deepstream-app --help

  • 要在2D平铺显示视图中显示标签,请用鼠标左键单击源展开感兴趣的源。要返回平铺显示,请右键单击窗口中的任何位置。
  • 还支持键盘选择源。在运行应用程序的控制台上,按z键,然后按所需的行索引(09),然后按列索引(09)展开源。要恢复2D平铺显示视图,请再次按z

运行预编译的示例应用程序

  1. 导航到sources/apps/sample_apps中选定的应用程序目录。
  2. 按照该目录的README文件运行应用程序。

如果应用程序遇到错误并且无法创建Gst元素,请删除GStreamer缓存,然后重试。要删除GStreamer缓存,请输入以下命令:

$ rm ${HOME}/.cache/gstreamer-1.0/registry.x86_64.bin

当为没有现有引擎文件的模型运行应用程序时,文件生成和应用程序启动可能需要几分钟(取决于平台和模型)。对于以后的运行,可以重用这些生成的引擎文件以加快加载速度。

RedHat EnterpriseLinuxRHEL)的dGPU设置

此版本不支持RHELDeepstream

如果显示器没有连接到系统,如何可视化输出

1.通过创建虚拟显示与X服务器一起运行

详见Virtual GPU Software User Guide :: NVIDIA Virtual GPU Software Documentation

2、无需X服务器运行(适用于支持RTSP流输出的应用)

SDK提供的默认配置文件将基于EGLnveglglessink作为默认渲染器(在[接收器]组中由type=2表示)。渲染器需要一个正在运行的X服务器,如果没有它就会失败。 在没有X服务器的情况下,DeepStream参考应用程序提供了通过RTSP流式传输输出的替代功能。这可以通过在配置文件中添加RTSP输出接收器组来启用。有关示例,请参阅[sink2]文件中的source30_1080p_dec_infer-resnet_tiled_display_int8.txt组。不要忘记通过为相应的接收器组设置启用=0来禁用nveglglessink渲染器。

平台和操作系统兼容性

下表提供了有关当前和早期版本的DeepStream中的平台和操作系统兼容性的信息。

Jetson 模型平台和操作系统兼容性

DS release

DS 6.0.1

DS 6.1

DS 6.1.1

DS 6.2

DS 6.3

Jetson platforms

Nano, AGX Xavier, TX2, TX1, Jetson NX

AGX Xavier, Jetson NX, Jetson Orin

AGX Xavier, Jetson NX, Jetson Orin

Xavier AGX , Xavier NX, AGX Orin, Orin NX

Xavier AGX , Xavier NX, AGX Orin, Orin NX, Orin nano

OS

L4T Ubuntu 18.04

L4T Ubuntu 20.04

L4T Ubuntu 20.04

L4T Ubuntu 20.04

L4T Ubuntu 20.04

JetPack release

4.6.1 GA

5.0.1 DP

5.0.2 GA Revision 1

5.1 GA

5.1.2 GA

L4T release

32.7.1

34.1.1

35.1

35.2.1

35.4

CUDA release

CUDA 10.2

CUDA 11.4

CUDA 11.4

CUDA 11.4

CUDA 11.4

cuDNN release

cuDNN 8.2.1.32

cuDNN 8.3.2.49

cuDNN 8.4.1.50+

cuDNN 8.6.0.166+

cuDNN 8.6.0.166+

TensorRT release

TRT 8.2.1

TRT 8.4.0.11

TRT 8.4.1.5

TRT 8.5.2.2

TRT 8.5.2.2

OpenCV release

OpenCV 4.1.1

OpenCV 4.2.0

OpenCV 4.2.0

OpenCV 4.2.0

OpenCV 4.5.4

Vision­Works

Vision­Works 1.6.502

NA

NA

NA

NA

GStreamer

GStreamer 1.14.5

GStreamer 1.16.2

GStreamer 1.16.2

GStreamer 1.16.3

GStreamer 1.16.3

Docker image

deepstream-l4t:6.0.1

deepstream-l4t:6.1

deepstream-l4t:6.1.1

deepstream-l4t:6.2

deepstream-l4t:6.3

dGPU 模型平台和操作系统兼容性

DS release

DS 6.0.1

DS 6.1

DS 6.1.1

DS 6.2

DS 6.3

GPU platforms

P4, T4, V100, A100

T4, V100, A2, A10, A30, A100, RTX Ampere (Ax000/RTX30x0)

T4, V100, A2, A10, A30, A100, RTX Ampere (Ax000/RTX30x0)

T4, V100, A2, A10, A30, A100, RTX Ampere (Ax000/RTX30x0), Hopper, ADA

T4, V100, A2, A10, A30, A100, RTX Ampere (Ax000/RTX30x0), Hopper, ADA

OS

Ubuntu 18.04 RHEL 8.x

Ubuntu 20.04

Ubuntu 20.04

Ubuntu 20.04

Ubuntu 20.04

GCC

GCC 7.3.0

GCC 9.4.0

GCC 9.4.0

GCC 9.4.0

GCC 9.4.0

CUDA release

CUDA 11.4.1

CUDA 11.6.1

CUDA 11.7.1

CUDA 11.8

CUDA 12.1

cuDNN release

cuDNN 8.2+

cuDNN 8.4.0.27

cuDNN 8.4.1.50+

cuDNN 8.7.0.84-1+

cuDNN 8.8.1.3-1+

TRT release

TRT 8.0.1

TRT 8.2.5.1

TRT 8.4.1.5

TRT 8.5.2.2

TRT 8.5.3.1

Display Driver

R470.63.01

R510.47.03

R515.65.01

R525.85.12

R525.125.06

VideoSDK release

SDK 9.1

SDK 9.1

SDK 9.1

SDK 9.1

SDK 9.1

OFSDK release

2.0.23

2.0.23

2.0.23

2.0.23

2.0.23

GStreamer release

GStreamer 1.14.5

GStreamer 1.16.2

GStreamer 1.16.2

GStreamer 1.16.3

GStreamer 1.16.3

OpenCV release

OpenCV 3.4.0

OpenCV 4.2.0

OpenCV 4.2.0

OpenCV 4.2.0

OpenCV 4.2.0

Docker image

deepstream:6.0.1

deepstream:6.1

deepstream:6.1.1

deepstream:6.2

deepstream:6.3

默认情况下,OpenCV 已被弃用。但是,通过在这些组件的Makefile中设置WITH_OPENCV=1,可以在 nvinfernvdsinfer)和 dsexamplegst-dsexample)等插件中启用 OpenCV。请参阅组件自述文件以获取更多说明。

DeepStream Triton推理服务器使用指南

要将 DeepStream 6.3部署中的Triton版本(Triton 23.03)迁移到更新版本(例如Triton 23.04或更新版本),请按照DeepStream Triton迁移指南中的说明进行操作。

dGPU

1. 拉取 DeepStream Triton 推理服务器 docker

docker pull nvcr.io/nvidia/deepstream:6.3-triton-multiarch

2. 启动 docker

docker run --gpus "device=0" -it --rm -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -e CUDA_CACHE_DISABLE=0 nvcr.io/nvidia/deepstream:6.3-triton-multiarch

  • x86triton docker基于tritonserver 23.03 dockerJetson基于tritonserver 23.01 docker,并具有Ubuntu 20.04
  • 首次启动triton docker时,可能需要几分钟才能启动,因为它必须生成计算缓存。

Jetson

DeepStream Triton容器映像(nvcr.io/nvidia/deepstream6.3-triton-multiarch)预装了Triton推理服务器和支持的后端库。

为了直接在设备上运行Triton推理服务器,即在没有docker的情况下,需要设置Triton服务器。

转到示例目录并运行以下命令来设置Triton服务器和后端。

$ cd /opt/nvidia/deepstream/deepstream/samples/
$ sudo ./triton_backend_setup.sh

默认情况下,脚本将下载Triton Server版本2.30。要设置任何其他版本,请相应地更改包路径。

脚本默认将Triton后端安装到/opt/nvidia/deepstream/deepstream/lib/triton_backends中。用户可以更新特定文件夹的infer_config设置,如下所示:

model_repo {
  backend_dir: /opt/nvidia/tritonserver/backends/
}

使用DLA进行推理

DLA是存在于Jetson AGX XavierJetson NX平台、Jetson AGX OrinJetson Orin NX上的深度学习加速器。这些平台有两个DLA引擎。DeepStream可以配置为通过Gst-nvinfer插件在任一DLA引擎上运行推理。可以将Gst-nvinfer插件的一个实例以及模型的单个实例配置为在单个DLA引擎或GPU上执行。但是,可以将多个Gst-nvinfer插件实例配置为使用相同的DLA。要将Gst-nvinfer配置为使用DLA引擎进行推理,请修改nvinfer组件配置文件中的相应属性(例如:样本/配置/深度流应用/config_infer_primary. txt):在[属性]组中设置enable-dla=1。根据要使用的DLA引擎,设置use-dla-core=0use-dla-core=1

DeepStream确实支持并行使用GPUDLA进行推理。您可以在单独的进程或单个进程中运行它。您将需要配置为在GPUDLA0DLA1上运行的三组单独的配置:

分离线程

GPUDLA在不同的进程中运行时,将运行DLA配置的终端的环境变量CUDA_DEVICE_MAX_CONNECTIONS1

单线程

DeepStream参考应用支持同一进程中的多个配置。要在同一进程中运行DLAGPU,请将环境变量CUDA_DEVICE_MAX_CONNECTIONS设置为32

$ deepstream-app -c <gpuconfig> -c <dla0config> -c <dla1config>

  • 25
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值