快速入门指南#
Jetson [不适用于 NVAIE 客户]#
本节介绍如何在 Jetson 设备上使用 DeepStream SDK。
提升时钟频率#
安装 DeepStream SDK 后,在 Jetson 设备上运行以下命令以提升时钟频率
$ sudo nvpmodel -m 0
$ sudo jetson_clocks
您应该在运行 DeepStream 应用程序之前运行这些命令。
运行 deepstream-app(参考应用程序)#
导航到开发套件上的 configs/deepstream-app 目录。
$ cd /opt/nvidia/deepstream/deepstream-7.1/samples/configs/deepstream-app
输入以下命令以运行参考应用程序
# deepstream-app -c <path_to_config_file> e.g. $deepstream-app -c source30_1080p_dec_infer-resnet_tiled_display_int8.txt
其中
<path_to_config_file>
是参考应用程序的配置文件之一的路径名,位于configs/deepstream-app/
中。有关可用文件的列表,请参阅configs/deepstream-app/
中的软件包内容。可以与 deepstream-app 一起运行的配置文件
source30_1080p_dec_infer-resnet_tiled_display_int8.txt
source30_1080p_dec_preprocess_infer-resnet_tiled_display_int8.txt
source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt
source1_usb_dec_infer_resnet_int8.txt
source1_csi_dec_infer_resnet_int8.txt
source2_csi_usb_dec_infer_resnet_int8.txt
source6_csi_dec_infer_resnet_int8.txt
source2_1080p_dec_infer-resnet_demux_int8.txt
source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.yml
source30_1080p_dec_infer-resnet_tiled_display_int8.yml
source4_1080p_dec_preprocess_infer-resnet_preprocess_sgie_tiled_display_int8.txt
source2_dewarper_test.txt
注意
有关每个配置文件的详细说明,请参阅 示例配置和流。
注意
您可以在
/opt/nvidia/deepstream/deepstream-7.1/samples
目录下找到示例配置文件。输入此命令以查看应用程序用法$ deepstream-app --help要保存 TensorRT Engine/Plan 文件,请运行以下命令
$ sudo deepstream-app -c <path_to_config_file>
要在 2D 平铺显示视图中显示标签,请使用鼠标左键单击源来展开感兴趣的源。要返回到平铺显示,请在窗口中的任意位置右键单击。
也支持键盘选择源。在运行应用程序的控制台上,按
z
键,后跟所需的行索引(0 到 9),然后是列索引(0 到 9)以展开源。要恢复 2D 平铺显示视图,请再次按z
。
预期输出 (deepstream-app)#
下图显示了使用 source30_1080p_dec_infer-resnet_tiled_display_int8.txt
配置的 deepstream-app 的预期输出
运行预编译的示例应用程序#
导航到
sources/apps/sample_apps
内的所选应用程序目录。按照该目录的 README 文件运行应用程序。
注意
如果应用程序遇到错误并且无法创建 Gst 元素,请删除 GStreamer 缓存,然后重试。要删除 GStreamer 缓存,请输入以下命令:
$ rm ${HOME}/.cache/gstreamer-1.0/registry.aarch64.bin
当应用程序针对没有现有引擎文件的模型运行时,文件生成和应用程序启动可能需要几分钟(具体取决于平台和模型)。对于以后的运行,可以重复使用这些生成的引擎文件以加快加载速度。
适用于 Ubuntu 的 dGPU#
本节介绍如何在 x86 机器上使用 DeepStream SDK。
运行 deepstream-app(参考应用程序)#
导航到开发套件上的 configs/deepstream-app 目录。
$ cd /opt/nvidia/deepstream/deepstream-7.1/samples/configs/deepstream-app
输入以下命令以运行参考应用程序
# deepstream-app -c <path_to_config_file> e.g. $deepstream-app -c source30_1080p_dec_infer-resnet_tiled_display_int8.txt
其中
<path_to_config_file>
是参考应用程序的配置文件之一的路径名,位于configs/deepstream-app
中。有关可用文件的列表,请参阅configs/deepstream-app/
中的软件包内容。可以与 deepstream-app 一起运行的配置文件
source30_1080p_dec_infer-resnet_tiled_display_int8.txt
source30_1080p_dec_preprocess_infer-resnet_tiled_display_int8.txt
source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt
source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_gpu1.txt
source1_usb_dec_infer_resnet_int8.txt
source2_1080p_dec_infer-resnet_demux_int8.txt
source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.yml
source30_1080p_dec_infer-resnet_tiled_display_int8.yml
source4_1080p_dec_preprocess_infer-resnet_preprocess_sgie_tiled_display_int8.txt
source2_dewarper_test.txt
注意
有关每个配置文件的详细说明,请参阅 示例配置和流。
注意
要转储引擎文件,请运行以下命令
$ sudo deepstream-app -c <path_to_config_file>
您可以在
/opt/nvidia/deepstream/deepstream-7.1/samples
目录下找到示例配置文件。输入此命令以查看应用程序用法$ deepstream-app --help
要在 2D 平铺显示视图中显示标签,请使用鼠标左键单击源来展开感兴趣的源。要返回到平铺显示,请在窗口中的任意位置右键单击。
也支持键盘选择源。在运行应用程序的控制台上,按
z
键,后跟所需的行索引(0 到 9),然后是列索引(0 到 9)以展开源。要恢复 2D 平铺显示视图,请再次按z
。
预期输出 (deepstream-app)#
下图显示了使用 source30_1080p_dec_infer-resnet_tiled_display_int8.txt
配置的 deepstream-app 的预期输出
运行预编译的示例应用程序#
导航到
sources/apps/sample_apps
内的所选应用程序目录。按照该目录的 README 文件运行应用程序。
注意
如果应用程序遇到错误并且无法创建 Gst 元素,请删除 GStreamer 缓存,然后重试。要删除 GStreamer 缓存,请输入以下命令
$ rm ${HOME}/.cache/gstreamer-1.0/registry.x86_64.bin
当应用程序针对没有现有引擎文件的模型运行时,文件生成和应用程序启动可能需要几分钟(具体取决于平台和模型)。对于以后的运行,可以重复使用这些生成的引擎文件以加快加载速度。
如果显示器未连接到系统,如何可视化输出#
1. 通过创建虚拟显示器与 X 服务器一起运行#
有关详细信息,请参阅 https://docs.nvda.net.cn/grid/latest/grid-vgpu-user-guide/index.html#configuring-xorg-server-on-linux-server。
2. 在没有 X 服务器的情况下运行(适用于支持 RTSP 流输出的应用程序)#
SDK 提供的默认配置文件将基于 EGL 的 nveglglessink
作为默认渲染器(由 [sink] 组中的 type=2 指示)。渲染器需要正在运行的 X 服务器,如果没有则会失败。如果缺少 X 服务器,DeepStream 参考应用程序提供通过 RTSP 流式传输输出的替代功能。可以通过在配置文件中添加 RTSP 输出 sink 组来启用此功能。有关示例,请参阅 source30_1080p_dec_infer-resnet_tiled_display_int8.txt
文件中的 [sink2]
组。不要忘记通过为相应的 sink 组设置 enable=0 来禁用 nveglglessink
渲染器。
DeepStream Triton 推理服务器使用指南#
要将 DeepStream 7.1 部署(Triton 24.08)中的 Triton 版本迁移到较新版本(例如 Triton 24.09 或更高版本),请按照 DeepStream Triton 迁移指南中的说明进行操作。
注意
在运行
prepare_classification_test_video.sh
之前,请参阅 Docker 容器部分中的注释。
dGPU#
拉取 DeepStream Triton 推理服务器 docker
docker pull nvcr.io/nvidia/deepstream:7.1-triton-multiarch
启动 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:7.1-triton-multiarch
注意
适用于 x86 和 jetson 的 triton docker 基于 Tritonserver 24.08 docker,并具有 Ubuntu 22.04。
首次启动 triton docker 时,可能需要几分钟才能启动,因为它必须生成计算缓存。
ARM 上的 dGPU(IGX/dGPU、GH100、GH200、SBSA)#
拉取 DeepStream Triton 推理服务器 docker
docker pull nvcr.io/nvidia/deepstream:7.1-triton-arm-sbsa
启动 docker
sudo docker run -it --rm --runtime=nvidia --network=host -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,video,graphics --gpus all --privileged -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix -v /etc/X11:/etc/X11 nvcr.io/nvidia/deepstream:7.1-triton-arm-sbsa
注意
ARM 上 dGPU 的 triton docker 基于 Tritonserver 24.08 docker,并具有 Ubuntu 22.04。
首次启动 triton docker 时,可能需要几分钟才能启动,因为它必须生成计算缓存。
ARM/SBSA docker 上的 dGPU 当前仅支持 nv3dsink 用于视频显示,通过 视频子系统和解决方法中的已知限制部分中提到的解决方法。
Jetson#
DeepStream Triton 容器镜像 (nvcr.io/nvidia/deepstream:7.1-triton-multiarch) 预装了 Triton 推理服务器和受支持的后端库。
为了直接在设备上运行 Triton 推理服务器,即不使用 docker,将需要 Triton 服务器设置。
转到 samples 目录并运行以下命令以设置 Triton 服务器和后端。
$ cd /opt/nvidia/deepstream/deepstream/samples/
$ sudo ./triton_backend_setup.sh
注意
默认情况下,脚本将下载 Triton Server 版本 2.49。要设置任何其他版本,请相应地更改软件包路径。
默认情况下,脚本会将 Triton 后端安装到 /opt/nvidia/deepstream/deepstream/lib/triton_backends
中。用户可以按如下方式更新特定文件夹的 infer_config
设置
model_repo {
backend_dir: /opt/nvidia/tritonserver/backends/
}
使用 DLA 进行推理#
DLA 是 Jetson AGX Orin 和 Jetson Orin NX 上存在的深度学习加速器。这些平台有两个 DLA 引擎。DeepStream 可以配置为通过 Gst-nvinfer 插件在任一 DLA 引擎上运行推理。Gst-nvinfer 插件的一个实例以及模型的单个实例可以配置为在单个 DLA 引擎或 GPU 上执行。但是,可以配置多个 Gst-nvinfer 插件实例以使用同一 DLA。要配置 Gst-nvinfer 以使用 DLA 引擎进行推理,请修改 nvinfer 组件配置文件(示例:samples/configs/deepstream-app/config_infer_primary.txt)中的相应属性:在 [property] 组中设置 enable-dla=1。根据要使用的 DLA 引擎,设置 use-dla-core=0 或 use-dla-core=1。
DeepStream 支持并行使用 GPU 和 DLA 进行推理。您可以在单独的进程或单个进程中运行此操作。您将需要三组单独的配置,分别配置为在 GPU、DLA0 和 DLA1 上运行
单独的进程#
当 GPU 和 DLA 在单独的进程中运行时,从运行 DLA 配置的终端将环境变量 CUDA_DEVICE_MAX_CONNECTIONS
设置为 1
。
单个进程#
DeepStream 参考应用程序支持同一进程中的多个配置。要在同一进程中运行 DLA 和 GPU,请将环境变量 CUDA_DEVICE_MAX_CONNECTIONS
设置为 32
$ deepstream-app -c <gpuconfig> -c <dla0config> -c <dla1config>