Feature Articles

NVIDIA's Optimus Technology - Best of Both Worlds

NVIDIA's Optimus Technology - Best of Both Worlds

What is Optimus Technology?

The Flaws of Switchable Graphics

Depending on where you're coming from, Optimus, the new notebook technology
that NVIDIA has announced today, is either a major improvement or a major patch. To provide some background, NVIDIA was the first to introduce the idea of switchable graphics (or Hybrid Graphics as NVIDIA calls it) on notebooks with both integrated and discrete graphics processors (GPU).

Users are given the choice of toggling between the two. For instance, if you're playing a 3D game, you would prefer the NVIDIA discrete solution for better performance. For less intensive tasks like browsing the web, you could change back to the integrated (usually Intel) graphics for a longer battery life.

On paper, this ability to switch on-the-fly sounded like the best of both worlds. Unfortunately, the reality, as NVIDIA found in a survey, was that only 1% of users actually used this feature. The vast majority simply didn't know how to use it properly or was uncertain on how it worked.

There were a few issues with current switchable graphics. Since it involved switching between two separate graphics subsystems within the notebook using what's called a hardware multiplexer, there was a discernible lag of between five and ten seconds. This was actually an improvement over the earliest implementations, where one has to reboot the notebook to enable the switch. Besides the lag during transition, the screen would also flicker, leading users to fear an impending system crash.

The interface too was responsible for the ignorance of switchable graphics as the option to switch was buried in the Windows power plan menu. Additionally, you have to close all open applications before the transition could occur. These main drawbacks of the state of switchable graphics prompted NVIDIA to improve on this technology, culminating in Optimus today.

What is Optimus Technology?

What Optimus does is to make the switch between integrated and discrete completely transparent to the user. The process is automatic, with the software
deciding which graphics processor will handle the application. It is also fast, with NVIDIA claiming that powering on the discrete GPU takes less than half a second. When it's turned off, the discrete GPU will not draw any power, so one gets the same battery life as if the notebook only had integrated graphics.

How will Optimus know which graphics processor to use for each application? It depends on the application and process call type, namely, CUDA calls, DirectX (DX) calls and DXVA calls. Obviously, it's straightforward for CUDA and DXVA calls, as they will immediately evoke the discrete graphics. For DX calls, it can be more difficult to tell if a certain game requires the full performance of the discrete GPU.

Hence for these cases, the software will depend on application profiles supplied by NVIDIA. This will be pushed out to users via the internet, with NVIDIA comparing them to antivirus definition updates. Of course, users can choose to tweak the profiles manually, as we shall try later during our hands-on with the ASUS UL50VF - one of the first notebooks to adopt the NVIDIA Optimus technology.

As for what happens underneath, the new Optimus design reduces the cost of producing switchable graphics by removing the additional hardware required, like the multiplexer that does the actual display switching between the integrated and discrete GPU. In the improved version, the display output only goes through the integrated graphics, regardless of which graphics engine (discrete or integrated) actually did the work. So if an application has been flagged to use the discrete graphics, the resultant data generated is sent directly to the frame buffer of the integrated graphics, which will then output it through the proper display interface like LVDS to the notebook screen or other output options to external screens.

This however requires some new hardware. Basically, a hardware feature that NVIDIA calls the Optimus Copy Engine does this data transfer between the frame buffer of the discrete GPU and the integrated GPU (which generally uses a reserved portion of system memory) via the PCIe Express bus. This fast transfer is what makes the seamless switching of the Optimus feature possible, by removing the need for the multiplexer and its associated lag.