I’m a long-time Linux user but for the past few years my main laptop - a Lenovo Legion 5 with both AMD iGPU and Nvidia dGPU - has been on Win10. I’d like to upgrade and am looking for suggestions for distros and configurations. I’ve mainly used Debian-based distros in the past but am not particular. Here are my main concerns:
- I will likely still need to run Windows in a VM for a few corporate applications that won’t run in Linux (according to some teammates who have tried).
- I do a lot of work in Figma and haven’t tried it at all in Linux, but I know for sure it needs GPU acceleration. It seems like I’d have to choose between the following:
- just running in a browser window and (somehow) assigning the dGPU to that browser
- the above, but using the unofficial Linux electron-based figma app
- try running the Windows app in Linux
- putting Linux on the iGPU and passing the dGPU through to a Windows VM for this
- I also do a fair amount of local LLM work. I would prefer to do this in Linux with the dGPU, but again I could pass the dGPU through to a Windows VPN and then do it in WSL2 in Windows (which seems a little janky)
- I don’t want to dual-boot
Does anyone have any thoughts/suggestions on this? I haven’t tried GPU-switching in Linux for a long time and had poor success in the past. Am I better off leaving both GPUs accessible in Linux, or passing one through for the Windows VM?
I have an AMD 5900HS iGPU and a 3070M in my laptop. I’ve had no issues on Mint (with the auto-installed Optimus in the Nvidia Prime applet) or with PopOS. If you want to use passthrough, SR-IOV GPU sharing is not an option for AMD iGPUs IIRC, and I know it doesn’t work for NVIDIA dGPUs, so you’d need to pass the whole dGPU through to the Windows VM to get hardware acceleration.
For Figma, I would say the unofficial Electron wrapper or the online version is likely your best bet in terms of reliability. If it’s just using the browser mechanisms for hwaccel (no funky accessing windows resources behind the scenes) if you run Optimus in the “on-demand” mode the webpage should be able to access the dgpu for hardware acceleration just fine. Optimus is a lot better than it was a few years ago.
Great info, thanks! That makes two mentions of Pop_OS so I guess I’ll give that a try first.
I can add an aspect when it comes to Lenovo laptops. PopOS automatically searches and offers updates for different firmware for my Thinkpad. Really neat feature I haven’t seen in other distros to keep your device up to date.
I had a dual gpu Dell Xps laptop a couple of years ago, and the best experience I had with it was PopOS. It was the only distro that worked with that laptop out of the box without just completely disabling the dgpu.
I also have two GPUs in my laptop and PopOS works great for me
One thing you probably need to figure out first: how are the dgpu and igpu connected to each other, and then which ports are connected to which gpu.
Everyone does funky shit with this, and you’ll sometimes have dgpus that require the igpu to do anything, or cases where the internal panel is only hooked up to the igpu (or only the dgpu), and the hdmi and display port and so on can be any damn thing.
So uh, before you get too deep in planning what gets which gpu, you probably need to see if the outputs you need support what you want to do.
Yes, that’s a good point, I think the thunderbolt out only works on the iGPU, so I’m assuming that to get dual external monitors (HDMI and usb-c) the bare metal OS (Linux) will have to be running at least the iGPU.
I guess that also begs the question: X or Wayland in this scenario?
He’s referring to a hardware mux. Essentially, it’s hardware that will bypass your iGPU and directly use your dGPU. It’s more expensive to find laptops with hardware muxes, but they perform a bit better because output isn’t being routed through the iGPU first.
The downside of a hardware mux is that you have to switch between the dGPU and iGPU in your UEFI. This means you need to restart the computer every time you want to change which GPU you’re using. The dGPU will result in better performance at the cost of battery life.
Odds are your laptop does not have a hardware mux and you will need to go through the standard optimus setup for your distro. Some distros make this easy with their own tools, like Linux Mint and Manjaro.
Honestly, I’d go with ubuntu, just because lots of llm tools work with it, and because it has good support for dgpus. I personally use debian, but for your case, i’d go with ubuntu.
I’ve been using Manjaro for years and highly recommend it.
That said, lenovo build quality has gone way downhill and anyone reading this might want to avoid them in their next purchase.