The dGPU: Killing Battery Life

The 15 and 17-inch MacBook Pros have a discrete GPU that only turns on if you fire up an application that really needs it—at least that's how it is supposed to work. In practice, the discrete GPU takes over control if your application uses any one of a number of frameworks—and some of the time, the dGPU simply isn't necessary.

Case in point, launching Chrome won't trigger a dGPU switch but the moment it encounters Flash the discrete GPU will take over. The bad news is that even if you close all Chrome windows, the dGPU won't power down until you quit chrome entirely. The same is true for Photoshop. Launch the application and you're still on the iGPU. Actually open up an image and the dGPU takes over. Even if you close all open images and just leave the Photoshop application open, the dGPU won't relinquish control. FaceTime and anything using the integrated camera also require the dGPU, despite it being totally unnecessary.

If you connect any external display to the 15 or 17-inch MacBook Pro that also forces the dGPU on, at which point both the integrated panel and external display are driven by the dGPU. There is no funny frame buffer copying going on, both the integrated and discrete GPUs have their own connection to the display.

Apple also fails to provide a way of turning off the dGPU by default—the best you can do is shut off the iGPU and just use the dGPU entirely. Thankfully Cody Krieger's gfxCardStatus tool gives us exactly what OS X does not. Version 2.0.1 adds support for the 2011 MacBook Pros.

I'm going on and on about the dGPU because it's state can seriously impact battery life. The numbers below should help put that in perspective for you:

Impact of Discrete GPU on Battery Life
15-inch 2011 MacBook Pro Light Web Browsing Flash Web Browsing
Integrated GPU (Intel HD 3000) 8.85 hours 7.03 hours
Discrete GPU (AMD Radeon HD 6750M) 5.67 hours 2.97 hours

Even just browsing the web, the dGPU being on drops battery life by 35—60%. Under full CPU load I suspect the percentage difference would be smaller, but still significant. The worst part of this all is that without gfxCardStatus you can negatively impact battery life by doing something completely innocent like accidentally leaving an application open. Given how much OS X is tailored to simply closing windows when you're done with them and not quitting applications, an overly aggressive dGPU can really be an issue.

Thankfully we do have gfxCardStatus but there's honestly no reason Apple shouldn't include this functionality with OS X from the start.

The GPU Comparison Display Quality
Comments Locked

198 Comments

