Deployment of parallel linear genetic programming using GPUs on PC and video game console platforms

We present a general method for deploying parallel linear genetic programming (LGP) to the PC and Xbox 360 video game console by using a publicly available common framework for the devices called XNA (for “XNA’s Not Acronymed”). By constructing the LGP within this framework, we effectively produce an LGP “game” for PC and XBox 360 that displays results as they evolve. We use the GPU of each device to parallelize fitness evaluation and the mutation operator of the LGP algorithm, thus providing a general LGP implementation suitable for parallel computation on heterogeneous devices. While parallel GP implementations on PCs are now common, both the implementation of GP on a video game console using GPU and the construction of a GP around a framework for heterogeneous devices are novel contributions. The objective of this work is to describe how to implement the parallel execution of LGP in order to use the underlying hardware (especially GPU) on the different platforms while still maintaining loyalty to the general methodology of the LGP algorithm built for the common framework. We discuss the implementation of texture-based data structures and the sequential and parallel algorithms built for their use on both CPU and GPU. Following the description of the general algorithm, the particular tailoring of the implementations for each hardware platform is described. Sequential (CPU) and parallel (GPU-based) algorithm performance is compared on both PC and video game platforms using the metrics of GP operations per second, actual time elapsed, speedup of parallel over sequential implementation, and percentage of execution time used by the GPU versus CPU.

[1]  Nick Baker,et al.  Xbox 360 System Architecture , 2006, IEEE Micro.

[2]  Darren M. Chitty,et al.  A data parallel approach to genetic programming using programmable graphics hardware , 2007, GECCO '07.

[3]  Peter Nordin,et al.  Complexity Compression and Evolution , 1995, ICGA.

[4]  Tien-Tsin Wong,et al.  Evolutionary Computing on Consumer Graphics Hardware , 2007, IEEE Intelligent Systems.

[5]  Wolfgang Banzhaf,et al.  Accelerating Genetic Programming through Graphics Processing Units. , 2009 .

[6]  Wolfgang Banzhaf,et al.  Linear genetic programming GPGPU on Microsoft’s Xbox 360 , 2008, 2008 IEEE Congress on Evolutionary Computation (IEEE World Congress on Computational Intelligence).

[7]  Simon Scarle Implications of the Turing completeness of reaction-diffusion models, informed by GPGPU simulations on an XBox 360: Cardiac arrhythmias, re-entry and the Halting problem , 2009, Comput. Biol. Chem..

[8]  Krister Wolff,et al.  Evolving 3D model interpretation of images using graphics hardware , 2002, Proceedings of the 2002 Congress on Evolutionary Computation. CEC'02 (Cat. No.02TH8600).

[9]  Matt Pharr,et al.  Gpu gems 2: programming techniques for high-performance graphics and general-purpose computation , 2005 .

[10]  Marc Ebner,et al.  Evolution of Vertex and Pixel Shaders , 2005, EuroGP.

[11]  Peter Nordin,et al.  Genetic programming - An Introduction: On the Automatic Evolution of Computer Programs and Its Applications , 1998 .

[12]  Peter Nordin,et al.  Evolutionary program induction of binary machine code and its applications , 1997 .

[13]  David Tarditi,et al.  Accelerator: using data parallelism to program GPUs for general-purpose uses , 2006, ASPLOS XII.

[14]  Wolfgang Banzhaf,et al.  Genetic Programming: An Introduction , 1997 .

[15]  Una-May O'Reilly,et al.  Genetic Programming II: Automatic Discovery of Reusable Programs. , 1994, Artificial Life.

[16]  Wolfgang Banzhaf,et al.  Deployment of CPU and GPU-based genetic programming on heterogeneous devices , 2009, GECCO '09.

[17]  Tien-Tsin Wong,et al.  Parallel evolutionary algorithms on graphics processing unit , 2005, 2005 IEEE Congress on Evolutionary Computation.

[18]  Zhigeng Pan,et al.  Parallel Genetic Algorithms on Programmable Graphics Hardware , 2005, ICNC.

[19]  Wolfgang Banzhaf,et al.  Fast Genetic Programming on GPUs , 2007, EuroGP.

[20]  David S. Ebert,et al.  Texturing and Modeling: A Procedural Approach , 1994 .

[21]  William B. Langdon,et al.  A SIMD Interpreter for Genetic Programming on GPU Graphics Cards , 2007, EuroGP.

[22]  Nichael Lynn Cramer,et al.  A Representation for the Adaptive Generation of Simple Sequential Programs , 1985, ICGA.

[23]  Mark J. Harris Mapping computational concepts to GPUs , 2005, SIGGRAPH Courses.