Wednesday, April 14, 2010

Inside Apple's automatic graphics switching

Apple touts the automatic graphics switching in its new 15" and 17" MacBook Pros as a "breakthrough technology from Apple." Some readers scoffed at the description earlier today, assuming (as we originally did) that Apple was using NVIDIA's Optimus technology. We discussed the graphics switching technology at length with Apple this afternoon, and though Apple's implementation is similar in concept, it differs in a few key areas from Optimus.

The main goal of Apple's automatic graphics switching is to balance graphics performance with long battery life. Intel's latest stable of mobile processors—Core i3, i5, and i7—all include integrated graphics in the same package as the CPU. Dubbed Intel HD, this integrated graphics processor is designed primarily for efficiency. While its performance is far better than the previous GMA950, for instance, it still wouldn't be classified as good for "performance" graphics in any sense of the term in common usage.

In previous MacBook Pros, Apple attempted to achieve this goal by including a discrete GPU along with the integrated graphics from NVIDIA's 9400M chipset. Users could switch from one to the other manually via System Preferences, which required user intervention as well as the annoyance of logging out and logging back in. So, you could have either performance or better battery life, as long as you were willing to interrupt your workflow.

Other vendors offer their own solutions to the problem. Some use a hardware switch, which still requires user intervention and causes a short (though less annoying than logout/login) interruption in workflow. AMD/ATI uses a method that detects when a laptop is plugged into an outlet, and activates the discrete GPU; when on battery power, it uses integrated graphics. This makes switching automatic, but forces a user to rely on integrated graphics when using the battery—a problem if you need to, say, run Final Cut Pro while away from an outlet.

NVIDIA's Optimus is another solution to this problem. It uses a combination of hardware and software to enable automatic switching between integrated graphics and a discrete GPU. To implement this, Optimus relies on a list which tells the system which apps need a discrete GPU and which apps can work fine with integrated graphics. NVIDIA manages a master list, which Optimus can download from the cloud, or the user can use a control panel to override this list.

Aside from the optional user intervention, Optimus does have some downsides. It works by keeping the integrated graphics powered up and running at all times. When Optimus activates the discrete GPU, it starts writing frames directly to the frame buffer used by the integrated graphics, which resides in RAM. This means that when high performance is called for, two GPUs are running at the same time (though only the discrete GPU is writing to the frame buffer), and it also causes a lot of extra traffic on the bus.

MacBook Pro

Apple's approach in the new 15" and 17" MacBook Pros differs from Optimus in two key ways. The first is that the switching is all handled automatically by Mac OS X without any user intervention (though there is actually a System Preference to deactivate it, if you choose). Apps that use advanced graphics frameworks such as OpenGL, Core Graphics, Quartz Composer or others will cause the OS to trigger the discrete GPU. So, when you are reading or writing Mail, or editing an Excel spreadsheet, Mac OS X will simply use the integrated Intel HD graphics. If you fire up Aperture or Photoshop, Mac OS X kicks on the NVIDIA GeForce GT 330M.

The second way that it differs from Optimus is that the integrated graphics are powered down when the discrete GPU is active. This saves even more power than Optimus does, leading to a stated battery life as long as nine hours.

Apple credits its solution to the company's attention to detail when it comes to user interaction (though its original solution with its login/logout missed this mark), and because Apple is unique among PC vendors in that it controls both the hardware and software. That level of integration is much more difficult when multiple vendors control different parts of the system.

No comments:

Post a Comment