A recent post by Eric Berdahl, senior engineering manager at Adobe sheds light on some of the reasons why the company is involved in the OpenCL working group and how their experience with similar industry-standard APIs (OpenGL) and their exploitation of parallel processing across products such as Pixel Bender and Halide have driven their views.
Eric is Adobe’s voice and vote in the OpenCL working group and notes that “OpenCL, like its graphics cousin, OpenGL, is fundamentally implemented by hardware vendors, the OpenCL working group primarily consists of hardware companies. Consequently, I am often asked why Adobe is actively involved in creating an open standard for computing hardware. The answer is deceptively simple: a good, open standard for parallel computing helps us deliver better software, and merely hoping that OpenCL will be that standard without our input is wishful thinking.”
Commenting on Portability
“… we would also like to see OpenCL available across a wider variety of platforms and devices, for essentially the same reasons discussed in the main article. That is, we want to be able to easily write great software that runs well on the widest variety of devices. That goal is much easier to achieve when an open standard is implemented on the widest variety of devices. Like you, we hope that Adobe’s presence in the OpenCL community and influence with OpenCL vendors will lead to wider deployment.”
Commenting on C++ AMP:
“With respect to your question about C++ AMP, I, personally, find it an interesting model for parallel programming that is more expressive than many of the lower-level APIs available on various platforms. Unfortunately, C++ AMP suffers from the fatal problem, common to many of the higher-level parallel programming paradigms, that it is essentially available from a single vendor. This narrow deployment makes C++ AMP and other single-vendor solutions relatively expensive for ISVs in general (and Adobe in particular) to leverage within our products. By comparison, an open, high level, highly expressive parallel programming system with broad vendor support would be very interesting.”
Read the Full Article on Adobe’s Blog Site