Hello NVIDIA team,
My DeepStream application was running perfectly on DeepStream 7.1
After upgrading the system to DeepStream 8.0, I’m now getting TensorRT deserialization and calibration errors when the pipeline starts .
then how to upgrad the application in deepstream 8.0
Error Log
gstnvtracker: Loading low-level lib at /opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so
[NvTrackerParams::getConfigRoot()] !!![WARNING] File doesn't exist. Will go ahead with default values
[NvMultiObjectTracker] Initialized
ERROR: [TRT]: IRuntime::deserializeCudaEngine: Error Code 1: Internal Error (Failed due to an old deserialization call on a newer plan file. This might happen when the plan file was built from an older TensorRT version. You can use `trtexec --getPlanVersionOnly` to check the version of TensorRT that was used to create the plan file. In deserializeEngine at runtime/api/engine.cpp:1454)
ERROR: ../nvdsinfer/nvdsinfer_model_builder.cpp:1306 Deserialize engine failed from file: /root/data/Ajeet_Gateway_Working/smarg/smarg_surveillance_prod/surveillance_ai_model/x86_64/Person_Detection/resnet34_peoplenet_int8.onnx_b19_gpu0_int8.engine
0:00:00.712010694 41742 0x7bf1496b1fe0 WARN nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-inference-4> NvDsInferContext[UID 21]: Warning from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:2097> [UID = 21]: deserialize engine from file :/root/data/Ajeet_Gateway_Working/smarg/smarg_surveillance_prod/surveillance_ai_model/x86_64/Person_Detection/resnet34_peoplenet_int8.onnx_b19_gpu0_int8.engine failed
0:00:00.712044623 41742 0x7bf1496b1fe0 WARN nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-inference-4> NvDsInferContext[UID 21]: Warning from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2202> [UID = 21]: deserialize backend context from engine from file :/root/data/Ajeet_Gateway_Working/smarg/smarg_surveillance_prod/surveillance_ai_model/x86_64/Person_Detection/resnet34_peoplenet_int8.onnx_b19_gpu0_int8.engine failed, try rebuild
0:00:00.712056895 41742 0x7bf1496b1fe0 INFO nvinfer gstnvinfer.cpp:685:gst_nvinfer_logger:<primary-inference-4> NvDsInferContext[UID 21]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2123> [UID = 21]: Trying to create engine from model files
WARNING: [TRT]: Heuristics has been ignored in this builder run. This feature is only supported on Ampere and beyond.
WARNING: [TRT]: Calibration Profile is not defined. Calibrating with Profile 0
ERROR: [TRT]: IBuilder::buildSerializedNetwork: Error Code 4: Internal Error (Calibration failure occurred with no scaling factors detected. This could be due to no int8 calibrator or insufficient custom scales for network layers. Please see int8 sample to setup calibration correctly. In initCalibrationParams at optimizer/builder/engineBuilder.cpp:2280)
Segmentation fault (core dumped)
System Information
- Hardware Platform: x86_64 GPU
- OS: Ubuntu 24.04.1 LTS
- DeepStream Version: 8.0
- TensorRT Version: 10.9.0.34-1+cuda12.8
- CUDA Version: 12.9
How to Reproduce
- Application and model were running correctly on DeepStream 7.1.
- Upgraded to DeepStream 8.0 with TensorRT 10.9 and CUDA 12.9.
- Pipeline uses existing INT8 engine file:
model-engine-file=resnet34_peoplenet_int8.onnx_b19_gpu0_int8.engine
- When running the app, DeepStream fails to deserialize or rebuild the engine.
- Deleting the engine and allowing DeepStream to rebuild triggers INT8 calibration errors.
- Running in FP16 mode (
network-mode=1) works correctly.
Configuration File (config_infer_primary.txt)
[property]
gpu-id=0
net-scale-factor=0.0039215697906911373
model-color-format=0
custom-network-config=yolov4.cfg
model-file=yolov4.weights
model-engine-file=model_b1_gpu0_fp32.engine
#int8-calib-file=calib.table
labelfile-path=labels.txt
batch-size=1
network-mode=0
num-detected-classes=80
interval=0
gie-unique-id=1
process-mode=1
network-type=0
cluster-mode=2
maintain-aspect-ratio=0
symmetric-padding=1
force-implicit-batch-dim=0
#workspace-size=2000
parse-bbox-func-name=NvDsInferParseYolo
#parse-bbox-func-name=NvDsInferParseYoloCuda
custom-lib-path=nvdsinfer_custom_impl_Yolo/libnvdsinfer_custom_impl_Yolo.so
engine-create-func-name=NvDsInferYoloCudaEngineGet