node4 A SIMD Interpreter for Genetic Programming on Graphics Cards
Why Interest in Graphics Cards
- Speed
- Development of graphics cards has been, is and will be driven
by the demand for high performance real time graphics on computer games.
- Similar technology used for both personal computers and dedicated
games consoles
- Two brand leaders nVidia and ATi
- Generation of three dimensional graphics requires the same or
similar operations to be performed on many items
in the players view.
Typically the surface of objects is divided into a mesh of
thousands of triangular planes.
The colour of the object seen by the player
is given both by the objects inherent colour but also the direction
the triangle is facing, direction of incident lighting etc etc.
- GPU architectures are designed to allow many triangles to be
coloured quickly by doing the same operation on many triangles in parallel.
- Typical GPU program acts on one triangle.
Has a few random access data sources.
(Eg generic colour patterns for fragments of walls)
And outputs a signal data output
(Eg colour of wall in shadow).
- For speed GPU uses the SIMD
(single instruction multiple data)
model of parallel computing.
This means a single program is active at a time
but it acts on multiple data.
(Eg it colours multiple triangles).
Data flow architecture allows program to read from many sources but
constrains its output.
In particular GPU does not allow random write access to large arrays.