이 토론은 잠겼습니다.
xSOSxHawkens 2018년 1월 27일 오후 6시 13분
Manually bind which GPU a program uses?...
Skippable preface: I guess in my first post I was too specific to the programs in question and the result was that the thread got moved to a non-applicable section of the forums, where I was then told I needed to re-post it into three other forums which were also not on topic. Instead of people understanding that I am asking a question about Windows and how it interacts with my hardware everyone got lost on the word “steam” in the post and apparently thought it was not hardware or OS related...

Therefore I have stripped my request down to the absolute basics so as to show that this is clearly a question regarding how to use my OS (windows 10) and my hardware (two separate GPU's) in an advanced way...






TL:DR How do I manually bind which GPU a program executes onto, prior to launching said executable, in a multi GPU, multi vendor system?





Situation:

One computer, with two separate graphics cards, identified by Windows 10 as GPU-0 and GPU-1.

Two separate screens, Screen-1 (SC1) run by GPU-1 and Screen-2 (SC2) run by GPU-0

SC-1 and GPU-1 are main screen and main GPU, SC2 and GPU-0 are secondary screen and GPU.

Two programs that are 3d rendered,. One heavy 3D rendering (prog-1) and one light 3D rendering (pro-2).




Desired result: When launched, have Prog-2 execute and render on GPU-0 on SC-2, while Prog-1 launches on the main screen SC1 rendered by GPU-1.



Possible solutions?

Launch flags similar to how you would bind an exe or process to operate with a pre-defined pre-launch affinity, as seen here:

https://stackoverflow.com/questions/7759948/set-affinity-with-start-affinity-command-on-windows-7



Being that Windows allows the setting of CPU affinity on launch through command line arguments, it would stand to reason that now that Windows 10 can clearly differentiate between GPU-0 and GPU-1 as separate devices that there * should * be a way for me to manually assign which GPU I want a specific EXE to run on before launch...


How?
xSOSxHawkens 님이 마지막으로 수정; 2018년 1월 27일 오후 6시 36분
< >
전체 댓글 36개 중 1~15개 표시 중
Vince ✟ 2018년 1월 27일 오후 6시 58분 
Can you right click icon and choose to run with specific gpu?

Maybe using application profiles in the 3-D control center?
xSOSxHawkens 2018년 1월 27일 오후 7시 00분 
Vince님이 먼저 게시:
Can you right click icon and choose to run with specific gpu?

Maybe using application profiles in the 3-D control center?

Both those options are for mobile users only. Both AMD and Nvidia offer that feature for their respective hybrid graphics options on laptops, but this is on a desktop platform.

Sadly on the desktop, neither Nvidia nor AMD offer that as a feature of their drivers.
xSOSxHawkens 님이 마지막으로 수정; 2018년 1월 27일 오후 7시 00분
AussieBobby 2018년 1월 28일 오전 6시 16분 
I think the only way is to use a virtual machine/s
Hatman 2018년 1월 28일 오전 6시 28분 
What kind of GPUs are they?
What kind of programs are you trying to run? (OpenGL? DX?, etc.)
Why do you want to run them seperately?
rotNdude 2018년 1월 28일 오전 10시 03분 
Have you tried this? I think you have, but I'm not too sure.

https://www.techadvisor.co.uk/how-to/pc-components/how-set-default-graphics-card-3612668/
DonJuanDoja 2018년 1월 28일 오전 11시 36분 
Yea I swear you could select preferred gpu in Nvidia control panel for program specific 3D settings..

Never had two GPUs though, always one card with IGP disabled so it couldn’t see the IGP.

Yea last screenshot of Rotndudes link
rotNdude 님이 마지막으로 수정; 2018년 1월 28일 오후 2시 22분
xSOSxHawkens 2018년 1월 28일 오후 1시 24분 
rotNdude님이 먼저 게시:
Have you tried this? I think you have, but I'm not too sure.

https://www.techadvisor.co.uk/how-to/pc-components/how-set-default-graphics-card-3612668/


DonJuanDoja님이 먼저 게시:
Yea I swear you could select preferred gpu in Nvidia control panel for program specific 3D settings..

Never had two GPUs though, always one card with IGP disabled so it couldn’t see the IGP.

Thanks guys, but as already mentioned this methosd is not availabel on non-mobile hybrid systems, and is not an option on desktop class drivers.

Hatman님이 먼저 게시:
What kind of GPUs are they?
What kind of programs are you trying to run? (OpenGL? DX?, etc.)
Why do you want to run them seperately?

GPU-0 is my integrated IGP, Intel HD4600 running my secondary screen.
GPU-1 is myu PCI-e GTX-960.

Programs in question would be Steam.exe (which is the program I wish to execute on the IGP) and any games (which I want to launch on the default GPU)



I want to run them seperartly because I use Steam In Home Streaming with a Steam link and a controller. When doing this I encode the network stream on my IGP to allow for the GPU and CPU to dedicate to the game. When using a controller on a steam link the best way to navigate steam is through Steam Big Picture mode, which is the default mode it launches into.

Sadly SBPM takes roughly ~10% of the GPU power of my GTX-960, which means I take a hit to FPS in games that tax the card already.

The whole reason I use my IGP for encoding is to avoid the ~10% hit I would take using hardware encoding on my GPU or software on CPU, therefore this negates any advantages I was getting to begin with.

I can remove this issue by using a BlueTooth KB/M with the Steam Link, so I can manualy close SBPM and launch my games through the normal desktop client. When I do this the ~10% usage on the GTX goes away, and its just like it should be with CPU/GPU dedicated 100% to the game and the IGP handling the encode.

What I want to do is bind the Steam.exe executable to the IGP, so that when SBPM is launched it is rendered using my IGP instead of the CPU.

I have already tested it, and I know the IGP can render a 1080P SBOM menu while also encoding a 1080p stream without choking. At this point I am 100% certain the *hardware* is capable of doing what I want, its just now a question of how to make windows do what I want lol.

AussieBobby님이 먼저 게시:
I think the only way is to use a virtual machine/s

That would work, in the sense that the seconda machine would be tied to the second GPU and you would launch two seperate apps ont he GPU's through the main system and vitual system respectivly, but thatwould not work out for my needs :(


rotNdude 님이 마지막으로 수정; 2018년 1월 28일 오후 2시 23분
xSOSxHawkens 2018년 2월 6일 오전 11시 38분 
Any possible sollutions?
Krakixx 2019년 1월 7일 오전 7시 30분 
Hello i find a solution I can use my intel 4600 for exemple. For spotify For netflix apps or wallpaper engine or google chrome etc.. accept my friend request OR add me i told u the solution ok answer to this post i wait for u
Krakixx 님이 마지막으로 수정; 2019년 1월 7일 오전 7시 55분
xSOSxHawkens 2019년 1월 7일 오후 4시 11분 
Krakixx님이 먼저 게시:
Hello i find a solution I can use my intel 4600 for exemple. For spotify For netflix apps or wallpaper engine or google chrome etc.. accept my friend request OR add me i told u the solution ok answer to this post i wait for u
So whats the sollution?
Washell 2019년 1월 7일 오후 4시 27분 
What GPU it runs on is determined by what monitor it runs on, and once you start looking for that, tools are easily found. Just two I found within a minute of looking:
https://www.realtimesoft.com/ultramon/
http://dualmonitortool.sourceforge.net/dmt_launcher.html
Washell 님이 마지막으로 수정; 2019년 1월 7일 오후 4시 28분
🆂tartup🆃im 2019년 6월 9일 오후 8시 19분 
BUMP:

I have this same issue. I need Chrome to run on a specific GPU. None of the solutions mentioned worked. For example:

I have a dual Nvidia GPU system and I need to force chrome.exe to use a specific GPU for all of it's GPU-related tasks (3D, video decoding, memory, etc). Any idea how to do this?

I've tried the following:

* Put Chrome on the proper monitor connected to the desired GPU. No affect, still renders Video Decode on wrong GPU.
* Inside Nvidia Control Panel -> Manage 3D settings -> Program Settings -> Chrome.exe both"CUDA-GPUs" and "Open GL Rendering GPU" were set to the proper GPU and this had no affect and still renders on the wrong GPU
* Right click on chrome.exe -> Render OpenGL on -> Selecting proper GPU has no affect and still renders on the wrong GPU
* Gathered my vendor ID/device ID via chrome://gpu
* --- Found the proper GPU IDs + ensured Chrome is on the desktop monitor that is plugged into the proper GPU
* Ran chrome.exe --gpu-active-vendor-id=0x1e07 --gpu-active-device-id=0x1e07
* --- Tested on Twitch stream for example, found it still uses the wrong GPU ID
* Tried --supports-dual-gpus to no affect

Any guidance is much appreciated!

Thanks!
xSOSxHawkens 2019년 6월 10일 오후 3시 32분 
Before this gets called as a necro as the OP I would like to say I am still looking for a solution and this thread/topic is valid.
Gunjoe 2019년 7월 13일 오후 11시 59분 
Just wanted to bump this aswell, ive tried the same as 🆂tartup🆃im to no luck most of the time. I was successful in running some apps using GPU-1 when right clicking and selecting the desired gpu, but it only worked for some apps, in my case DOOM 2016 successfully used GPU-1. No luck on a solid solution tho.
xSOSxHawkens 2019년 7월 14일 오전 12시 45분 
Still wondering how to do this myself... Would love to bind one specific application to always render using my iGP while letting my mainline GPU handle the rest...
< >
전체 댓글 36개 중 1~15개 표시 중
페이지당 표시 개수: 1530 50

게시된 날짜: 2018년 1월 27일 오후 6시 13분
게시글: 36