Hi ,
We are facing an issue with high memory consumption and are looking for ways to reduce it.
Below are the details of our setup and the specific questions we have. If anyone has experienced a similar issue or knows how to resolve it, we would greatly appreciate your guidance and suggestions.
Here are the details of our current setup:
- Input image resolution: 1920 × 1080 (snapshot)
- Input to Hailo device: RGB, 640 × 640, “float32”
- Inference pipeline: 9 Hailo networks (8 detection models + 1 corrupted-image filter) running on a single shared “VDevice” with round-robin scheduling.
- Additional processing: CPU-side tampering detection, object tracking, and image I/O.
- Current behavior: We are not making any API calls to the server. We only store the detected image and delete the original snapshot after processing.
We have also tried the following optimizations:
- Set “queue_size = 2” for both “InputVStreamParams” and “OutputVStreamParams”.
- Switched from parallel inference to sequential inference execution.
- Optimized the inference pipeline to reduce unnecessary memory allocation.
Despite these optimizations, the application is still consuming significantly more RAM than expected.
I would appreciate your guidance on the following:
- Is this level of RAM usage expected for this setup?
- What would be considered a normal or expected RAM usage for a pipeline with 9 HEF models running on a shared Hailo-8 “VDevice”?
- Are there any recommended HailoRT or GStreamer settings to reduce memory consumption?
- Are there any best practices for running multiple HEF models with lower memory usage?
- Is the high memory usage more likely caused by the HEF models or by the Python/GStreamer pipeline?
- Are there any profiling tools you recommend to identify where the memory is being consumed?
Any suggestions or best practices would be greatly appreciated.
Thank you!