Please, does anybody know that why I can see mostly Genetic Programming on GPU implementations programmed with CUDA (for example all 4 GECCO 2010 entries were CUDA based - link here ) and not OpenCL?I mean I know the difference between OpenCL and CUDA programming, but can not see the reason that why there are not more GPU-OpenCL implementations. thanks-miro
This can be one reason which I got from Pierre Collet: Our experience is that CUDA allows to finely program the GPU. OpenCL ishigher level and therefore gives you less control on programming thecard.
My friends at Apple recommend OpenCL. I think I discussed this in a Biota podcast towards the end of last year. In general I think it's probably smarter to start to atomize the processing elements for the new group of vastly multicore CPUs but there is some interesting optimization that can be used on GPUs too.
Within the Established Projects here at freshsim, some of those simulations were written (shockingly) in Java. Worse, one of them is written in actionscript for Flash! In my opinion, every one of the simulations in Established Projects needs to be converted to C++ and then optimized with CUDA C to run on modern GPUs. I don't see a use for OpenCL. In response to Pierre Collet's statement above: There are two ways to program CUDA. One is called the Driver API and the other called the Runtime API. The Driver API looks very different and it really does allow one to finely program a GPU. The Runtime API is easy to spot, as it contains the triple bracket syntax for kernel invocation, eg. kernelfunc<<<blocks, threads>>>( argA, argB );
Some of us have maintained our projects in C precisely so we could take advantage such things.
It looks like you're new here. If you want to get involved, click one of these buttons!
Apply for Membership