Hi,
I am trying to develop a Gstreamer application which uses the DeepStream SDK, and I wanted to try and run it in a Docker container in my Jetson Orin NX. However, the only Docker image for DS6.3 that allows for development seems to be the 6.3-gc-triton-devel image (nvcr.io/nvidia/deepstream:6.3-gc-triton-devel) which is AMD64-based.
I was wondering, is there an ARM64 docker image which can be used to develop DeepStream-based applications? It doens’t have to be specifically for the 6.3 version of DeepStream, but since I have Jetpack 5.1.2 installed that is the last one my driver will support as far as I know. There is no possibility of upgrading to a newer Jetpack version.
Thanks in advance for your attention.
Yes, I know there are ARM64 containers avaliable, but they do not include the libraries to develop C++ applications based on CUDA and DeepStream.
In the deepstream6.3-triton-multiarch image, cuda_runtime_api.h header file is missing, along with many other .so compiled libraries that are required to compile applications (see the image attached for an example of some of those libraries). That is why I was specifically asking for a container that allows for development in ARM64 based systems.
Are you aware of any containers that include these libraries and headers for that architecture?
Thanks in advance for the time and support.
Kind regards.
I am not running the Docker image and then trying to compile anything, I am trying to build a docker image using the DeepStream image as a base. I could maybe share with you the Dockerfile if it heps, but it just runs a series of CMake compilations, one of which compiles a program that uses the CUDA API and libraries, which it cannot seem to find.
Also, I forgot to mention that the dockerfile has been tested and built in an AMD64 system succesfully using the deepstream64-gc-triton-devel base image, which is the one I suspect allows for development. From the NGC description of the DS7.0-gc-triton-devel description:
The DeepStream development container is the recommended container to get you started as it includes Graph Composer, the build toolchains, development libraries and packages necessary for building DeepStream reference applications within the container. This container is slightly larger in size by virtue of including the build dependencies.
I am now trying to build it in an ARM64 system, and no deepstream image with that architechture seems to let me compile the program since it cannot find the cuda_runtime_api.h header and a lot of .so libraries (hence the undefined references). Can you please confirm whether a development container for DeepStream6.3 for ARM based systems exists?
Unlike x86, Some libraries are shared between docker and host on the jetson platform.These libraries and headers on Jetson are shared between the host and docker.
Considering the size of docker images, these libraries are not installed in the docker image.
This means you can only access them at runtime, not when building a docker image.
On Jetson, you can compile binaries on the host and then copy them into the Docker image.
Okay, I think I understand the issue now. I will try to compile my program in Jetson and copy the compiled objects into Docker.
Thank you very much for the information and the readyness!