I recently upgraded my desktop to sport dual RTX3060s, purchased to support some AI nonsense I’m working on for a different project.
Things I quickly discovered:
- All the delightful
-webui
tools for Stable Diffusion, Flux, Tortoise-TTS, and whatnot don’t support dualies. You have to do it in Python like a chump. - Steam gets very confused by multiple GPU setups, resulting in games loading to a blank screen or failing outright.
I’m too lazy to address (1) for now. But (2) turned out to be a cinch.
Now, Let’s Be Clear:
You are not going to suddenly have dual-GPU support for Deep Rock Galactic or whatever. However, you will be able to do things like:
- Get your games to load in the first place
- Have those games use a specific GPU while your AI whatnot uses a different one, doubling your productivity!
Also, this is just for NVIDIA. Probably.
I only own NVIDIA GPUs, so I can’t speak to issues with other manufacturers.
And we begin.
Step 1: List those GPUs
vulkaninfo --summary
You should get a listing that includes two separate GPUs. For example:
Devices:
========
GPU0:
apiVersion = 1.3.289
driverVersion = 565.57.1.0
vendorID = 0x10de
deviceID = 0x2504
deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
deviceName = NVIDIA GeForce RTX 3060
driverID = DRIVER_ID_NVIDIA_PROPRIETARY
driverName = NVIDIA
driverInfo = 565.57.01
conformanceVersion = 1.3.8.2
deviceUUID = c8256c45-47ef-1756-dd9e-d1ca20a766f4
driverUUID = a40eb34f-a796-5990-89ac-95d78eb83699
GPU1:
apiVersion = 1.3.289
driverVersion = 565.57.1.0
vendorID = 0x10de
deviceID = 0x2487
deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
deviceName = NVIDIA GeForce RTX 3060
driverID = DRIVER_ID_NVIDIA_PROPRIETARY
driverName = NVIDIA
driverInfo = 565.57.01
conformanceVersion = 1.3.8.2
deviceUUID = 869890f0-98ef-208e-aa1f-60003a8665e1
driverUUID = a40eb34f-a796-5990-89ac-95d78eb83699
Suppose you didn’t.
Did you get a command not found
error? Go here and install appropriately.
Step 2: List them again, with feeling
Your system can find both GPUs. Good! But can MESA find them?
MESA_VK_DEVICE_SELECT=list vulkaninfo
You should get a much simpler listing that still includes both GPUs.
selectable devices:
GPU 0: 10de:2487 "NVIDIA GeForce RTX 3060" discrete GPU 0000:04:00.0
GPU 1: 10de:2504 "NVIDIA GeForce RTX 3060" discrete GPU 0000:07:00.0
The first GPU listed is the one that Steam is trying to use.
Suppose you didn’t.
You probably need some MESA goodies. Pick your favorite:
sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-util
s
sudo pacman -S vulkan-mesa-layers lib32-vulkan-mesa-layers
Step 3: Try playing some stuff in Steam
Odds are, either Step 1, Step 2, or both ended up making you install something. Now that you’ve installed that something, you’re probably set. Give things a try.
(Optional) Step 4: Set Steam to use a different GPU
In my experience, you’re best off letting Steam use GPU 0, and reserving GPU 1 for all your other faffery. But if you have a darn good reason to try and change the GPU, try this:
- Go to the game’s properties.
- Under Launch Options add the following:
MESA_VK_DEVICE_SELECT=
where the eight hex digits are the ID of the appropriate GPU (you’ll notice I swapped in the ID of GPU 1)10de:2504
- Prayer never hurt?
I hope this helps! If it doesn’t, my troubleshooting capacities are limited by technical know-how and laziness in equal measure, but I’ll do my best.