Tuesday, March 8, 2011

NVIDIA Optimus Technology: Review


A few years ago and again only recently, a select few notebooks hit the scene with "switchable graphics". That is to say, these notebooks are able to manually switch between low-power integrated graphics solutions in the notebook chipset, to more powerful, and higher-performing discrete graphics processors. To enthusiasts, power users, or even somewhat tech savvy consumers, switchable graphics seemed like a no compromise solution.  The IGP could be used to conserve battery life when multimedia performance wasn't necessary, while the discrete GPU was available for more demanding applications.
In practice, however, notebooks with switchable graphics were somewhat cumbersome to use in the real world. In many cases, a physical switch had to be flipped, applications had to be closed, and the system had to be restarted. And to switch back, the process had to be repeated over again. Not to mention, the need to incorporate the switches and the other necessary hardware to support having a pair of GPUs connected to the same set of outputs, added complexity to the notebook's designs, that ODMs had to contend with. Switchable graphics, while great in theory, didn't always provide a great user experience or at least the implementation could have been much cleaner.

Ideally, switchable graphics would be seamless. Launch an application that doesn't require significant GPU resources, and the IGP gets used. Fire up a game though, and the discrete GPU kicks in. Up to this point, a scenario like this simply wasn't available, but NVIDIA aims to change that with the release of their Optimus technology.  

That teaser didn't exactly spell out what Optimus was all about, so we speculated a bit about what NVIDIA had in store. While we were partially correct in our assumption that Optiumus-enabled GPUs are capable of shutting down parts of the GPU while not in use, we didn't realize exactly how much could be disabled. In reality, Optimus turned out to be much more that we thought.
  
Left: NVIDIA's Optimus Graphics Solution - Right: Legacy Design Approach
If you take a look at the high-level design approaches that NVIDIA has detailed above, you'll note that the right-hand slide (the legacy approach) shows a fair bit more complexity for a switchable hybrid graphics infused notebook.  Physically, there are several mux/demux switches that need to be employed in order to couple the discrete GPU over the output traces of the PCB, so it can output to the same connectors that the integrated graphics solution can, when called upon.  In addition to adding design complexity, the approach also degrades signal quality a bit, though whether it is end-user perceptible is another question.  Regardless, this approach is less than optimal (pun intended we suppose) because it requires a hard, physical switch-over from IGP to GPU.  Though this can be achieved, with current gen hotplug / switch technologies and operating systems, the output to the screen will go blank and any applications running that require graphics resources, will need to be shut down to invoke the switch at the software level.  Next take a look at the slide on the left, to see the way NVIDIA has assembled an Optimus reference notebook design, which is significantly less complex.


The NVIDIA Optimus Way:
Doing things the right way, as Mamma once may have said, isn't always the easy way.  In actuality, from a hardware design perspective, NVIDIA's new Optimus design approach is significantly more simplified.  The discrete GPU simply sends its output to the integrated graphics core in the chipset--the IGP acts much like a pass though.  However, it's how this gets done that is the real "magic" that NVIDIA has developed with Optimus.  It's not as simple as just "sending the data along" to the IGP core for display.  Remember, that IGP wants to control the output lines when it's active.  We'll get into how NVIDIA pulls off a bit of trickery on the IGP to achieve this next.  In the mean time, here's a demo of NVIDIA Optimus technology in action that we've put together for your edification and entertainment.


HOW IT WORKS


NVIDIA's Optimus technology is enabled through a combination of custom hardware and software. What NVIDIA is calling the "Optimus Copy Engine" is integrated into all of their current 40nm GeForce 200M and 300M GPUs and upcoming Fermi-architecture based mobile products.
  
NVIDIA Optimus Copy Engine
With previous NVIDIA offerings that featured support for Hybrid SLI, which also allowed an NVIDIA IGP to display the output from a discrete GPU, elements of the GPU's 3D pipeline were used to copy frame buffer data to the IGP. This caused the 3D engine to stall during DMA operations. With the new Optimus Copy Engine, however, the 3D engines are not used and don't stall during the copy process.

As the Copy Engine's name suggests, its sole purpose is to copy frame buffer data from the discrete GPU, over the PCI Express interface to system memory, where it is then output to the display by the IGP. This operation may sound like it introduces significant latency, but we're told it is less than 3ms when operating at 60Hz. 
  
NVIDIA Optimus Software Implementation
On the software side, a few things had to happen to enable Optimus. First and foremost, Windows 7's ability to work with multiple graphics drivers simultaneously was a necessity. Vista only allowed graphics drivers from a single vendor to be installed at any given time. NVIDIA also implemented a few features in their drivers for Optimus. In the slide on the left, you'll see an indicator for the Optimus Routing layer. NVIDIA hasn't disclosed exactly how the routing laying works, but the software essentially detects certain calls an enables the discrete GPU when necessary. In addition, NVIDIA has also implemented application profiles in their driver--similar to SLI profiles. When a application is launched, if its profile recommends the use of the discrete GPU, it is fired up and takes over. While we're on the subject, we should also note, that when the discrete GPU is not being used, it can be completely shut down to a no-power state. Although we didn't see it in person, we're told NVIDIA has actually demoed an Optimus system, where they completely pulled the discrete GPU out of the system when it was not in use. The GPU was put back in, and it fired up when called upon by the Optimus software--all while the OS remained up and running.
NVIDIA has also implemented a new profile distribution system that will keep Optimus application profiles updated, without user intervention. Because many notebook buyers are, shall we say, not so tech savvy, the likelihood that they'd update drivers regularly and keep the profile list up to date was slim. With that in mind, NVIDIA has put mechanisms in place to update Optimus application profiles in the background, much like anti-virus vendors update definitions. Users can also manually add applications to the list or enable the GPU with a simple right click of the shortcut. A context menu gives users the ability to run a particular application using the discrete GPU if they so choose.
POWER CONSUMPTION AND WRAP-UP
NVIDIA's Optimus technology is less about performance and battery life than it is about the user experience. What we mean by this is that a GeForce 220M is going to consume the same power when in use, whether it is in an Optimus enabled notebook or not. And the same can be said about the IGP it's pared to as well.  What Optimus does enable, however, is a seamless switch from a lower-power, IGP enabled state, to a higher performing, GPU enabled one. This seamless switch gives users all of the performance of a discrete GPU when it's needed, with the lower-power benefits of an IGP when it is not.

To show how power is affected over time with Optimus, we ran a simple test with our sample notebooks. In this test, we allowed the machines to idle at the desktop, then we fired up 3DMark06 and it's Canyon Flight graphics test.  After a few seconds we exited 3DMark, and then the machines settle back to idle. The data shows the idle-peak-average power consumption for a notebook running solely on the IGP, solely on the discrete GPU, and finally on the Optimus enabled system
What Optimus nets the end user is low-power operation when the discrete GPU isn't necessary, high-performance operation when it is, with a seamless switch back to low power. The end result is less power consumed over time, without any sacrifice in performance.
NVIDIA's Optimus graphics switching and power saving technology, though a little complex to explain from a design and software standpoint, couldn't be easier to understand and see in practice and function from an end users perspective.  In fact, what NVIDIA has done with the technology enables a level of both functional and design simplicity that is, for us and we're sure notebook consumers to follow, a thing of beauty.  There is a simple elegance here that NVIDIA has enabled with Optimus and it's the way it should have been done a long time ago quite frankly.  Granted, we're sure that our expectations are based on an over-simplification of the level of engineering that NVIDIA poured into Optimus but we're more than happy that this level of seemless functionality for switchable hybrid graphics is finally here.  Thanks to NVIDIA for making it a reality.


No comments:

Post a Comment