My guess is your answer isn’t: “another proprietary standard!” OK, I agree ― but please bear with me.
I remember the days of SNA. It ruled, it worked, it offered a huge jump forward and it got killed by the Internet, or more exactly TCP/IP. I remember the debate at IBM about the difference between “open”, “proprietary” and “de facto” standards. It seemed to make a big difference (at the time).
In those days, hardware or software specifications that were controlled by one company were what today we call “proprietary” standards. When a proprietary standard becomes widely used, it generally becomes a “de facto” standard even though it is not governed by a standards organization. “Open” standards, on the other hand, are typically developed by a standards organization or a consortium and are (with thanks to techweb), “available to the public for developing compliant products, open standards imply ‘open systems’; that an existing component in a system can be replaced with that of another vendor.”
So, to the point of this blog: graphics and Stream computing standards. There are many, but I’d like to compare one that is widely considered de facto, one that is currently proprietary but would like to become de facto, and one that is open.
Let us start with DirectX
Among other things DirectX is a Microsoft technology that gives the game player or video watcher accelerated graphics, video and sound performance within Windows. Today we are at DirectX 10.1 and heading to DirectX 11 later this year. DirectX and the similarly widely adopted Khronos Group’s OpenGL have generally replaced proprietary standards like Glide from the former 3dfx.
While you could argue that DirectX too started as a proprietary standard, mass adoption has made it a de facto industry standard – like it or not.
There is a need in the PC world for a programming model that allows both the CPU and the GPU to work together to excite applications. At AMD we call this Stream or Accelerated Computing. NVIDIA’s focus is on its proprietary standard CUDA, which competes with OpenCL ― which is the open standards-based approach, again governed by the Khronos group.
Recently at GDC, we demonstrated an OpenCL version of the Havok engine. And we expect to see more companies embracing OpenCL over time.
In the area of physics simulation, which is an example of Stream computing, NVIDIA links CUDA with its proprietary physics engine, PhysX, while AMD has chosen a different path in favor of open standards. OpenCL, which could also be described as a language and a set of APIs, ushers in a new era of computing by allowing applications to call on CPUs and GPUs in unified manner, resulting in the right processor accelerating the workload. And unlike the proprietary PhysX, OpenCL also allows many companies to develop and offer physics engines and other plug-ins of their own.
In an industry that loves a war, the new one to take note of may be between CUDA with PhysX against OpenCL and an army of numerous engines & plug-ins from independent companies.
In the end, the industry almost always comes to agreement on standards. In the PC industry we are currently driven by “de facto” standards, which generally come into use faster but can limit choice for users. When we all agree on “open” standards, on the other hand, we differentiate on a level playing field.
And history suggests that is really good for consumers.
The CUDA and OpenCL battle will be fought over the next few years, with applications and ― I suspect ― users as the battleground. In an ideal world we could all save time and money by agreeing on one or the other. Given that we believe in open standards, we vote for OpenCL.
Which do you vote for?
Nigel Dessau is senior vice president and chief marketing officer at AMD. His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such links sites and no endorsement is implied.


(14 votes, average: 4.07 out of 5)
(4.69 out of 5)
#1 by Nate Supplee - April 20th, 2009 at 11:02
OpenCL all the way.
#2 by Cliff Forster - April 20th, 2009 at 11:08
Nigel,
If I could have a full on 100% open gaming API so I could buy a disk, and implement it on whatever OS is compatible with that API, I doubt I would ever boot Windows in favor of Ubuntu. That being said, we both know who is going to do whatever they can to throw a monkey wrench in the move to open standards.
#3 by wpeltola - April 20th, 2009 at 22:48
Agreed. Along with a monkey wrench, a whole slew of updates and patches to make life just that much more interesting ^_^
#4 by Daniel R. - May 21st, 2009 at 20:08
I agree with Cliff, if there was a 100% open application and gaming API with broad application support then I would not run a Windows platform.
#5 by Matt Winfield - April 20th, 2009 at 12:01
I am all for open standards just like I prefer open source.
#6 by wpeltola - April 20th, 2009 at 22:50
My vote would go for OpenCL as well! Great post.
#7 by Surya Adi Nugraha S - April 21st, 2009 at 03:29
NVIDIA support OpenCL too. Look at http://www.nvidia.com/object/io_1240224603372.html. They claimed to be the first company that release an OpenCL driver to developers. I am using AMD Desktop and Notebook CPU paired with Nvidia core logic. I hope nvidia still exist to develop chipset for AMD CPU include future socket.
#8 by DMytty - April 22nd, 2009 at 22:08
All well and good to talk smack about OpenCL. If only AMD were so open as the blog implies.
OpenCL to date has only resulted in closed mouths. To wit, what’s up with ATI doing ‘limited’ OpenCL SDK releases to ’select’ developers? Furthermore, what’s with the relative silence on OpenCL? The AMD Open CL page is like a parked website in it’s vagueness. To date, there’s exactly 1 FFT code example on the web…great way to get people learning huh?
If you believe in open standards, why not be open about your own development to support that standard? The sooner you get programmers/reporters following AMD’s OpenCL progress, the sooner AMD can show off the power of the GPU.
IMO, OpenCL is AMD’s best chance to gain a platform advantage over Intel. Conesus with a 40nm gpu supporting OpenCL could even be irresistible to Apple for a Snow Leopard Macbook Air – wouldn’t that be something to crow about to Wall Street.
Oh, and while you’re at it…how about some commentary on how OpenCL might tie into virtualization?
Hope you don’t mind an aggressive line of questioning.