Why the memory usage does not increase linearly when I load and run multi-engines

My xavier-agx (32G memory) , Jetpack 4.4
I have plugin M.2 ssd to xavier-agx and mount it under /home/myName as my home directory, and tensorRT-Yolov4(GitHub - jkjung-avt/tensorrt_demos: TensorRT MODNet, YOLOv4, YOLOv3, SSD, MTCNN, and GoogLeNet) has been install and work correctly on this Xavier.

When I load and run 1 python3 trt_yolo.py --video ${HOME}/myVideo.mp4
-m yolov4-416, the memory usage is 3.6Gbyte,

However, if 4 TrtYOLO(args.model(416), args.category_num, args.letter_box) are load and run in same trt_yolo.py and args, the input images are arrange inferenced by above 4 trtYOLO engines round-robin, the memory usage only 5.3 Gbyte, instead of 3.6Gbyte x4 =14.4Gbyte, why?

the memory usage is monitor by tegrastats Utility.


Do you run the multi-engine on the same process?
If yes, the memory used for loading the required library can be shared.


Hi AastaLL,
Yes, and thanks for your answer !!