-
Notifications
You must be signed in to change notification settings - Fork 619
body track v1.1.0 has slow memory leak with Tensor and Tensor-fp16 runtimes #1576
Comments
Is it known if the leak is in ONNX code (Microsoft, opensource-ish on github), TensorRT open-source code on github, or TensorRT closed-source code owned by NVIDIA? |
Checking with the ONNX team. |
Could you try OnnxRuntime master? We've fixed a couple of memory leak issues lately. |
I (a customer) am not able. The Azure Kinect Body Tracking code is closed-sourced and I have no source code or build scripts in which to compile any part of it. It is 2.5GB spread across 19 files. Three of the files are named |
The multiple-frame latency when body tracking is something I have reported several times. There is a way to remove one of those frames, but at 30FPS there are two more frames of latency that I have not been able to remove. I recorded a video documenting it, showing that even in the 5FPS mode there are 2 frames of latency, at https://www.youtube.com/watch?v=7Jc7KhoPWdc. I consider that video to be indisputable. To remove one of the extra frames, you need to deviate from Microsoft's example code. Microsoft's example code for realtime, lowest-latency-possible output has an error that causes it to buffer an extra frame and thus always be 1 frame further behind than it could be. I provide a fuller description at #816 (comment), along with a fix for the Unity/C# version of the code. In essence, regarding the code line: you need to run that line an additional time (potentially several extra times) when you first start the program, as the queue actually gets 2 frames when it is first populated. If you don't clear out the extra frame(s), you're always pulling a slightly-stale frame from the queue. That's not to mention any other frames that may accumulate in the queue over the course of the program. I suggest putting that all inside a While loop and always checking for additional frames every iteration, just to be sure. |
We have verified that the memory leak is in the ONNX Runtime. We have also verified that it is fixed in master. ORT v1.8 is expected to release in June and we plan to update the BT SDK to use ORT v1.8. |
No solution/alternative/fix/update to resolve the proven memory leak has been provided by Microsoft. This issue has been prematurely closed by the Kinect and Azure teams at Microsoft. I will not be tracking this issue anymore due to 16 months of no progress or updates to the Kinect Azure platform. |
@diablodale yes, we have a solution. Working on releasing it. Sorry, did not mean to close this issue prematurely. |
Fixed in v1.1.1 |
@qm13, Fixed in what version? For customers to verify unseeable code changes, we need to know the exact version in which is was potentially fixed so that customers can verify, escalate non-fix, etc. |
I measure a slow memory leak when BodyTrack v1.1.0 is used with the
tensor
andtensor+fp16
runtimes.It is approximately 1GB every 45 minutes of continuous 30fps use.
Setup
Repo
Result
tensor+fp16 for 1.5 hours, I also noticed the fps decreased from 30fps->27fps with a noticeable multiple frame latency.
Expected
No leaks.
The text was updated successfully, but these errors were encountered: