OpenCL or RenderScript?

posted Jul 29, 2011 5:27 PM by Manu Pillai   [ updated Aug 5, 2011 7:15 PM ]
Long ago, NVidia essentially took the bull by the horns, and developed a programming model for their GPUs. They called this CUDA. Its been successful and has delivered results - but the GPU part works only with NVidia. That made sense at the time - NVidia was standing alone in this industry, and no one had their back. They did what they needed to, and did it well. 

Intel continued to support Parallel Studio on Windows and Linux on a CPU-focused strategy, which made sense because their GPU plans weren't going anywhere against NVidia or AMD-ATI. And NVidia continued to do their thing. 

OpenCL came about through Apple; they put in the work, got things going, and handed OpenCL to the Khronos Group for open standards stewardship a few years ago.  This makes sense - Khronos also handles OpenGL and the system works. With Apple's leadership, Intel, NVidia and AMD all came to support OpenCL. There is a ton of activity in OpenCL, especially in the server applications space. OpenCL drivers work on Linux, MacOS and Windows. It's here now.The functional portability of this standard make it appealing to software developers and system houses, as does its programming model. 

RenderScript is from Google, or from !Apple and !Microsoft if you want to think that way. But, due to being the default parallel programming support system on Android, it's getting a lot of attention. As of writing, the approach for GPU support on RenderScript is not yet publicly clear.

The net of all is confusion - while the server-class guys can move with confidence to OpenCL - the multicore market on mobile devices is in a bind. Not many people can do both from ground up, so the logical path would seem to be provide OpenCL support now, and then support RenderScript with small modifications. (This is feasible since both leverage the C99 language model, enabling translators to be built.) Doing this also ensures that a chip supplier could still approach Apple or Windows licensees for business on various mobile platforms, while also having a clear plan for RenderScript support. 

TechRev, through it's partnership with MulticoreWare Inc, can support a CUDA, OpenMP, P-Thread, OpenCL or RenderScript based approach to parallel programming in multicore systems - including CPU-GPU models as well. 

If this is of interest to you, please contact us at info@techrevllc.com