Skip to main content
Log in

Improving the performance of GPU-based genetic programming through exploitation of on-chip memory

  • Methodologies and Application
  • Published:
Soft Computing Aims and scope Submit manuscript

Abstract

Genetic Programming (GP) (Koza, Genetic programming, MIT Press, Cambridge, 1992) is well-known as a computationally intensive technique. Subsequently, faster parallel versions have been implemented that harness the highly parallel hardware provided by graphics cards enabling significant gains in the performance of GP to be achieved. However, extracting the maximum performance from a graphics card for the purposes of GP is difficult. A key reason for this is that in addition to the processor resources, the fast on-chip memory of graphics cards needs to be fully exploited. Techniques will be presented that will improve the performance of a graphics card implementation of tree-based GP by better exploiting this faster memory. It will be demonstrated that both L1 cache and shared memory need to be considered for extracting the maximum performance. Better GP program representation and use of the register file is also explored to further boost performance. Using an NVidia Kepler 670GTX GPU, a maximum performance of 36 billion Genetic Programming Operations per Second is demonstrated.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15

Similar content being viewed by others

References

  • Al-Madi N, Ludwig S (2013) Scaling genetic programming for data classification using mapreduce methodology. In: 2013 World Congress on nature and biologically inspired computing (NaBIC), pp 132–139

  • Andre D, Koza JR (1996) Parallel genetic programming: a scalable implementation using the transputer network architecture. MIT Press, Cambridge

    Google Scholar 

  • Augusto DA, Barbosa HJC (2013) Accelerated parallel genetic programming tree evaluation with OpenCL. J Parallel Distrib Comput 73(1):86–100

    Article  Google Scholar 

  • Brameier M, Banzhaf W (2001) A comparison of linear genetic programming and neural networks in medical data mining. IEEE Trans Evol Comput 5(1):17–26

    Article  Google Scholar 

  • Cano A, Luna J, Ventura S (2013) High performance evaluation of evolutionary-mined association rules on GPUs. J Supercomput 66(3):1438–1461

    Article  Google Scholar 

  • Cano A, Ventura S (2014) Gpu-parallel subtree interpreter for genetic programming. In: Proceedings of the 2014 conference on genetic and evolutionary computation, GECCO ’14. ACM, New York , pp 887–894

  • Cano A, Zafra A, Ventura S (2012) Speeding up the evaluation phase of GP classification algorithms on GPUs. Soft Comput 16(2):187–202

    Article  Google Scholar 

  • Chitty D (2012) Fast parallel genetic programming: multi-core CPU versus many-core GPU. Soft Comput 16(10):1795–1814

    Article  Google Scholar 

  • Chitty DM (2007) A data parallel approach to genetic programming using programmable graphics hardware. In: Proceedings of the 9th annual conference on genetic and evolutionary computation, GECCO ’07, pp 1566–1573

  • Chong FS, Langdon WB (1999) Java based distributed genetic programming on the internet. In: Banzhaf W, Daida J, Eiben AE, Garzon MH, Honavar V, Jakiela M, Smith RE (eds) Proceedings of the genetic and evolutionary computation conference, vol 2. Morgan Kaufmann, Orlando, p 1229

    Google Scholar 

  • Cupertino LF, Silva CP, Dias DM, Pacheco MAC, Bentes C (2011) Evolving CUDA PTX programs by quantum inspired linear genetic programming. In: Proceedings of the 13th annual conference companion on genetic and evolutionary computation, GECCO ’11. ACM, New York, pp 399–406

  • Eklund S (2003) Time series forecasting using massively parallel genetic programming. In: Proceedings of international symposium parallel and distributed processing, 2003, pp 143–147

  • Frank A, Asuncion A (2010) UCI machine learning repository. http://archive.ics.uci.edu/ml

  • Harding S, Banzhaf W (2007) Fast genetic programming on GPUs. In: Proceedings of the 10th European conference on genetic programming, vol 4445 of LNCS’. Springer, pp 90–101

  • Harding S, Banzhaf W (2009) Distributed genetic programming on GPUs using CUDA. In: Risco-Martfn JL, Garnica O (eds) WPABA’09: proceedings of the second international workshop on parallel architectures and bioinspired algorithms (WPABA 2009). Universidad Complutense de Madrid, Raleigh, pp 1–10

    Google Scholar 

  • Juillé H, Pollack JB (1996) Massively parallel genetic programming. In: Angeline PJ, Kinnear KE Jr (eds) Advances in genetic programming 2, chap. 17. MIT Press, Cambridge, pp 339–358

  • KDD Cup 1999 Data (1999) Third international knowledge discovery and data mining tools competition. http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html

  • King RD, Feng C, Sutherland A (1995) Statlog: comparison of classification algorithms on large real-world problems. Appl Artif Intell 9(3):289–333. doi:10.1080/08839519508945477

  • Klein J, Spector L (2007) Unwitting distributed genetic programming via asynchronous javascript and XML. In: Proceedings of the 9th annual conference on genetic and evolutionary computation, GECCO ’07. ACM, New York, pp 1628–1635

  • Koza JR (1992) Genetic programming. MIT Press, Cambridge

    MATH  Google Scholar 

  • Langdon WB (2010) A many threaded CUDA interpreter for genetic programming. In: EuroGP, pp 146–158

  • Langdon WB, Banzhaf W (2008) A simd interpreter for genetic programming on gpu graphics cards. In: Proceedings of the 11th European conference on genetic programming, EuroGP’08. Springer, Berlin, pp 73–85

  • Langdon W, Harrison A (2008) GP on SPMD parallel graphics hardware for mega bioinformatics data mining. Soft Comput 12:1169–1183

    Article  Google Scholar 

  • Lewis TE, Magoulas GD (2009) Strategies to minimise the total run time of cyclic graph based genetic programming with GPUs. In: Proceedings of the 11th annual conference on genetic and evolutionary computation, GECCO ’09. ACM, New York, pp 1379–1386

  • Lewis TE, Magoulas GD (2011) TMBL kernels for CUDA GPUs compile faster using PTX: computational intelligence on consumer games and graphics hardware. In: Proceedings of the 13th annual conference companion on genetic and evolutionary computation, GECCO ’11. ACM, New York, pp 455–462

  • Maitre O, Lachiche N, Collet P (2010) Fast evaluation of GP trees on GPGPU by optimizing hardware scheduling, In: EuroGP, pp 301–312

  • Martin P (2001) A hardware implementation of a genetic programming system using FPGAs and Handel-C. Genet Progr Evol Mach 2:317–343. doi:10.1023/A:1012942304464

    Article  MATH  Google Scholar 

  • Niwa T, Iba H (1996) Distributed genetic programming: empirical study and analysis. In: Proceedings of the first annual conference on genetic programming, GECCO ’96. MIT Press, Cambridge, pp 339–344

  • Robilliard D, Marion-Poty V, Fonlupt C (2008) Population parallel GP on the G80 GPU. In: Proceedings of the 11th European conference on genetic programming, EuroGP’08. Springer, Berlin, pp 98–109

  • Robilliard D, Marion-Poty V, Fonlupt C (2009) Genetic programming on graphics processing units. Genet Progr Evol Mach 10:447–471

    Article  Google Scholar 

  • Sherry D, Veeramachaneni K, McDermott J, O’Reilly U-M (2012) Flex-gp: genetic programming on the cloud. In: Proceedings of the 2012 European conference on applications of evolutionary computation, EvoApplications’12. Springer, Berlin, pp 477–486

  • Tufts P (1995) Parallel case evaluation for genetic programming. In: Nadel L, Stein DL (eds) 1993 Lectures in Complex Systems’, vol. VI of Santa Fe Institute Studies in the Science of Complexity, Addison-Wesley, pp 591–596

  • Vasicek Z, Sekanina L (2008), Hardware accelerators for cartesian genetic programming. In: ONeill M, Vanneschi L, Gustafson S, Esparcia Alczar A, Falco I, Cioppa A, Tarantino E (eds) Genetic programming, vol 4971 of Lecture Notes in Computer Science. Springer, Berlin, pp 230–241

  • Vašíček Z, Slaný K (2012) Efficient phenotype evaluation in cartesian genetic programming. In: Proceedings of the 15th European conference on genetic programming, EuroGP’12. Springer, Berlin, pp 266–278

  • White D, McDermott J, Castelli M, Manzoni L, Goldman B, Kronberger G, Jakowski W, OReilly UM, Luke S (2013) Better GP benchmarks: community survey results and proposals. Genet Progr Evol Mach 14(1):3–29

    Article  Google Scholar 

  • Wilson G, Banzhaf W (2008) Linear genetic programming GPGPU on Microsoft’s Xbox 360. In: IEEE Congress on evolutionary computation, 2008, CEC 2008 (IEEE World Congress on Computational Intelligence), pp 378–385

  • Wilson G, Banzhaf W (2009) Deployment of CPU and GPU-based genetic programming on heterogeneous devices. In: Proceedings of the 11th annual conference companion on genetic and evolutionary computation conference: late breaking papers’, GECCO ’09. ACM, New York, pp 2531–2538

  • Wilson G, Banzhaf W (2010) Deployment of parallel linear genetic programming using GPUs on PC and video game console platforms. Genet Progr Evol Mach 11(2):147–184

    Article  Google Scholar 

Download references

Acknowledgments

This work was supported by the Engineering Department at the University of Bristol.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Darren M. Chitty.

Additional information

Communicated by V. Loia.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Chitty, D.M. Improving the performance of GPU-based genetic programming through exploitation of on-chip memory. Soft Comput 20, 661–680 (2016). https://doi.org/10.1007/s00500-014-1530-3

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00500-014-1530-3

Keywords

Navigation