Made GPU code respect the new interface.
Made GPU code respect the new interface.

* I've updated the GPU part of gol_data.c respect the new interface.
  We keep things *in-house* and avoid a lot of copies (one per iteration)
  from the CPU to the GPU and back again. Only two copies are done this
  time (one at the begining and one at the end).

* The runtime has dropped by 4 seconds to approx. 5s. Still slower than the
  CPU code but at least it's an improvement.

* I couldn't perform all computations on the GPU. We still have to pass
  control each iteration on the CPU (that is, call the GPU to evolve the data
  already on the GPU, and wait for the evolve to finish. Then call it again
  for the next generation etc.). Apparently, there is no grid valid synchronization,
  only at the block level, therefore I got weird results as we evolved one
  16x16 region of the gol pattern by "iters" iterations, before any other region
  got a chanche to execute. Bad stuff ...

horia141/game-of-life