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

  • MySchizoBuddy - Wednesday, April 14, 2010 - link

    sorry i was looking at the 620UM. someone needs more clearer names
  • Affectionate-Bed-980 - Wednesday, April 14, 2010 - link

    seriously? Didn't the 15" get the 9600GT in the two higher level ones?

    The 9400M was a 13" MBP model and also for the base 15". But clearly the 330M GT is designed to replace the 9600M GT not the 9400M. The 320M GT now in the 13" MBPs is designed to replace the 9400M. The base 15" MBP got an upgrade this year from 9400M to 330M GT, but it's clearly two different classes.

    I would've preferred if you benched the 330M GT against the 9600M GT which was an upgrade to the old 8600M GT that I have from an early 2008 MBP. The 9400M is just the wrong card to bench against.
  • Affectionate-Bed-980 - Wednesday, April 14, 2010 - link

    so yes, it's obvious the 330 will be faster than the 9400, but how much faster than the 9600? I think that's the most crucial question.

    The 320 should've been pitted against the 9400 and 330 against 9600.
  • Anand Lal Shimpi - Wednesday, April 14, 2010 - link

    I agree, I just don't have any of the MBPs with the 9600M around the lab anymore :)

    Take care,
    Anand
  • Affectionate-Bed-980 - Thursday, April 15, 2010 - link

    aww how unfortunate. I just figured that since you put the 2.53 ghz MBP in comparison that it would be the 9600M one. Oh well. I'm glad you at least included my 2008 MBP in the benches (way to make me feel like I need to upgrade :D )

    Great review
  • Anand Lal Shimpi - Thursday, April 15, 2010 - link

    I always try to have at least n-2 generations of MacBook Pro hardware laying around for comparisons like this :)

    Take care,
    Anand
  • youguy - Wednesday, April 14, 2010 - link

    With SSDs offered as an option, why aren't we seeing TRIM support in Snow Leopard?
  • Griswold - Thursday, April 15, 2010 - link

    Ask steve@apple.com

    Should he respond, it might be something along the line of "We dont believe people want to trim anything". Or that SSDs "are a mess".

    Good luck.
  • ggathagan - Thursday, April 15, 2010 - link

    Battery life would be my guess.
    To a lesser extent, I suppose a 5400rpm drive also generates less heat than a 7200, but I don't know if the difference would be significant.
  • Brian Klug - Thursday, April 15, 2010 - link

    You know, that used to be my thought as well, and I was totally concerned back when the first notebook form factor 7200 RPM drives swung around, but there's no truth to those assumptions anymore. In fact, back then I found that the newer 7kRPM drive actually gave me *better* battery life and reported cooler temps through SMART. Not sure how, but that's just how it worked out. Obviously there are going to be small differences, but there's also that HUGI (hurry up and get idle) consideration to be made here the same way intel rationalizes turbo mode on a notebook; get the task done fast, then go into a low power state. It ends up being a net energy savings.

    But it's obvious that heat/battery aren't the real reasons; the 7K RPM drives are still options, just not default. $50 isn't that much for a "pro" notebook is my point.

    At the same point, a platter drive is a platter drive; the performance gains aren't going to be anywhere near what you'll see with an SSD, so perhaps it makes more sense to just forget about upgrading the HDD and save the $50 for your SSD. There are arguments for both I suppose.

    -Brian

Log in

Don't have an account? Sign up now