Optimus: Recognizing Applications

Beyond addressing the problems with switching between IGP and dGPU, the Optimus driver has also been re-architected to provide an extensible framework that allows NVIDIA to support new applications with minimal effort. We've seen application profiling in graphics drivers for a while now, but Optimus adds a new type of profiling. Whereas gaming profiles are generally designed to get optimal performance out of the graphics hardware, Optimus is intended to provide an ideal platform for a variety of tasks. If an application can benefit from running on a discrete GPU, the Optimus driver will route the necessary calls to the dGPU. Likewise, if an application doesn't need any extra performance/features, the calls get routed to the IGP for rendering. The idea is that Optimus will use the GPU if there's a performance, quality, and/or power saving benefit.

At present, Optimus recognizes applications based on the executable file name. In some cases, the recognition goes a little deeper. For example, surfing the Internet generally won't benefit from the dGPU; however, if you happen to be viewing a Flash video (and you have the Flash 10.1 beta installed for your browser), Optimus will power up the GPU and begin routing calls through the video processing engine. Close the Flash video website and the GPU can turn off again. Similarly, if you load up a media player application, the GPU won't be necessary if you're dealing SD content but it would be enabled for HD content (and this can be changed depending on the hardware if necessary). Optimus should activate the dGPU any time a user requires DXVA, DirectX (OpenGL), or CUDA features.

The big change in application profiling is that the profiles are now separate from the main graphics driver. NVIDIA has created a robust infrastructure to deal with automatically downloading and updating the profiles, with user customizable options directing how frequently this should occur. This means that unlike SLI support, where a fully functional profile might require one or two releases before it's integrated into the standard NVIDIA drivers, NVIDIA can add applications that can benefit from a GPU to the Optimus profile list within days or perhaps even hours.

What's more, it's possible to add an application yourself if necessary. As an example, our Steam version of Batman: Arkham Asylum wasn't enabling the dGPU initially; we added a profile pointing at the Steam Batman EXE and the problem was solved. Ideally, we shouldn't have had to do that, and if "only 1%" of users ever manually switch between IGP and dGPU before, we suspect far less than 1% would be willing to manually add an application to the Optimus profile list. Hopefully NVIDIA will be able to push out regular profile updates for such omissions quickly.

The automatic updating of Optimus profiles also raises the possibility of using automatic updates for other areas. The big one is going to be SLI profile support, and while it isn't part of the current program it sounds as though NVIDIA intends to add that feature down the road. Once the infrastructure is in place and the drivers support a separate profile download, it should be relatively easy to get SLI profiles in a similar manner. It would also be interesting to see NVIDIA allow users to "suggest" applications for Optimus support through the drivers—i.e., anything that a user has manually added could be uploaded to the server, and if an application name gets enough hits NVIDIA would be more likely to enable support. Naturally, there would be some privacy concerns with such a scheme and some users wouldn't want to participate in such a program, but it might be useful.

As an aside, we've wanted AMD/ATI to enable manual user profiling of games for CrossFire for some time. They still haven't done that, and now NVIDIA has taken things a step further and separated the profiles from the main drivers. This is definitely an improvement over previous profiling schemes and it's something we hope to see more of in the future—from both AMD as well as NVIDIA.

NVIDIA Optimus Unveiled NVIDIA Optimus Demonstration
Comments Locked


View All Comments

  • JarredWalton - Tuesday, February 9, 2010 - link

    You can manually set applications to only use the IGP instead of turning on the dGPU, but to my knowledge there's no way to completely turn off the dGPU and keep it off. Of course, when the GPU isn't needed it is totally powered off so you don't lose battery life unless you start running apps that want to run on the GPU.
  • macroecon - Tuesday, February 9, 2010 - link

    Well, I was getting ready to pull the trigger over the weekend to buy a UL30Vt, but I'm glad that I waited. While this is not a revolutionary feature, it does make laptops that lacks it less valuable in my opinion. The video that Jarred posted toward the end of the article really demonstrates the value of on-the-fly GPU switching. I think that I'll wait for bit longer for Optimus, and also DirectX11 nVidia GPU, to hit the market. Thanks for the coverage Jarred!
  • lopri - Tuesday, February 9, 2010 - link

    Not to rain on NV's parade, but I'd much prefer if Optimus is doing its thing in 100% hardware. In an ideal world, software solution can do the same job as hardware solution, but I've seen some caveats on software solutions - on desktops, admittedly. Instead of trying to 'detect' the apps, detecting 'loads' and take care of it in hardware.

    Some might know what I'm talking about.
  • JarredWalton - Tuesday, February 9, 2010 - link

    The only problem with this is that the software is needed to work between Intel and NVIDIA hardware. There's also a concern about if you want something to NOT run on the dGPU (for testing purposes or to save battery life). With IGP reaching the point where it can handle most video tasks, you wouldn't want to power up the dGPU to do H.264 decoding as power requirements would jump several watts.

    Of course, if you could have NVIDIA IGP and dGPU it might be possible to do more on the hardware side, but Arrandale, Pineview, Sandy Bridge, etc. make it very unlikely that we would see another NVIDIA IGP any time soon.
  • acooke - Tuesday, February 9, 2010 - link

    OK, so this is awesome (particularly with Lenovo and CUDA mentioned). But how is the encrupted profile update driver yadda yadda stuff going to work with Linux?

    I'm a software developer, I work with CUDA (OpenCL actually), I use Linux. NVidia should worry about people like me because we're the motor behind the take-up of Fermi, which is going to be a significant source of cash for them. Currently I can do very basic OpenCL development while on the road with my laptop using the AMD CPU driver (despite having Intel/Lenovo hardware), but being able to use a GPU woul dbe a huge improvement (it's not that much fun running GPU code on a CPU!).
  • darckhart - Wednesday, February 10, 2010 - link

    yes, i'm curious about this also.
  • room1oh1 - Tuesday, February 9, 2010 - link

    I hope they don't fit any brakes into a laptop!
  • MonkeyPaw - Tuesday, February 9, 2010 - link

    Yeah, it's rather unfortunate that they said it should work like a hybrid, and they have the picture of a 2010 Prius in the slide. Just goes to show that car analogies don't work! They could have just drawn the parallel to your laptop battery--when you unplug the laptop, it starts using the battery with no user intervention.
  • horseeater - Tuesday, February 9, 2010 - link

    Switchable graphics are nice, but I want external gfx cards (or enclosures for desktop gfx cards) for laptops. Just plug it in when you're home, kill precious time playing useless junk, and use the igp when on the road.

    That being said, UL80-vt is reportedly awesome, and improvements are surely welcome, if they don't up the price.
  • synaesthetic - Wednesday, February 10, 2010 - link

    I want external GPUs also, but I want one that can use the laptop's LCD display rather than forcing me to plug in an external display. After all, external displays aren't portable, but a ViDock isn't terribly large.

Log in

Don't have an account? Sign up now