Can you use a 2nd GPU to eliminate encoder overload?

Prowl8413

New Member
Hi, so I have seen some dated topics about this, and wasn't sure of their relevance in current day.

My PC specs:
MSI Prestige x570 Creation
AMD 5800x - Cool by Corsair iCUE H115i
EVGA FTW3 RTX3080
32gb Crucial Ballistic 3600mhz
Corsair Force Series M.2
Lian Li Lancool 2 Case, all slots filled with 120mm Noctua fans powered by a fan controller
EVGA Supernova 1000 P2 PSU
1440p Resolution 165hz refresh

Fan curves are all custom set fairly aggressive to keep both case and GPU temps nice and cool.

While streaming games without RTX, performance is typically perfect, high FPS, no encoder issues as you would expect.
If I try to stream with RTX on with the few games I have tried, I hit encoder overload. Especially Fortnite, any settings on Fortnite while on RTX (I have tried a lot of them) I hit encoder overload no matter what. I also for some reason hit encoder overload hard when playing Diablo 2 Resurrected (no clue why) and higher settings on Age of Empires 4.

I was wondering, if I would not hit encoder overload, and generally free up my GPU when gaming and streaming, if I threw in my old gtx1050TI, and set the encoder in OBS to use it for the video encoding.

I really don't want to setup my old PC as a streaming PC, then have to offload my OBS settings, and my streamdeck over to it... buy and manage a capture card, a KVM switch with software switching and video capability... etc...

Any info appreciated. Thank you!
 

FerretBomb

Active Member
You cannot use a second 'encoding' GPU, no. There are a lot of technical reasons, but they all boil down to "it would make the system overhead MUCH worse, and get you no benefit". (If nothing else, it would constantly be logjamming your PCIe bus to hell and back.)

NVENC is a separate part of the GPU core and does NOT use *any* game-rendering assets. The only time you'll see 'encoding overloaded' with NVENC active is if you're using the Max Quality preset (use Quality instead), Lookahead or Psychovisual Tuning (turn them OFF). All three of those use CUDA cores, which WILL use game-rendering resources and can cause performance issues even on systems that should by all rights have zero problems.

As you haven't included a logfile from a streaming or recording session where the issue was occurring, we can't do more in-depth troubleshooting. A laundry list of components isn't really useful as compared to a logfile. :)
 

deFrisselle

Member
Limit your FPS to 60 or 120 Most your viewers will see is 60 FPS You issue is really a bandwidth issue Not only on the card but across the PCI bus So, you need to ramp your game down If you want all your GPU resources going to the game to max it out then yes you will need a streaming computer Really that gaming experience is just for you as you audience will never see what you see due to compression and stream fps limit of 60 at most

 

Prowl8413

New Member
Limit your FPS to 60 or 120 Most your viewers will see is 60 FPS You issue is really a bandwidth issue Not only on the card but across the PCI bus So, you need to ramp your game down If you want all your GPU resources going to the game to max it out then yes you will need a streaming computer Really that gaming experience is just for you as you audience will never see what you see due to compression and stream fps limit of 60 at most

Alright I appreciate the information. I know hardware but I'm far from an expert, I'm assuming all boards, even the higher end ones, only have 1 PCI bus just due to how the boards are usually used? It wouldn't possibly have a separate dedicated bus for just the top slot I use for my graphics card, then a 2nd bus for all the other slots? It's a shame a board like the Prestige Creation I have, made for streamers, wouldn't do something like this :p
 

koala

Active Member
Alright I appreciate the information. I know hardware but I'm far from an expert, I'm assuming all boards, even the higher end ones, only have 1 PCI bus just due to how the boards are usually used? It wouldn't possibly have a separate dedicated bus for just the top slot I use for my graphics card, then a 2nd bus for all the other slots?
All the Intel consumer CPUs support only 16 pcie-lines. Your AMD CPU supports 16+4. One GPU card supports 16 lanes, and if you plug in 2 GPU cards, the configuration is changed to 2x8. The available 16 are split over the 2 cards. The +4 of the AMD CPU is still 2x8 +4 for other devices, you will not get one x8 and one x12. You find this pcie configuration for Intel CPUs on https://ark.intel.com/ and for AMD CPUs (probably for Intel as well) on https://en.wikichip.org/wiki/amd.

Because of this halved bandwidth and the necessity of transferring the raw image data from one GPU through the bus to the other GPU, i. e. double the amount of data transferred over the bus, you in essence quarter the available bandwidth (for regular game graphics asset usage) on the pci-express bus system. First you halve the bandwidth, then you double the amount of data: this quadruples the load.
This is what a 2 GPU system makes inferior to a 1 GPU system if you want to use a Nvenc encoder on a different GPU. Nvenc has the nice property of being able to directly encode from the frame buffer of the GPU, so on 1 GPU the raw picture data is not required to be copied even once through the pci-express bus, so 1 Nvidia GPU card with Nvenc (new) as encoder is the most efficient solution.

If you want your recording process completely independent from the game and putting no load on the game GPU, you need to capture the monitor output with a capture card and use a 2nd PC where you do all encoding. (a capture card on the same PC where the game is running, is even worse than a 2 GPU variant, because the raw picture data has to be funneled through the capture API of Windows, and has to be again uploaded to the GPU for being encoded with Nvenc).
 
Top