OpenGL, OpenCL, and Grand Central Dispatch
Apple's support for OpenGL and its introduction of OpenCL as the new standard in GPGPU computing will work together to weaken Microsoft's proprietary push to make DirectX/D3D the primary API supported by GPU hardware developers such as AMD/ATI and NVIDIA.
As other platforms also throw their support exclusively behind OpenGL, from the Wii to the PlayStation 3 to Apple's own considerable iPhone/iPod touch juggernaut in mobile device computing, the market power Microsoft has established in its efforts to kill open GPU standards and substitute them with Windows-only substitutes will continue to fade.
The move toward greater utilization of available GPU resources, along with Snow Leopard's Grand Central Dispatch architecture which helps makes this easy and transparent for developers to deliver, also makes it possible to Apple to innovate in future hardware, adding new acceleration chips of its own design or simply including better support for the existing GPU resources available from today's vendors.
Where the GPU puck was headed
Just as in the move to 64-bits, Microsoft is splintered between trying to accommodate simple, low-power netbooks and the long tail of Windows XP users in its installed base with new, modern systems that actually use the same level of advanced graphics compositing that Apple premiered ten years ago.
According to the monthly hardware data report published by Valve's Steam covering roughly a million PC users, even among members of the gaming community, most of whom have 512MB or more of VRAM and a better GPU than most Mac users and, the majority are still running Windows XP, on operating system which offers no GPU-accelerated user interface. Similarly, only 17% of this high end gamer demographic is running a 64-bit edition of Windows, despite being a population that benefits the most from 64-bit addressing.
Apple not only grasped the power of the GPU in 1999 but applied it in Mac OS X's Quartz Graphics; Microsoft didn't get its own product with advanced, modern graphics compositing to market until Vista in 2007, and then failed to actually sell it to its users. Even among Valve's Steam users, who represent the premium fringe of early adopter, big spending PC buyers, only 36% are now running Vista, nearly three years after its launch.
On the other end, most low-end netbooks running Windows 7 will still be lacking the GPU support Apple managed to get into the iPhone in 2007, because most netbooks use the same architecture as low end generic PCs: an Intel CPU paired with chipset graphics. The iPhone uses an embedded "System on a Chip" which includes an ARM core along with with high performance, dedicated graphics cores that Apple has fully exploited to defer interface-related processing to hardware, much like a video game system.
Apple Bets on GPUs
As a corporate strategy expert from a leading mobile company wrote, "Apple was the first one to have this insight in desktop computing [â¦]. Windows was stuck in the old CPU driven architecture while OSX moved large parts of the code behind UI and rendering to those high power GPUs initially developed for gaming. It took 5 years or so from the mighty Microsoft to hammer its OS to adapt to this new computing paradigm and release Vista.
"And exactly the same happened in mobile devices. Apple's competitors were developing OS architectures initially built for menu driven UI's in the times when CPU was the main processing unit. Effective use of the GPU will play an increasingly large role as devices get more mobile and as users' expectations increase. Apple is ahead of the game both in conventional PCs and in mobile devices, with rivals such as Microsoft and Nokia just recently discovering the importance of focusing on the GPU to deliver the power needed to provide a rich, animated user interface.
"What Apple needed to do was to downscale its OSX a bit and partner with Imagination Technologies to develop a powerful mobile optimized graphics core. Suddenly they could run an UI that required several multiples of processing power the traditional mobile computing platforms were able to deliver. But since iPhone used GPU to crunch the heavy parts of UI code Apple could do it. The rest is history.
"There is a long list of other things Apple did right and assets they had, but without a great 'inertia' in mobile operating systems and this shift in mobile computing platforms they would have not been able to shake the market so greatly."
By sharing technology between its iPhone and Mac platforms, Apple is building upon its lead in fully exploiting the latent power available in the GPU. Snow Leopard specifically delivers a richer, subtly more animated user interface right out of the box and provides powerful toolkits to allow third party developers to wring the most performance from the hardware available.
Daniel Eran Dilger is the author of "Snow Leopard Server (Developer Reference)," a new book from Wiley available now for pre-order at a special price from Amazon.
102 Comments
There's not a lot of meat in this article, compared to the others in the series. I don;t care what Windows did in the past, or what Windows Gamers still use, I want to know about SL, and despite the strapline, this article only talks about openGL, not OCL or GCD.
I wonder how much OpenCL helps in video playback especially on new MBPs with Nvidia 9400 M graphics. Has anyone tested how much one can reduce the CPU usage while watching videos on sites like CNN and Youtube? I am interested in knowing if the Adobe flash player eating of CPU is somehow reduced because of the OpenCL support in SL. Unfortunately I can't do this as my MB is not equipped with Nvidia GPU. If someone has noticed some improvement, please let me know
I look forward to some benchmarks with Snow Leopard optimized software and hardware. Perhaps a chart could show what work was once done by the processor only vs. what's now done by the GPU. Then again the processor will be optimized and peaked out (ideally), so I don't really know how that would look different, besides the GPU's being used.
Until I can see some performance data comparisons I have to be satisfied with just knowing its there I guess.
I also hope that OpenCL support is eventually added to older video cards either by Apple or a third party driver writer. That said, I'd still need to see it do something useful first, and in chart form please.
I wonder how much OpenCL helps in video playback especially on new MBPs with Nvidia 9400 M graphics. Has anyone tested how much one can reduce the CPU usage while watching videos on sites like CNN and Youtube? I am interested in knowing if the Adobe flash player eating of CPU is somehow reduced because of the OpenCL support in SL. Unfortunately I can't do this as my MB is not equipped with Nvidia GPU. If someone has noticed some improvement, please let me know
First of all let me say I don't really care about 9400M's performance. The GPU is weak and I believe Apple puts way too much attention on it. Yes it replaces a GPU that is several folds weaker but still if you want real computing power you would be looking at dedicated GPUs with dedicated high speed VRAM. Anyway here are answers to some of your questions. OpenCL does not make flash any faster since there isn't a single OpenCL instruction in Flash. I would even go so far as to say that GPU acceleration in the Mac version of Flash is only present in the configuration GUI but that's not what Adobe's been saying ... Anyway to me the CPU usage is more than a proof.
With plugins such as ClickToFlash you can however see how much better things can be. I have a 2.4 GHz early 2008 MBP ( 8600gt 256mb ). The flash version of YouTube videos use about 50-60% of one of the cores and that's on a good day. At the same time the h.264 version (using the opengl version of QT ) uses about 15-16%. Not that I feel either one of them ( in any other way than fan noise ) but the lower CPU usage results in longer battery life.
Thanks for your reply. I actually meant any GPU from Nvidia not just 9400M. If I understood correctly you do observe less CPU load with OpenGL version of QT. Btw what OpenGl version of QT? Itried click2flash and it is very good but unfortunately it doesn't work with CNN site. Do you recommend other plugin etc. to reduce the CPU usage while watching flash movies? Yeah flash really sucks the battery life.