On Nvidia Optimus and MUX Switch
In this article, I will be describing how Optimus works and how does it compare to the MUX Switch
First of all, what is Optimus?
Nvidia Optimus is a smart GPU switching technology developed by Nvidia, which solves the past problem of requiring the computer to restart or to close all applications that use the GPU in order to switch from integrated GPU to the dedicated GPU(or vice versa)
When an application starts, the Optimus driver will search an archive of software based on .exe file name, if it is an application with low GPU demand it will be handled by the IGP, for games, high-resolution videos, or applications that use CUDA acceleration, it will b handled by the discrete GPU
Only the iGPU exports to the display, the frame that is rendered by the dGPU will have to be passed to the iGPU by the Copy Engine through PCIe lanes then it will be outputted to the display
Nvidia will update their archive to be compatible with more applications and games in order to decide their preferred GPU. Users can choose which GPU to use as well in the Nvidia Control Panel’s Manage 3D Settings.
AMD has a similar set of system, called AMD Dynamic Switchable Graphics which runs on similar principles
Features
First, let’s talk about the benefits
Power Efficiency
In situations with a lower load, one can use the weaker but more power-saving GPU, while the dGPU idles at extremely low power consumption. This was the main issue to solve in last generation’s GPU switching
Seamless Switching
Previously, MUX(or multiplexor)was used for GPU switching, which required the device to restart in order for it to work. The additional hardware increased the cost of production.
Later on, there is software switching as well, however, Windows XP and Vista did not support multiple GPU drivers, so they can only use a customized packaged driver; also for it to switch one needs to close all the applications that use the GPU and wait for around 5 seconds where the screen is not outputting anything.
Optimus on the other hand can switch without the user noticing and does not require the MUX, which means it only uses one output path, making it convenient and cost-saving.
Heterogenous Computing Benefits
In certain scenarios it can help with rendering, for example in PR it can improve the performance by 7%-63%.
However, this is useless for games.
NOW LET’S TALK ABOUT THE COSTS
Lagging
because the frame rendered by the dGPU is not outputted through the dGPU, there will be at least a 5ms delay that is almost inevitable, which makes it unfriends to FPS/Music Games/VR players
Limit on Game Performance
Optimus has a negative effect on the frame rate as well, since the final frame is outputted by the iGPU, whether you have a single channel or dual channel RAM can make a big difference in some games.
Bugs
Not all applications are well adapted with Optimus, making it running only on the iGPU. This was only patched after Windows 10 1803
Not Linux Friendly
Optimus was designed specifically for Windows and did not consider the compatibility under Linux, therefore it makes it incredibly difficult for an Optimus device to use the dGPU in Linux
Features that is based on the dGPU cannot be used
G-Sync, monitor overclocking, GPU overclocking, shadowplay, etc
these features are disabled because the display is hooked on to the iGPU instead of the dGPU
MUX Switch and Principle
In order to solve the various problems brought by Optimus, laptop makers added MUX back, but this time it is no longer switching between the dGPU and the iGPU, it is switching between dGPU and Optimus
- Features
The benefit of MUX Switch is that it leaves some room of choice for the user, it kept the dGPU output feature, but also allows you to switch back to Optimus for power saving or heterogeneous computing
Unfortunately, the cost goes back up again, requiring the user to pay for it, so it won’t come very cheap.
The is still another option, which is very straight forward
Disable the Integrated GPU
the core principle is the same as that of a desktop, which looks like
Here you would abandon the iGPU and only export video signal on the dGPU
Since we don’t need the MUX switch the cost is also reduced and one can use a CPU without iGPU such as an AMD desktop processor or an Intel “f” series processor.
The problem is straightforward as well: battery life
the power efficiency of a dGPU is incomparable to integrated, this means almost undoubtedly a charger or battery bank will be needed for one day of use.
In desktop replacement laptops this is commonly found but is disappearing in 2020.
MacBooks
They do have an MUX switch made by Apple but that’s not the core of our conversation here, also if one is running Windows on there only the dGPU will be used(if one is present)
Update with M1:
Their power efficiency is incredible now because they have essentially a mega-integrated GPU where the performance is stronger than many dGPU with the power demand of an iGPU orz