Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU): Jetson Xavier NX • DeepStream Version: 7.1 • JetPack Version (valid for Jetson only): R35 (release), REVISION: 4.1 • TensorRT Version: 10.3.0 • NVIDIA GPU Driver Version (valid for GPU only): 550.107.02(CUDA version: 12.4) • Issue Type( questions, new requirements, bugs): bugs • Docker Version: Docker version 27.0.3-1, build 7d4bcd863a4c863e650eed02a550dfeb98560b83 • OS: Ubuntu 22.04.4 LTS (amd64) • Graph Composer and Runtime Version: 4.1.0 • How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
Whenever I run the deepstream-test1 reference graph example on my Jetson board with the following docker compose file
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: nvidia-container-runtime did not terminate successfully: exit status 1: time="2024-10-23T21:38:11-04:00" level=error msg="failed to create NVIDIA Container Runtime: failed to construct OCI spec modifier: requirements not met: unsatisfied condition: cuda>=12.2 (cuda=11.4)" : unknown
This seems self explanatory, but if I were to build from a prior base image such as nvcr.io/nvidia/deepstream-l4t:6.4-triton-multiarch, I get the following error while running the container:
deepstream-1 | 2024-10-24 04:05:20.643 INFO gxf/gxe/gxe.cpp@183: Creating context
deepstream-1 | 2024-10-24 04:05:20.790 ERROR gxf/std/extension_loader.cpp@114: Failed to load extension /workspace/deepstream-test1/deepstream/nvdsbase/libgxf_nvdsbase.so Error: libnvbufsurface.so: cannot open shared object file: No such file or directory
deepstream-1 | 2024-10-24 04:05:20.791 ERROR gxf/gxe/gxe.cpp@255: LoadExtensionManifest Error: GXF_EXTENSION_FILE_NOT_FOUND
deepstream-1 exited with code 1
And the following if i use nvcr.io/nvidia/deepstream-l4t:6.2-triton
deepstream-1 | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by gxe)
deepstream-1 | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by gxe)
deepstream-1 | gxe: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by gxe)
deepstream-1 | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /opt/nvidia/graph-composer/libgxf_core.so)
deepstream-1 | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /opt/nvidia/graph-composer/libgxf_core.so)
deepstream-1 | gxe: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /opt/nvidia/graph-composer/libgxf_core.so)
deepstream-1 exited with code 1
Thanks for the reply. I used the container-builder cli as noted in the README enclosed with the reference graph, i.e. container_builder build -c ds_test1_container_builder_jetson.yaml -d aarch64 -wd $(pwd). I also made sure to update the docker_push.url field in order to push my image to my docker registry.
I ran the image using the compose file snippet in my earlier post via docker compose up deepstream-test1
The docker version on my Jetson board is Docker version 24.0.7, build 24.0.7-0ubuntu2~20.04.1
Would you be kind enough to try on a device with JetPack version R35 (release), REVISION: 4.1 preferably on the Jetson Xavier NX. Also may I also know what base image you are using to build the example/changes to your container builder config?
I get the following error if i use Deepstream 6.3 with Graph Composer 3.0.0
deepstream-1 | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by gxe)
deepstream-1 | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by gxe)
deepstream-1 | gxe: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by gxe)
deepstream-1 | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /opt/nvidia/graph-composer/libgxf_core.so)
deepstream-1 | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /opt/nvidia/graph-composer/libgxf_core.so)
deepstream-1 | gxe: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /opt/nvidia/graph-composer/libgxf_core.so)
deepstream-1 exited with code 1
And the following if i use Deepstream 6.1 with Graph Composer 3.0.0
deepstream-1 | 2024-10-30 15:22:13.370 ERROR extensions/nvdssource/nvurisrcbin.hpp@36: Could not create GStreamer element 'nvurisrcbin'
deepstream-1 | 2024-10-30 15:22:13.370 ERROR gxf/std/program.cpp@519: Couldn't run async. Deactivating...
deepstream-1 | 2024-10-30 15:22:13.373 ERROR gxf/core/runtime.cpp@1392: Graph run failed with error: GXF_FAILURE
deepstream-1 | 2024-10-30 15:22:13.373 ERROR gxf/gxe/gxe.cpp@269: GxfGraphRunAsync Error: GXF_FAILURE
deepstream-1 exited with code 1
Graph Composer 3.0.0 can only work with DeepStream 6.3+JetPack 5.1.2 GA. It means the Jetson host should be installed with JP5.1.2 GA. Why did you mention DeepStream 6.1 + Graph Composer 3.0.0?
Such errors show that the needed libraries are not built in the container or the gxf libraries copied to the container are not compatible to the base images.
Pardon the delay in responding, I used Deepstream 6.1 as the documentation seems to support its use, although it does not mention the version of the Graph Composer.
The JetPack SDK release notes for 5.1.2 mentions support for Deepstream 6.2. This can be found under Supported SDKs and Tools. I assumed this version should’ve been compatible. I decided to use the targeted release version (Deepstream 6.1) when i encountered errors with 6.2.
Moreover, it was my understanding that the container builder will find and use the appropriate version of the extensions populated via the registry. i.e. If my target device is aarch64 ubuntu_20.04, where my graph uses the NvDsInferenceUtilsExt extension, my minimum Deepstream version should be 6.3 or above as defined in its target.yaml(~/.cache/nvgraph_registry/NvDsInferenceUtilsExt/1.3.0/1.3.0-linux-aarch64-ubuntu_20.04-ds-6.3/target.yaml)
This led me to understand that in order to also get this to work on a graph designed in the latest DS versions, I had to manually change the extension versions in my graph to match the target required for Deepstream 6.3. i.e. Changed the version fields in my graph to 1.3.0.
The example almost works but i encounter the following error:
deepstream-1 | 2024-11-05 12:16:09.543 ERROR extensions/nvdssource/nvurisrcbin.hpp@36: Could not create GStreamer element 'nvurisrcbin'
deepstream-1 | 2024-11-05 12:16:09.543 ERROR gxf/std/program.cpp@519: Couldn't run async. Deactivating...
deepstream-1 | 2024-11-05 12:16:09.545 ERROR gxf/core/runtime.cpp@1392: Graph run failed with error: GXF_FAILURE
deepstream-1 | 2024-11-05 12:16:09.545 ERROR gxf/gxe/gxe.cpp@269: GxfGraphRunAsync Error: GXF_FAILURE
deepstream-1 exited with code 1
You may use “gst-inspect-1.0 nvurisrcbin” command to check whether nvurisrcbin is supported in the platform. There is no “nvurisrcbin” in DeepStream 6.1.