Greetings. Maybe there are those who have faced this task. There are 2 different GPUs in one system. Is it possible to assign/specify for an application to use a specific GPU?
Is it possible to assign a specific GPU to an application? I assume that this function works only when there is a built-in graphics in the system.
My multi gpu rig runs off built in graphics, i've no idea how to go about assigning a specific GPU to an application tho.
How bizarre, I've been investigating the same thing the last few days. So firstly, no Windows doesn't let you do this -- the option to choose a GPU to assign an app only works if you have a system with both an integrated GPU (iGPU) and dedicated GPU (dGPU). Basically, laptops. It's there so you can run an app on the more power-friendly integrated GPU in the CPU. @ParKur this is a solution I found with some googling: https://github.com/ITCMD/RunAsGpu It's a simple solution that disables the primary GPU, launches your desired program -- which now naturally attaches to the only GPU in the system, the 2nd one -- and then re-enables the primary GPU again. However, for my system at least, I had to do a little fluffing to it to get it disable my primary GPU as using SLI the initial device IDs were identical for both GPUs, but eventually figured out how to specify the primary one. If you have two GPUs of different models, this won't be necessary and the batch file should work fine. If you have SLI or for anyone reading this who has SLI, you need to alter the batch file and explicitly state the extended device id. E.g, originally the RunAsGPU batch file calling devcon.exe pulled out just this id: Code: PCI\VEN_10DE&DEV_1B06 Which happens to match both 1080Tis in my system. I needed to specify the full device ID. So first ran devcon.exe to find this: Code: devcon.exe hwids PCI\VEN_10DE&DEV_1B06 And note the extended ID at the top. Then add this to the batch file, but note you need to add the '@' operator to specify a device instance. My final batch file then for eg looks like this: Code: devcon.exe disable "@PCI\VEN_10DE&DEV_1B06&SUBSYS_36021462&REV_A1\4&15E7D2AB&0&0010" timeout /t 2 /nobreak >nul 2>nul start "" "<YOUR PROGRAM HERE WITH PATH>" timeout /t 2 /nobreak >nul 2>nul devcon.exe enable "@PCI\VEN_10DE&DEV_1B06&SUBSYS_36021462&REV_A1\4&15E7D2AB&0&0010" It's a kludgy solution, but it works I'm actually surprised Windows doesn't let you do this natively, there's loads of reasons to run programs on a spare GPU, but googling this was the only thing that really popped up (amid the 99% of 'Use the Windows feature here..." which was for iGPU/dGPU only as above. So many people misunderstand the question here). Maybe a programmer out there can write something to do this properly instead of disabling/enabling a device while the system is running.
DannyD, here is an article about where this is done. Martigen, with the GPU disabled, the option is not suitable. Since in this case it will not be difficult to turn off and turn on the GPU with your hands. It is necessary that the GPUs are not disabled, but assigned to the main ones for different applications. I was looking for information, but I didn't find anything except one screenshot. Astyanax, it would be good to know for sure that in windows 11 it works without eGPU
It does. But alternatively, you don't need to disable the device, you can set a display on the other gpu (if you haven't already) and set that monitor as primary, most dx applications will always start on the gpu attached to the primary monitor. Then switch back to start your game on the one you want to game on.
I stand corrected! I haven't upgraded yet, and it didn't turn up in googling. Good to know for future Yep that was another option I found, but not good for me at least as I'm often using SLI and monitors all need to be connected to primary card, too much fluffing about with cables to switch things around.
Astyanax, maybe I'll try. My monitor is already connected to the card I need and everything is output to it, but not all applications use the necessary GPU. DannyD, this pleases, it remains to find out how it works without eGPU