Question

I'm looking for some introductory examples to OpenCL which illustrate the types of applications that can experience large (e.g., 50x-1000x) increases in speed. Cuda has lots of nice examples, but I haven't found the same thing for OpenCL.

A nice example might be global optimization of complex functions via particle swarms, simulated annealing, evolutionary algorithms, ant colony optimization, etc.

Was it helpful?

Solution

The are some great examples in the SDK from nvidia:

http://developer.nvidia.com/object/get-opencl.html

OTHER TIPS

The algorithms you are describing are neither simple nor introductory from the perspective of GPU programming. The reason CUDA has examples in these areas is that it has been around long enough for people to have developed these examples. There is currently no publicly available version of OpenCL that runs on GPUs. Both ATI and NVIDIA are offering beta versions of their OpenCL drivers, but ATI's supports only CPU computation and NVIDIA's requires signing an NDA to get. Simply put, OpenCL has not been around long enough for comprehensive examples like these to have been developed and demonstrated.

That said, gaining access to NVIDIA's OpenCL drivers is not difficult. You can find out how to do so on their forums here. I assume that the OpenCL distribution contains some sample programs to help you get started.

This also means that it's an excellent opportunity for you to develop some of these benchmarks and post your results. Then people will refer to your work rather than you referring to their work. I wouldn't expect too many surprises though. OpenCL performance should be roughly on par with CUDA performance once it becomes widely available and supported.

Our team has been working on OpenCL algorithms and acceleration and we would like to suggest the article

http://www.cmsoft.com.br/index.php?view=article&catid=1:latest-news&id=247:opencl-simulated-annealing

as a sample implementation of Simulated Annealing algorithm for minimization.

You could try the following two books:

Programming Massively Parallel Processors ... A Hands-on Approach (NVIDIA)(chapter 1 and 2)

The OpenCL Programming Book ... Parallel Programming for MultiCore CPU and GPU (History components

Both go in detail as to explain why the development was made and where the true bonusses can be found.

Not sure about benchmarking though , haven't had any luck there myself either.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top