Deap and GPU

1,464 views
Skip to first unread message

Kevin N

unread,
Aug 11, 2016, 6:52:13 AM8/11/16
to deap-users
Hello,

Just wondering if there is any plan to port some algos of deapninto GPU framework,
using like Theano ?

Thanks
Brook

Marc-André Gardner

unread,
Aug 11, 2016, 2:14:34 PM8/11/16
to deap-users
Hi Kevin,

This is indeed a very hot topic right now, and to be honest we did (and are currently doing) some experiments in this regard. However, evolutionary algorithms in general do not translate well into a GPU implementation. Since they can often change their own structure (like in GP), using Theano to evaluate them adds prohibitive startup time (Tensorflow is better on this aspect, because it does not need to actually compile the graph prior its execution, but still slow). For most algorithms, using a GPU was shown to be actually less effective, unless some very specific cases (huge datasets for instance).

We do not see that it'll never happen, but it probably not in the near future, unless you have a great idea that can really harness the power of a GPU.

Thanks for your interest in DEAP,

Marc-André

Kevin N

unread,
Aug 22, 2016, 4:19:38 AM8/22/16
to deap-users
Hello Marc Andre,

Thank you for your answer, it makes sense.
Compile time.
New Pascal GPU has unified memory, so within 1-2 years, unified GPU/CPU memory will allow better switch between GPU/CPU.

Also, what would  you think porting some parts of DEAP in cython the accelerate the loop ?

Thanks, regards
Kevin

Mk

unread,
Aug 22, 2016, 4:40:39 AM8/22/16
to deap-users
from my real use of deap - speeding deap loop would bring couple of seconds on 6 hours run. Most of the time is spent in fitness function.
How you structure your own fitness calculations is very project specific and you are free to use any technology suits you.

Mark Lefebvre

unread,
Sep 11, 2016, 12:17:54 AM9/11/16
to deap-users
There has been some work on doing just this:
http://www.gpgpgpu.com/gecco2009/7.pdf

http://stc.fs.cvut.cz/history/2013/sbornik/papers/pdf/2618.pdf?_=1364076052

Seems like you'd have to implement at least some of the DEAP framework as CUDA code and synchronize with the CPU.
You can leave the data set intact and just change the algorithm (possibly according to the CPU, rather than implementing things like mutation in CUDA) which may work well.  This would certainly speed up my symbolic regression quite a bit in theory.
Reply all
Reply to author
Forward
0 new messages