Apple's GPU Switching Technology

The Core i5 and i7 CPUs all come with their own on-package CPU called Intel's HD Graphics. This DX10-class GPU is capable of playing games and has a capable HD video decode engine, but it's no match for a discrete GPU.

As I mentioned earlier, all of the 15 and 17-inch MacBook Pro models ship with NVIDIA GeForce GT 330M discrete GPUs in addition to the two Intel chips (Core i5 + H55M). Despite being built on a 40nm process, the GT 330M could easily knock off an hour of battery life just by sitting idle while you type away in Pages.

Apple has had this problem before. The previous unibody MacBook Pros with discrete graphics had a software switch that you could use to turn the discrete GPU on/off. It was a pain to use however since you had to log out after switching modes.


The Old Method

With the new MacBook Pro, Apple implements an automated switching system similar to NVIDIA's Optimus technology. Instead of relying on application profiles, OS X looks at the functions called by any running application and determines whether the Intel HD Graphics is sufficient or the GeForce GT 330M is needed. Applications like video playback are low key enough to run exclusively on the Intel HD Graphics, while 3D games and applications that take advantage of GPU acceleration appear to wake up the GT 330M.

Update: Apple has given us a list of frameworks that will trigger the discrete GPU, they primarily include: OpenGL, OpenCL, Quartz Composer, Core Animation and Core Graphics. Also, if you plug in an external display the discrete GPU is also turned on.

Apple has also confirmed that both the discrete and integrated graphics cores have their own connection to the display. There's no copying of frame buffer data, the GPU that's in use is the one that's storing and displaying the screen. If the integrated graphics core isn't in use it is put into its lowest power state.  If the discrete GPU isn't in use it's completely shut off.

Power Consumption Comparison
  Intel HD Graphics Only GeForce GT 330M
Idle at OS X Desktop 11.5W 15.1W

The switching process is seamless and there's no indication of what GPU is being used at any given moment. That's both good and bad. You don't have to muck with any software switches, but you also rely on Apple to make the right decision based on your current workload. Without a way of telling what is making the discrete GPU wake up, there's no way to know whether something as simple as leaving an application open is causing you to have lower-than-ideal battery life.

There's also no way to turn the GeForce GT 330M off completely, regardless of application. This is one area where Apple completely wrestles control away from the end user. I'm all for automated switching systems, just not ones that don't reassure me that they're always making the right decision.

Despite using a NVIDIA GPU, there's no support for Optimus under Windows 7 on the new MacBook Pro. The GeForce GT 330M is always in use there regardless of whether you use an Optimus enabled driver or the 196.21 driver that comes with the MacBook Pro.

No AES-NI Support in OS X? The GeForce GT 330M
Comments Locked

114 Comments

View All Comments

  • michal1980 - Thursday, April 15, 2010 - link

    thats what this place feels like now. I geuss the website redesign was timed to that reflect change.
  • Cardio - Thursday, April 15, 2010 - link

    Apples guarantees "Up To" 1,000 battery recharges is complete idiot speek. 7 recharges would comply with that guarantee. That is just the same as saying "not more than". Apple you always double-talk or just outright lie.
  • solipsism - Thursday, April 15, 2010 - link

    Wow! What an asshat comment. Apple and Sony are the only two PC vendors that I know of that report accurate battery specs.

    "The built-in battery in the new 13-, 15-, and 17-inch MacBook Pro is designed to retain up to 80% of its original capacity at up to 1000 full charge and discharge cycles."

    http://www.apple.com/batteries/notebooks.html

    I just returned a 2.5 year old battery to Apple a couple months ago because it wasn't holding a charge and only a few hundred cycles on it. It wasn't under any warranty and they gave me a new one right then and there for free.
  • omgrtm - Thursday, April 15, 2010 - link

    Also, as a company you have to show proof (based on statistical analysis) for all your advertising claims. Not entirely sure about numbers, but something like 9 in 10 at least should meet the stated (would be 1000 recharges in this case), for you to be able to use 'up to'. You'd be incredibly unlucky to get 7 in reality.
  • sebmel - Thursday, April 15, 2010 - link

    Apple changed my last battery, too... 2.5 years old... it got the Sony problem... swelled up.
    The internal regulations appeared to be change if less than 300 cycles.
    Mine was 320 or so and they changed it anyway.

    Apple seem pretty good at offering a new battery that fails to meet their advertised expectation so I'm guessing they are going to honour these ones up to 1000 cycles.
  • sebmel - Thursday, April 15, 2010 - link

    Error, apologies:

    Apple seem pretty good at offering a new battery WHEN ONE fails to meet their advertised expectation so I'm guessing they are going to honour these ones up to 1000 cycles.
  • tynopik - Thursday, April 15, 2010 - link

    "Less than 20 fps under World of Warcraft at 800 x 600"

    Actually, it's 52.3
  • Anand Lal Shimpi - Thursday, April 15, 2010 - link

    haha, wow, fixed :)

    Take care,
    Anand
  • surgex - Thursday, April 15, 2010 - link

    Can you tell us how this will work, or IF it will work at all?
  • surgex - Thursday, April 15, 2010 - link

    Sorry, I see it now..

    "Despite using a NVIDIA GPU, there's no support for Optimus under Windows 7 on the new MacBook Pro. The GeForce GT 330M is always in use there regardless of whether you use an Optimus enabled driver or the 196.21 driver that comes with the MacBook Pro."

    That is really BS if you ask me, but who would expect anything less from Apple...
    Do you forsee any way of a third-party enabling this functionality in the future though, or no?

Log in

Don't have an account? Sign up now