I use multi threads calling NvBufferTransform() to resize the nvbuffer, and I create one NvBufferSession per thread. I am wondering if this method is really parallel and if the overall throughput will really increase by doing this. Currently, I use NvBufferSessions as a class variable initialized once with the class. I also want to make sure this is the correct practice. And how many NvBufferSessions can we create on Jetson AGX?
Your topic was posted in the wrong category. I am moving this to the Jetson AGX category for visibility.
Which Jetson platform and JetPack you’re using?
Hi,
Yes, the tasks are done parallelly if you create and use NvBufferSession in each thread.
How many threads do you have? We have demonstration of 30 video file decoding in DeepStream SDK, so ideally it should be no problem for 30 threads.
thanks for your reply, I am confused with the tasks are done parallelly if you create and use NvBufferSession in each thread, but NvBufferTransform is performed on VIC hardware which only one unit on Jetson AGX,
Hi,
If you don’t create NvBufferSession, it runs like:
queue in NvBufferTransform() task
// the task is ongoing and cannot queue in next NvBufferTransform() task
NvBufferTransform() task is done
queue in next NvBufferTransform() task
NvBufferTransform() task is done
...
It cannot queue in NvBufferTransform() task when the previous one is ongoing. With NvBufferSession, it can queue in the task while the previous task is ongoing. When it is done, the next task can be processed immediately.
thank you very much; got it
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.