Due to an error in the mail-configuration e-mails sent between 27-1 and 14-2 may not have arrived. If you did not get a reply, please resend your request or question. Sorry for this inconvenience.

What is OpenCL?

OpenCL (trademark of Apple Computers Inc.) is an industry standard that makes much faster computations possible. By using graphics cards and extensions of modern processors you can for instance convert a video in 20 minutes instead of 2 hours.

Programming the GPU was a very, very difficult task done by specialised teams and universities, but is now in reach of more companies. StreamComputing was one of the first who jumped in to help companies implement OpenCL in their software.

Below is a video which explains the differences between single-core, multiple core (starting at 1:27) and OpenCL (starting at 2:32).

You can read more about the engineering ins and outs of the standard at http://www.khronos.org/opencl/.

5 questions on OpenCL


Q: Why is it so fast?
A: Because a lot of extra hands make less work, the hundreds of little processors on a graphics card being the extra hands. But cooperation with the main processor keeps being important to achieve maximum output.


Q: Does it work on any type of hardware?

A: As it is an open standard, it can work on any type of hardware that targets parallel execution. This can be a CPU, GPU, DSP or FPGA.


Q: How does it compare to OpenMP/MPI?

A: Where OpenMP and MPI try to split loops over threads/servers and is CPU-oriented, OpenCL focuses on getting threads being data-position aware and making use of processor-capabilities. There are several efforts to combine the two worlds.


Q: Does it replace C or C++?

A: No, it is an extension which integrates well with C, C++, Python, Java and more.


Q: How stable is OpenCL?

A: Currently we have reached version 1.2 and is 3 years old. OpenCL has many predecessors and therefore quite older than 3 years.


Q: What does StreamComputing do?

A: In short: we make optimised OpenCL-versions of your algorithms.