Fast Genetic Programming on GPUs

  • Simon Harding
  • Wolfgang Banzhaf
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4445)


As is typical in evolutionary algorithms, fitness evaluation in GP takes the majority of the computational effort. In this paper we demonstrate the use of the Graphics Processing Unit (GPU) to accelerate the evaluation of individuals. We show that for both binary and floating point based data types, it is possible to get speed increases of several hundred times over a typical CPU implementation. This allows for evaluation of many thousands of fitness cases, and hence should enable more ambitious solutions to be evolved using GP.


Genetic programming Graphics Card Acceleration Parallel Evaluation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Lasarczyk, C., Dittrich, P., Banzhaf, W.: Dynamic subset selection based on a fitness case topology. Evolutionary Computation 12, 223–242 (2004)CrossRefGoogle Scholar
  2. 2.
    Gathercole, C., Ross, P.: Dynamic training subset selection for supervised learning in genetic programming. Parallel Problem Solving from Nature III 866, 312–321 (1994)Google Scholar
  3. 3.
    Banzhaf, W., Nordin, P., Keller, R., Francone, F.: Genetic Programming - An Introduction. Morgan Kaufmann, San Francisco (1998)zbMATHGoogle Scholar
  4. 4.
    Nordin, P., Banzhaf, W., Francone, F.: Efficient Evolution of Machine Code for CISC Architectures using Blocks and Homologous Crossover. In: Spector, L., Langdon, W., O’Reilly, U.M., Angeline, P. (eds.) Advances in Genetic Programming III, pp. 275–299. MIT Press, Cambridge (1999)Google Scholar
  5. 5.
    Brameier, M., Banzhaf, W.: Linear Genetic Programming. Springer, New York (2006)Google Scholar
  6. 6.
    Lau, W.S., et al.: Multi-logic-unit processor: A combinational logic circuit evaluation engine for genetic parallel programming. In: Keijzer, M., et al. (eds.) EuroGP 2005. LNCS, vol. 3447, pp. 167–177. Springer, Heidelberg (2005)Google Scholar
  7. 7.
    Thompson, C., Hahn, S., Oskin, M.: Using Modern Graphics Architectures for General-Purpose Computing: A Framework and Analysis. In: Proceedings of the 35th International Symposium on Microarchitecture, Istanbul, pp. 306–317. IEEE Computer Society Press, Washington (2002)Google Scholar
  8. 8.
    Owens, J., Luebke, D., Govindaraju, N., Harris, M., Kruger, J., Lefohn, A., Purcell, T.: A survey of general-purpose computation on graphics hardware. Eurographics 2005, State of the Art Reports, pp. 21–51 (2005)Google Scholar
  9. 9.
    Wang, J.T.T., Wong, P.A.H., Leung, C.S.: Discrete wavelet transform on gpu. In: Proceedings of ACM Workshop on General Purpose Computing on Graphics Processors, C-41 (2004)Google Scholar
  10. 10.
    Galoppo, N., et al.: Lu-gpu: Efficient algorithms for solving dense linear systems on graphics hardware. In: Proceedings of the ACM/IEEE SC 2005 Conference, Supercomputing 2005, p. 3. ACM, New York (2005)CrossRefGoogle Scholar
  11. 11.
    Hagen, T.R., Hjelmervik, J.M., Lie, K.A., Natvig, J.R., Henriksen, M.O.: Visual simulation of shallow-water waves. Simulation Modelling Practice and Theory 13, 716–726 (2005)CrossRefGoogle Scholar
  12. 12.
    Wong, M.L., Wong, T.T., Fok, K.L.: Parallel evolutionary algorithms on graphics processing unit. In: Proceedings of IEEE Congress on Evolutionary Computation 2005, vol. 3. CEC 2005, pp. 2286–2293. IEEE Press, Los Alamitos (2005)CrossRefGoogle Scholar
  13. 13.
    Fok, K.L., Wong, T.T., Wong, M.L.: Evolutionary computing on consumer-level graphics hardware. IEEE Intelligent Systems (to appear, 2005)Google Scholar
  14. 14.
    Yu, Q., Chen, C., Pan, Z.: Parallel Genetic Algorithms on Programmable Graphics Hardware. In: Wang, L., Chen, K., S. Ong, Y. (eds.) ICNC 2005. LNCS, vol. 3612, pp. 1051–1059. Springer, Heidelberg (2005)Google Scholar
  15. 15.
    Ebner, M., Reinhardt, M., Albert, J.: Evolution of vertex and pixel shaders. In: Keijzer, M., Tettamanzi, A.G.B., Collet, P., van Hemert, J.I., Tomassini, M. (eds.) EuroGP 2005. LNCS, vol. 3447, pp. 261–270. Springer, Heidelberg (2005)Google Scholar
  16. 16.
    Wikipedia: Flops — wikipedia, the free encyclopedia (2006), (Online accessed 1-November-2006)
  17. 17.
    RapidMind Inc.: Libsh.
  18. 18.
    LibSh Wiki: Libsh sample code.
  19. 19.
    Stanford University Graphics Lab: Brook.
  20. 20.
    Lejdfors, C., Ohlsson, L.: Implementing an embedded gpu language by combining translation and generation. In: SAC ’06: Proceedings of the ACM symposium on Applied computing, pp. 1610–1614. ACM Press, New York (2006)CrossRefGoogle Scholar
  21. 21.
    Tarditi, D., Puri, S., Oglesby, J.: Msr-tr-2005-184 accelerator: Using data parallelism to program gpus for general-purpose uses. Technical report, Microsoft Research (2006)Google Scholar
  22. 22.
    Miller, J.F., Thomson, P.: Cartesian genetic programming. In: Poli, R., Banzhaf, W., Langdon, W.B., Miller, J., Nordin, P., Fogarty, T.C. (eds.) EuroGP 2000. LNCS, vol. 1802, pp. 121–132. Springer, Heidelberg (2000)Google Scholar
  23. 23.
    Koza, J.: Genetic Programming: On the Programming of Computers by Natural Selection. MIT Press, Cambridge (1992)zbMATHGoogle Scholar
  24. 24.
    Langdon, W.B., Banzhaf, W.: Repeated sequences in linear genetic programming genomes. Complex Systems 15, 285–306 (2005)MathSciNetGoogle Scholar
  25. 25.
    Torresen, J.: Evolving multiplier circuits by training set and training vector partitioning. In: Tyrrell, A.M., Haddow, P.C., Torresen, J. (eds.) ICES 2003. LNCS, vol. 2606, pp. 228–237. Springer, Heidelberg (2003)CrossRefGoogle Scholar

Copyright information

© Springer Berlin Heidelberg 2007

Authors and Affiliations

  • Simon Harding
    • 1
  • Wolfgang Banzhaf
    • 1
  1. 1.Computer Science Department, Memorial University, Newfoundland 

Personalised recommendations