Stop the Noiz

OpenCL or DirectX, Which Is the Better Technology?

Frank Fox - 2009.09.11 - Tip Jar

I would like to offer an apology to Microsoft and its fans - but I can't yet. I may have overstated my argument against Microsoft regarding the upcoming Windows 7 in one important area: programming support, especially for high-end graphics like games.

Proprietary vs. Open Standards

While Microsoft has avoided open standards like OpenGL for 3D graphics, it has made its own proprietary DirectX a worthy substitute. Microsoft has used its money and position to create DirectX as an alternative to OpenGL and gained the cooperation of the graphic card manufacturers to support it.

Apple has instead chosen to use the open standard OpenGL for Mac OS X. This has required that they sometimes accept improvements at a slower pace. The revisions to an open standard can be slow while everyone discusses what direction to go.

Microsoft can skip these discussions and simply make a decision in favor of the solution it prefers. Then Microsoft uses its monopoly power to get other people to agree. The proprietary choice clearly benefits from rapid decisions to jump ahead while everyone else debates open standards.

Open standards do have the benefit that anyone can use them, and many people can contribute their ideas. OpenGL and the new OpenCL are maintained by the Khronos group. It has members who are heavy-hitters in the computer industry: Apple (of course), as well as Intel, Nvidia, AMD, and Sun Microsystems, just to name a few. These companies have a sizable interest in the open standard being useful on new hardware. They are all big influential companies that don't take a back seat to Microsoft on design or intellectual property.

Also involved with Khronos are companies like Electronic Arts, Activision, Blizzard, 3Dlabs, etc. These companies show that there are plenty of important software developers who have an interest in supporting both the OpenGL and OpenCL standards.


OpenCLOpenCL is key to the hottest new development in speeding up computers, using the graphic card's GPU to boost general compputing performance, not just graphics tasks. Interest in this has been growing for a few years, but early developer tools were difficult or took more work to implement.

Nvidia has worked hard to bring improved support on its brand of GPU. It developed CUDA (Compute Unified Device Architecture) to give familiar programming commands to developers. AMD/ATI did something similar with Stream SDK technology.

The problem with this situation is obvious: How does the operating system choose which method to use? You can either have an open standard to access these differing methods or use proprietary tools to generalize what is taking place.

Apple decided to work with Nvidia, AMD, and Intel to create an open standard to handle multiple processors, on both the GPU and the CPU. This led to the creation of OpenCL (PDF). OpenCL has the potential to be useful on a wide range of processors from GPUs to digital signal processors (DSPs) and other specialty processors. In addition to Mac OS X 10.6 "Snow Leopard", the new iPod touch also uses OpenCL.

Microsoft's Alternative

Microsoft isn't a member of the Khronos group. It has DirectX to serve its needs. Microsoft will include some GPU and multiprocessor tools into DirectX 11. The details on this are sketchy. All that I could find is the use of "Compute Shader" to perform these tasks.

How do DirectX Compute Shaders compare to OpenCL? There is a brief mention in an interview with Neil Trevett, President of the Khronos group. He gives the impression that OpenCL is more high level and maybe a little more flexible than Compute Shaders. "OpenCL is a very robust compute solution rather than compute within the context of the graphics pipeline, which is more the approach that DX 11 Compute Shaders have taken." Compute Shaders maybe more limited in scope of features but run faster.

Not Yet Possible to Compare Performance

The reason my apology is not ready is because actual comparisons between Microsoft's DirectX 11 and Apple's combination of OpenGL and OpenCL are not yet available. All of this technology is incredibly new, and even after OS support is done, it will take time for programs to be written that can take full advantage of their features.

While I can't say that anything from Microsoft will be better, I can say that Microsoft doesn't appear to be trailing Apple here. In fact, since OpenGL and OpenCL are open standards, they will be available for Windows 7, Linux, BSD, or whatever OS chooses to use them. (Whatever your OS, you will also need a graphics card with the special instructions for OpenCL to get full support.)

This becomes a battle not just between Apple and Microsoft, but also between open standards and proprietary technology. I'd like to think that Apple has the best technology, but the best technology doesn't always win.

One thing is certain: Improving the use of multiple processors on the CPU or GPU is important, and everyone is working hard to fill this need. LEM

Join us on Facebook, follow us on Twitter or Google+, or subscribe to our RSS news feed

Today's Links

Recent Content

About LEM Support Usage Privacy Contact

Follow Low End Mac on Twitter
Join Low End Mac on Facebook

Favorite Sites

Cult of Mac
Shrine of Apple
The Mac Observer
Accelerate Your Mac
The Vintage Mac Museum
Deal Brothers
Mac Driver Museum
JAG's House
System 6 Heaven
System 7 Today
the pickle's Low-End Mac FAQ

The iTunes Store
PC Connection Express
Macgo Blu-ray Player
Parallels Desktop for Mac

Low End Mac's store


Open Link