So far in my testing, you will hit the built-in software decoder limit between 1400 and 2000 MP/s on AMD (even with high-core, high memory channel configs) long before you hit other limits like memory bandwidth. That "wall" may be higher if you have faster cores (Ryzen 9-3950X > Ryzen 9-3960X > EPYC 7302P) and faster RAM. While I need to test that theory,
@bp2008 hitting a wall closer to 1900 MP/s
using his 3950x with only 2 fast memory channels while I'm stuck at 1450 MP/s on
my 7302P with octa-channel memory could be an indication memory bandwidth is not the problem.
My EPYC 16-core starts climbing rapidly and inexplicably after hitting this "wall" and MP/s starts actually FALLING as you add more video streams. I believe in effect on the Intel systems, you are just "offloading" some of the decoding work onto a graphics processor that happens to be built-in to the CPU, I don't see any stated driver limits so probably just limited by processor performance. With these high-end AMD builds that offload won't be an option without a graphics card (more power, cost and heat).
I sent an email to
Blue Iris support and got this back:
Nothing unexpected, the recommended approach is the new sub-stream feature that has been recently released.
Before I move to substreams, which is obviously the solution everyone should be using once the bugs are worked out, I will be testing more extreme scenarios:
- testing with Quadro FX 580 (I happen to have) - as a basic test whether headroom changes with a 2009 GPU that does not support NVENC natively.
- testing with a GTX970 I already have - as an example of a Maxwell Gen2 mid-field graphics card, how much headroom will the limited 3 NVENC threads add to system headroom. The 3 NVENC thread limit is imposed on all consumer graphics cards, even if you put 2x or 3x of them in your system it appears. (see: Video Encode and Decode GPU Support Matrix )
- testing with a Quadro M4000 8GB - as an example of a Maxwell Gen2 mid-field creator card, how much headroom will the unlimited NVENC threads (limited only by memory) add to system headroom. Theoretically an 8GB card might handle 50 streams give or take, but going to test.
I believe I have discovered (doing a ton of research into the problem), that the issue we might be facing is that consumer cards (even the really awesome ones like 2080TI), are limited in the number of NVENC threads available within the
NVIDIA DRIVER. Once those threads are fully loaded, I suspect you will hit another wall where adding another camera to the GPU just sends the GPU and CPU soaring as they try to stuff more video frames into the limited pipe. This might also explain why an old Xeon system with 3x P1000 Quadro cards is listed in Blue Iris stats with over 5000 MP/s but even the low-end Quadro cards have the 3-thread limit imposed by the driver, so possibly that system is an example of 9 threads of capacity is.
Best guess, Nvidia does this to provide product differentiation between the PRO cards (used by creators, CAD etc) and CONSUMER cards (used to game), and charge a premium for cards to do more in those spaces, even though it's primarily limited at the driver level.