View All Comments

  • IntelUser2000 - Friday, March 11, 2011 - link

    You don't know that, testing multiple systems over the years should have shown performance differences between manufacturers with identical hardware is minimal(<5%). Meaning its not Apple's fault. GPU bound doesn't mean rest of the systems woud have zero effect.

    It's not like the 2820QM is 50% faster, its 20-30% faster. The total of which could have been derived from:

    1. Quad core vs. Dual core
    2. HD3000 in the 2820QM has max clock of 1.3GHz, vs. 1.2GHz in the 2410M
    3. Clock speed of the 2820QM is quite higher in gaming scenarios
    4. LLC is shared between CPU and Graphics. 2410M has less than half the LLC of 2820QM
    5. Even at 20 fps, CPU has some impact, we're not talking 3-5 fps here

    It's quite reasonable to assume, in 3DMark03 and 05, which are explicitely single threaded, benefits from everything except #1, and frames should be high enough for CPU to affect it. Games with bigger gaps, quad core would explain to the difference, even as little as 5%.
  • JarredWalton - Friday, March 11, 2011 - link

    I should have another dual-core SNB setup shortly, with HD 3000, so we'll be able to see how that does.

    Anyway, we're not really focusing on 3DMarks, because they're not games. Looking just at the games, there's a larger than expected gap in the performance. Remember: we've been largely GPU limited with something like the GeForce G 310M using Core i3-330UM ULV vs. Core i3-370. That's a doubling of clock speed on the CPU, and the result was: http://www.anandtech.com/bench/Product/236?vs=244 That's a 2 to 14% difference, with the exception of the heavily CPU dependent StarCraft II (which is 155% faster with the U35Jc).

    Or if you want a significantly faster GPU comparison (i.e. so the onus is on the CPU), look at the Alienware M11x R2 vs. the ASUS N82JV: http://www.anandtech.com/bench/Product/246?vs=257 Again, much faster GPU than the HD 3000 and we're only seeing 10 to 25% difference in performance for low detail gaming. At medium detail, the difference between the two platforms drops to just 0 to 15% (but it grows to 28% in BFBC2 for some reason).

    Compare that spread to the 15 to 33% difference between the i5-2415M and the i7-2820QM at low detail, and perhaps even more telling is the difference remains large at medium settings (16.7 to 44% for the i7-2820QM, except SC2 turns the tables and leads by 37%). The theoretical clock speed difference on the IGP is only 8.3%, and we're seeing two to four times that much -- the average is around 22% faster, give or take. StarCraft II is a prime example of the funkiness we're talking about: the 2820QM is 31% faster at low, but the 2415M is 37% faster at medium? That's not right....

    Whatever is going on, I can say this much: it's not just about the CPU performance potential. I'll wager than when I test the dual-core SNB Windows notebook (an ASUS model) that scores in gaming will be a lot closer than what the MBP13 managed. We'll see....
  • IntelUser2000 - Saturday, March 19, 2011 - link

    I forgot one more thing. The quad core Sandy Bridge mobile chips support DDR3-1600 and dual core ones only up to DDR3-1333.
  • mczak - Thursday, March 10, 2011 - link

    memory bus width of HD6490M and H6750M is listed as 128bit/256bit. That's quite wrong, should be 64bit/128bit.

    btw I'm wondering what's the impact on battery life for the HD6490M? It isn't THAT much faster than the HD3000, so I'm wondering if at least the power consumption isn't that much higher neither...
  • Anand Lal Shimpi - Thursday, March 10, 2011 - link

    Thanks for the correction :)

    Take care,
    Anand
  • gstrickler - Thursday, March 10, 2011 - link

    Anand, I would like to see heat and maximum power consumption of the 15" with the dGPU disabled using gfxCardStatus. For those of us who aren't gamers and don't need OpenCL, the dGPU is basically just a waste of power (and therefore, battery life) and a waste of money. Those should be fairly quick tests.
  • Nickel020 - Thursday, March 10, 2011 - link

    The 2010 Macbooks with the Nvidia GPUs and Optimus switch to the iGPU again even if you don't close the application, right? Is this a general ATI issue that's also like this on Windows notebooks or is it only like this on OS X? This seems like quite an unnecessary hassle, actually having to manage it yourself. Not as bad as having to log off like on my late 2008 Macbook Pro, but still inconvenient.
  • tipoo - Thursday, March 10, 2011 - link

    Huh? You don't have to manage it yourself.
  • Nickel020 - Friday, March 11, 2011 - link

    Well if you don't want to use the dGPU when it's not necessary you kind of have to manage it yourself. If I don't want to have the dGPU power up while web browsing and make the Macbook hotter I have to manually switch to the iGPU with gfxCardStatus. I mean I can leave it set to iGPU, but then I will still manually have to switch to the dGPU when I need the dGPU. So I will have to manage it manually.

    I would really have liked to see more of a comparison with how the GPU switching works in the 2010 Macbook Pros. I mean I can look it up, but I can find most of the info in the review somewhere else too; the point of the review is kind of to have it all the info in one place, and not having to look stuff up.
  • tajmahal42 - Friday, March 11, 2011 - link

    I think switching behaviour should be exactly the same for the 2010 and 2011 MacBook Pros, as the switching is done by the Mac OS, not by the Hardware.

    Apparently, Chrome doesn't properly close done Flash when it doesn't need it anymore or something, so the OS thinks it should still be using the dGPU.

Log in

Don't have an account? Sign up now