facebook rss twitter

Review: NVIDIA Optimus technology: mobile GPU implementation done right?

by Tarinder Sandhu on 9 February 2010, 14:00

Tags: NVIDIA (NASDAQ:NVDA)

Quick Link: HEXUS.net/qavzw

Add to My Vault: x

The status quo. How is Optimus different?

The status quo

NVIDIA's Optimus aims to provide completely transparent transitions from IGP to mGPU to IGP as and when the situation demands it in a mobile (battery-powered) environment, with the aim of increasing battery-life and providing a stutter-free experience. In effect, it's what Switchable Graphics should have been.

The Switchable Graphics approach, as described, requires the user to prompt the notebook into either enabling or disabling the mGPU drivers, thereby changing states.

SG1

Here's a high-level overview of how it works. You choose which state you want - IGP or mGPU - and then the Switchable Graphics either disables or enables the mGPU and associated driver. Depending upon which is chosen, hardware multiplexers (switches) then route the video to the desired output - DVI, VGA, DisplayPort, etc. Pragmatically, this means that notebook chipsets need to have the multiplexer ASICs in place and, logically, two sets of routing to each multiplexer - one from the IGP and the other from the mGPU. The loading/unloading of the discrete driver, which is complicated in itself, and physical multiplexing is what leads to the 5-10 second transition time between the IGP and mGPU.

Optimus - how is it different?

NVIDIA's Optimus technology works rather differently, as you may have guessed. Here's the same block diagram, but this time for Optimus.

SG1

The first aspect to note is that Optimus does away with the multiplexers and associated routing for the GPU. The onboard IGP handles all the output - be it from mGPU or IGP - and displays it on the screen. Both sets of drivers are also loaded and neither is forcibly disabled at any time. The mGPU's state can be completely disabled, including power-sapping PCIe lanes, when not in use. If the application requires additional graphics power and calls upon the mGPU, Optimus then activates it and routes the resulting video through the IGP's display controller.

Optimus

Here's the procedure in a little more detail. Note how everything feeds into the IGP's controller, irrespective of where the processing is coming from. As the display controller is only tasked with outputting the GPU's frame-buffer and not in actual computing, Optimus should be effectively chipset-agnostic.

Optimus has a built-in routing layer that decides which applications should be run on the mGPU and which on the IGP. Should the application make DirectX, DXVA (video) or CUDA calls, the layer triggers the mGPU into action. On top of this, specific Optimus profiles, much like SLI, can also be used to wake the mGPU up from its slumber.

The decision on when and where to use the mGPU will be based on the underlying platform. NVIDIA is yet to publish hard-and-fast rules on which instances the mGPU is deemed a better choice than either IGP or CPU, meaning that first-generation Optimus is very much a work in progress. The ultimate aim, we imagine, is to nail down parameters where battery-life is maximised, regardless of which silicon - CPU, IGP, mGPU - makes it happen.