Hi,
I’m running DeepStream 8.0 on an aarch64 platform and experiencing
gst-nvinfer hanging at preroll stage. Looking for help or known workarounds.
=== Platform ===
- CPU: Phytium (飞腾) aarch64 dual-socket
- Motherboard: Great Wall RFMS5H2TA (BIOS T652FBE_V3.0.06)
- OS: openEuler 24.03 LTS (aarch64)
- GPU: RTX 5080
- Driver: 570.133.20 (also tested 595.84, same result)
- Container: nvcr.io/nvidia/deepstream:8.0-triton-arm-sbsa
- TensorRT: 10.9.0.34 (inside container)
- CUDA: 12.8
- nvidia-container-toolkit: 1.19.1
=== Problem Description ===
When running any pipeline containing gst-nvinfer,
the pipeline hangs at PREROLLING stage forever (FPS=0.00).
No error is printed. The pipeline never proceeds past preroll.
When GST_DEBUG is enabled, this error appears:
gstnvinfer.cpp:1483:convert_batch_and_push_to_input_thread:
NvBufSurfTransform failed with error -2 while converting buffer
=== What WORKS ===
-
trtexec runs perfectly with same engine:
trtexec --loadEngine=resnet18_trafficcamnet_pruned.onnx_b4_gpu0_fp16.engine
Result: 1624 qps, PASSED -
Pure decode + streammux + fakesink (NO nvinfer) works fine:
gst-launch-1.0
filesrc location=sample_1080p_h264.mp4 ! qtdemux ! h264parse !
nvv4l2decoder ! m.sink_0
nvstreammux name=m batch-size=4 width=1920 height=1080 !
fakesink
Result: 4 sources all EOS successfully, App run successful -
Official deepstream-app example WITHOUT nvinfer/tracker: works fine
=== What FAILS ===
Any pipeline with nvinfer hangs, even the simplest single-source case:
gst-launch-1.0
filesrc location=sample_1080p_h264.mp4 ! qtdemux ! h264parse !
nvv4l2decoder ! m.sink_0
nvstreammux name=m batch-size=1 width=1920 height=1080
live-source=0 batched-push-timeout=40000 !
nvinfer config-file-path=minimal_infer.txt !
fakesink -v
Last output before hanging forever:
Load new model: minimal_infer.txt successfully ← model loads OK
Pipeline is PREROLLING …
[all pad caps negotiated successfully] ← caps OK
0:00:00.0 / 0:00:48.1 (0.0%) ← stuck here forever
Official deepstream-app 4-source example WITH nvinfer:
FPS 0: 0.00 FPS 1: 0.00 FPS 2: 0.00 FPS 3: 0.00 (forever)
Same example on x86 (Ubuntu + bare-metal DS8.0):
FPS 0: 30.40 FPS 1: 30.40 FPS 2: 30.40 FPS 3: 30.40 (normal)
=== Already Ruled Out ===
- TensorRT issue: trtexec works perfectly (1624 qps)
- Engine file issue: engine builds and loads successfully
- batch-size mismatch: tested batch-size=1 single source, same hang
- Driver version: tested both 570.133.20 and 595.84, same result
- nvbuf-memory-type: tested type=0 and type=2, same result
- PCIe bandwidth: pure decode works fine under same PCIe conditions
- libcuda version conflict: verified all libs point to 570.133.20
- tracker/secondary-gie: disabled both, same hang with nvinfer only
=== Question ===
- Is there a known compatibility issue with gst-nvinfer /
NvBufSurfTransform on SBSA aarch64 with Blackwell (sm_120) GPU? - Is DeepStream 8.0 SBSA container officially validated on
Phytium CPU + openEuler combination? - Is there any workaround, such as using nvinferserver instead
of nvinfer?
Any help would be greatly appreciated.
Thank you.