Question / Help CPU load 14 %, GPU load 14 %, is there any way of pushing GPU load to GPU 1 (tried nvidia options, but has no effect)..

DarkPoet

New Member
sorry, if I reposted this, thought I had found a solution, and was a bit quick to edit/delete my former message (since it did'n work)..

soo, I'm sitting here trying to tweak my system as much as possible, and then I got to look at the CPU and GPU load from OBS, using 3 cams and a animation I easy use the numbers I gave, I tried to find a way to push the GPU workload to GPU 1, since it's not doing anything at the time I need OBS, but this seems to not be possible ? and while we're at it, since the GPU can do half the work, is it possible to move even more work load to the GPU ?
 

koala

Active Member
  • OBS is optimized for and most efficient if capturing and compositing is done on the same GPU.
  • having multiple GPUs isn't helping performance for OBS, because video data has to be moved between GPUs in this case. Processing data on a GPU puts almost the same amount of resource demand than moving the same data around, so there is nothing to gain with multiple GPUs. OBS cannot split work between GPUs. It's either this or that, but not both. If you capture a game on one GPU and let OBS composite the video on another GPU, you have to move the video data from one GPU to the other, which is more resource demanding than the capture in the first place. For the same reason, using a capture card is more resource demanding than using game capture: with game capture, the data has do be moved around, while with game capture the data is processed where it is captured: within GPU memory.
 

DEDRICK

Member
Your GPU load while sitting in OBS will not be accurate unless you have "Prefer Maximum Performance" turned on in the NVIDIA control panel.

With OBS just open you will be sitting in a low power state, so your GPU usage will appear higher than it actually is.

Once you begin recording your GPU usage will "drop" to 3-5% 3D Engine, if using NVENC you will also see around 20% GPU usage on the Video Encode engine, do not confuse these 2 GPU usages as total GPU usage.

The GPU usage you see in Windows is not correct because it cannot show both 3D and Video Encode GPU usage when looking at it in Detail or Processes, the only way to see your true GPU usage is to view it under the Performance Tab

1547477080772.png
 

DarkPoet

New Member
so since none of you actually bother to answer my question I guess I'm gonna sit and wait for someone else..
the fact that you guys don't KNOW that is USES GPU power to run (or render) your webcams is not my fault ? ( I could of course make a video PROVING that I'm right but for now I won't bother, doing enough videos at the moment conserning people's claims of "bottlenecked CPU's" preventing proper use of a GPU's !!
I just hope someone comes along that knows a bit more about this..

ohh and can I add, since my graphics bus aint really that occupied (max around 8 % as far as I noticed), I don't see the issue in MOVING the calculations to the other GPU..
 

DEDRICK

Member
Capturing and Rendering occurs on GPU 0, you cannot offload rendering to GPU 1, you can only offload encoding to GPU 1

Your question is answered

It is known full well that capture devices increase rendering time, there is nothing to prove. You can see the impact they have on your average rendering time as you make changes to the settings, the higher the resolution/FPS, the bigger the hit.

That is why it is recommend to not run your webcam at full resolution/FPS when gaming, it is only taking up a portion of your screen.

Throw in a few more cams and you have a recipe for lagged frames once your GPU usage gets high enough.
 
Last edited:

DarkPoet

New Member
Capturing and Rendering occurs on GPU 0, you cannot offload rendering to GPU 1, you can only offload encoding to GPU 1

Your question is answered

It is known full well that capture devices increase rendering time, there is nothing to prove. You can see the impact they have on your average rendering time as you make changes to the settings, the higher the resolution/FPS, the bigger the hit. Throw in a few more and you have a recipe for lagged frames once your GPU usage gets high enough.
sorry my bad, of course the game rendering has to be on GPU 0, but I can't seem to get it to do the encoding on GPU 1..
just so I'm sure I understand this correctly, so the "webcam" (and animation) load on the GPU (I tried switching of each, changing the GPU usage as a result..), is actually from encoding the webcams ? or from rendering what I see ?
 
Last edited:

DarkPoet

New Member
Capturing and Rendering occurs on GPU 0, you cannot offload rendering to GPU 1, you can only offload encoding to GPU 1

Your question is answered

It is known full well that capture devices increase rendering time, there is nothing to prove. You can see the impact they have on your average rendering time as you make changes to the settings, the higher the resolution/FPS, the bigger the hit.

That is why it is recommend to not run your webcam at full resolution/FPS when gaming, it is only taking up a portion of your screen.

Throw in a few more cams and you have a recipe for lagged frames once your GPU usage gets high enough.
ohh, and I might wanna add, conserning "recipe for lag on GPU core", that would in the first place need the GAMES to actually USE the GPU, which most aren't at the moment, since people have this belif bout" bottlenecked CPU's", so they don't complain about their games not using the GPU's
 

DarkPoet

New Member
!!! UPDATED .. assuming this works just as bad as the other solution.. !!!

on a funny note, I wanna point out that I so far actually managed to get my CAM load on GPU 2 now, if I wanna play world of warships.. the stunt here is to first plug second monitor in second card.. then set windows to run main screen on the secondary monitor.. then start OBS, and viola, there you go GPU load on GPU 1.. then you start the game, change setting so that it plays the game on screen 1, shut down the game, and start it up again, and viola there you go game GPU load on GPU 0, while you have your OBS GPU load on GPU 1.. now all I need is for you guys to make it so I don't have to do all this switching around.. ( again, being that the other solution worked so bad I just assume this did'n really work well in game either, only recall actually opening the game, not playing it..)
 
Last edited:

Zidakuh

Member
Primary monitor in GPU 1
Secondary monitor in GPU 2
Set secondary monitor as main monitor
Open OBS on secondary monitor
Switch main monitor back to primary in Nvidia settings
Open game

No cables where switched, but I don't thinks this is even a viable solution, or if it works at all. But it's worth a shot.
Also, coding this in software is obviously not possible, because of all the steps and requirements involved.
 
Last edited:

DarkPoet

New Member
Primary monitor in GPU 1
Secondary monitor in GPU 2
Set secondary monitor as main monitor
Open OBS on secondary monitor
Switch main monitor back to primary in Nvidia settings
Open game

No cables where switched, but I don't thinks this is even a viable solution, or if it works at all. But it's worth a shot.
Also, coding this in software is obviously not possible, because of all the steps and requirements involved.
I don't know why I did'n just try that after having succes the first step, but it worked ;) I now have hold on a 27 % gpu load on my GPU1, so I assume some of the grapping work is on there as well :) making my main GPU totally free on 36 % while the game is running at the moment ( just start up screen) but succes, never the less.. ;)

or maybe not, seems I now just keep having low gpu load on my main card, so game is running worse :P
 

Zidakuh

Member
Well, that was specified already, due to data tranfers between the cards. It is pretty much unavoidable, at least till PCIe 4.0 lands on the mainstream, and GPU's can make use of it.
 

DarkPoet

New Member
Well, that was specified already, due to data tranfers between the cards. It is pretty much unavoidable, at least till PCIe 4.0 lands on the mainstream, and GPU's can make use of it.
Actually, there is ONE main problem about all these argues you guys come with.. I can do this with the Nvidia setting (using around 2 % of the GPU bus).. so if it's not possible, how can I do it with the nvidia encoder ? (still ONLY the encoding part which will still lower the GPU usage on GPU 0, I wanna stress that most work is done by the videopart of the GPU, but it still lower general GPU load to sent if it for encoding on a different GPU..).. but this kind of proves that some of the work can be moved, the big question is just how to get the rest moved, I guess..
 
Top