1

Given the cuda context needs to be synchronized across threads while making NVENC calls, would there be true concurrency in encoding multiple streams using multiple threads [each thread handling a single stream] ?

Wouldn't we be better off doing everything in a single thread - saving syscalls of mutex locks etc?

nano
  • 687
  • 6
  • 16
  • My encoding solution typically encodes two streams. It only creates a single CUDA context, which must indeed be locked for use. However the CUDA operations are all management or data copying, and ought to be fast (though I didn't do any profiling); the actual encoding is done by the NVENC unit(s), so that is probably what will end up determining performance, which appears to depend on your GPU: https://devtalk.nvidia.com/default/topic/800942/gpu-accelerated-libraries/session-count-limitation-for-nvenc-no-maxwell-gpus-with-2-nevenc-sessions-/post/4562315/#4562315 – JPNotADragon Jan 07 '17 at 23:20

0 Answers0