Skip to main content
Log in

Genetic improvement of GPU software

  • Published:
Genetic Programming and Evolvable Machines Aims and scope Submit manuscript

Abstract

We survey genetic improvement (GI) of general purpose computing on graphics cards. We summarise several experiments which demonstrate four themes. Experiments with the gzip program show that genetic programming can automatically port sequential C code to parallel code. Experiments with the StereoCamera program show that GI can upgrade legacy parallel code for new hardware and software. Experiments with NiftyReg and BarraCUDA show that GI can make substantial improvements to current parallel CUDA applications. Finally, experiments with the pknotsRG program show that with semi-automated approaches, enormous speed ups can sometimes be had by growing and grafting new code with genetic programming in combination with human input.

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
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 23
Fig. 24
Fig. 25
Fig. 26
Fig. 27
Fig. 28

Similar content being viewed by others

Notes

  1. Single Instruction Multiple Threads, SIMT.

  2. BarraCUDA is on SourceForge http://sourceforge.net/projects/seqbarracuda/.

  3. http://iimcb.genesilico.pl/comparna/site_media/entire_datasets/rnastrand.zip 163.3 MB down loaded 3 April 2015.

  4. petke et al. [68] was subsequently judged human competitive [67].

References

  1. P.J. Angeline, Genetic programming and emergent intelligence, in Advances in Genetic Programming, chapter 4, ed. by K.E. Kinnear Jr. (MIT Press, Cambridge, 1994), pp. 75–98

    Google Scholar 

  2. A. Arcuri, Xin Yao, A novel co-evolutionary approach to automatic software bug fixing. in ed by J. Wang. 2008 IEEE World Congress on Computational Intelligence, Hong Kong, 1–6 June 2008. IEEE Computational Intelligence Society, IEEE Press, pp. 162–168

  3. W. Banzhaf, W.B. Langdon, Some considerations on the reason for bloat. Genet. Progr. Evolvable Mach. 3(1), 81–91 (2002)

    Article  MATH  Google Scholar 

  4. E.T. Barr, M. Harman, Yue Jia, A. Marginean, J. Petke, Automated software transplantation. in ed. by T. Xie, M. Young International Symposium on Software Testing and Analysis, ISSTA 2015, Baltimore, Maryland, USA, 14–17 July 2015. ACM. ACM SIGSOFT Distinguished Paper Award, pp. 257–269

  5. A. Brady, J. Lawrence, P. Peers, W. Weimer, genBRDF: discovering new analytic BRDFs with genetic programming. ACM Trans. Graph. 33(4), 114–11411 (2014)

    Article  Google Scholar 

  6. B.R. Bruce, J. Petke, M. Harman, Reducing energy consumption using genetic improvement. in ed. by S. Silva et al. GECCO ’15: Proceedings of the 2015 on Genetic and Evolutionary Computation Conference, Madrid, Spain, 11-15 July 2015. ACM, ACM, pp. 1327–1334

  7. B.R. Bruce, Energy optimisation via genetic improvement A SBSE technique for a new era in software development. in ed by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11–15 July 2015. ACM, pp. 819–820

  8. E.K. Burke, S. Gustafson, G. Kendall, Diversity in genetic programming: an analysis of measures and correlation with fitness. IEEE Trans. Evol. Comput. 8(1), 47–62 (2004)

    Article  Google Scholar 

  9. N. Burles, E. Bowles, B.R. Bruce, K. Srivisut, Specialising Guava’s cache to reduce energy consumption. In Yvan Labiche and Marcio Barros, editors, SSBSE, vol. 9275 of LNCS, Bergamo, Italy, September 5–7 2015. (Springer, Berlin) pp. 276–281

  10. N. Burles, J. Swan, E. Bowles, A.E.I. Brownlee, Z.A. Kocsis, N. Veerapen, Embedded dynamic improvement. in ed. by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11–15 July 2015. ACM, pp. 831–832

  11. D.J. Cavicchio, Jr., Adaptive search using simulated evolution. Ph.D. thesis, Department of Computer and Communication Sciences, University of Michigan, Ann Arbor, August (1970)

  12. J.M. Daida, A.M. Hilss, D.J. Ward, S.L. Long, Visualizing tree structures in genetic programming. Genet. Progr. Evolvable Mach. 6(1), 79–110 (2005)

    Article  MATH  Google Scholar 

  13. R.M. Durbin et al., A map of human genome variation from population-scale sequencing. Nature 467(7319), 1061–1073 (2010)

    Article  Google Scholar 

  14. B. Foster, A. Somayaji, Object-level recombination of commodity applications. in ed. by J. Branke et al. GECCO ’10: Proceedings of the 12th annual conference on Genetic and evolutionary computation, Portland, Oregon, USA, 7-11 July 2010. ACM, pp. 957–964

  15. J.A. Foster, Review: discipulus: a commercial genetic programming system. Genet. Progr. Evolvable Mach. 2(2), 201–203 (2001)

    Article  Google Scholar 

  16. C. Gathercole, P. Ross, Dynamic training subset selection for supervised learning in genetic programming. in ed. by Y. Davidor et al. Parallel Problem Solving from Nature III, vol. 866 of LNCS, Jerusalem, 9-14 October 1994. (Springer, Berlin) pp. 312–321

  17. S.L. Harding, W. Banzhaf, Distributed genetic programming on GPUs using CUDA. in ed. by I. Hidalgo et al. Workshop on Parallel Architectures and Bioinspired Algorithms, Raleigh, NC, USA, 13 September 2009. Universidad Complutense de Madrid, pp. 1–10

  18. M. Harman, B.F. Jones, Search based software engineering. Inf. Softw. Technol. 43(14), 833–839 (2001)

    Article  Google Scholar 

  19. M. Harman, W.B. Langdon, Yue Jia, D.R. White, A. Arcuri, J.A. Clark, The GISMOE challenge: constructing the Pareto program surface using genetic programming to find better programs. in The 27th IEEE/ACM International Conference on Automated Software Engineering (ASE 12), Essen, Germany, September 3–7 2012. ACM, pp. 1–14

  20. M. Harman, A. Mansouri, Yuanyuan Zhang, Search based software engineering: trends, techniques and applications. ACM Comput. Surv. 45(1), 11:1–11:61 (2012)

    Article  Google Scholar 

  21. M. Harman, Yue Jia, W.B. Langdon, Babel pidgin: SBSE can grow and graft entirely new functionality into a real world system. in ed. by C. Le Goues, S. Yoo Proceedings of the 6th International Symposium, on Search-Based Software Engineering, SSBSE 2014, vol. 8636 of LNCS, Fortaleza, Brazil, 26–29 August 2014. Springer. Winner SSBSE 2014 Challange Track, pp. 247–252

  22. C. Harris, An investigation into the Application of Genetic Programming techniques to Signal Analysis and Feature Detection. Ph.D. thesis, University College, London, UK, 26 September (1997)

  23. B. Harvey, J.A. Foster, D. Frincke, Byte code genetic programming. in ed. by J.R. Koza Late Breaking Papers at the Genetic Programming 1998 Conference, University of Wisconsin, Madison, Wisconsin, USA, 22–25 July 1998. Stanford University Bookstore, pp. 59–63

  24. D. Hussain, S. Malliaris, Evolutionary techniques applied to hashing: an efficient data retrieval method. in ed. by D. Whitley et al. Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2000), Las Vegas, Nevada, USA, 10–12 July 2000. Morgan Kaufmann, p. 760

  25. M. Hutchins, H. Foster, T. Goradia, T. Ostrand, Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria. in Proceedings of 16th International Conference on Software Engineering, ICSE-16, pp. 191–200, May (1994)

  26. International Human Genome Sequencing Consortium. Initial sequencing and analysis of the human genome. Nature, 409(6822):860–921 (2001)

  27. Yue Jia, M. Harman, W.B. Langdon, A. Marginean, Grow and serve: growing Django citation services using SBSE. In Shin Yoo and Leandro Minku, editors, SSBSE 2015 Challenge Track, vol. 9275 of LNCS, Bergamo, Italy, 5–7 September, pp. 269–275 (2015)

  28. S. Klahold, S. Frank, R.E. Keller, W. Banzhaf, Exploring the possibilites and restrictions of genetic programming in Java bytecode. in ed. by J.R. Koza Late Breaking Papers at the Genetic Programming 1998 Conference, University of Wisconsin, Madison, Wisconsin, USA, 22–25 July 1998. Stanford University Bookstore, pp. 120–124

  29. P. Klus, Simon Lam, D. Lyberg, M.S. Cheung, G. Pullan, I. McFarlane, G.S.H. Yeo, B.Y.H. Lam, BarraCUDA—a fast short read sequence aligner using graphics processing units. BMC Res. Notes (2012). doi:10.1186/1756-0500-5-27

    Google Scholar 

  30. J.R. Koza, Genetic Programming: On the Programming of Computers by Means of Natural Selection (MIT Press, Cambridge, 1992)

    MATH  Google Scholar 

  31. J. Landsborough, S. Harding, S. Fugate, Removing the kitchen sink from software. in ed. by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11–15 July 2015. ACM, pp. 833–838

  32. W.B. Langdon, M. Harman, Evolving a CUDA kernel from an nVidia template. in ed. by P. Sobrevilla 2010 IEEE World Congress on Computational Intelligence, Barcelona, 18–23 July 2010. IEEE, pp. 2376–2383

  33. W.B. Langdon, M. Harman, Genetically improved CUDA kernels for stereocamera. Research Note RN/14/02, Department of Computer Science, University College London, Gower Street, London WC1E 6BT, UK, 20 February (2014)

  34. W.B. Langdon, M. Harman, Genetically improved CUDA C++ software. In Miguel Nicolau et al., editors, 17th European Conference on Genetic Programming, vol. 8599 of LNCS, Granada, Spain, 23-25 April 2014. (Springer, Berlin, 2014) pp. 87–99

  35. W.B. Langdon, M. Harman, Grow and graft a better CUDA pknotsRG for RNA pseudoknot free energy calculation. in ed, by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11–15 July 2015. ACM, pp. 805–810

  36. W.B. Langdon, M. Harman, Optimising existing software with genetic programming. IEEE Trans. Evol. Comput. 19(1), 118–135 (2015)

    Article  Google Scholar 

  37. W.B. Langdon, A.P. Harrison, GP on SPMD parallel graphics hardware for mega bioinformatics data mining. Soft Comput., 12(12):1169–1183, October 2008. Special Issue on Distributed Bioinspired Algorithms

  38. W.B. Langdon, B.Y.H. Lam, Genetically improved barraCUDA. Research Note RN/15/03, Department of Computer Science, University College London, Gower Street, London WC1E 6BT, UK, 28 May (2015)

  39. W.B. Langdon, J. Petke, Genetic improvement. IEEE Software Blog, (2016)

  40. W.B. Langdon, R. Poli, An analysis of the MAX problem in genetic programming. in ed. by J.R. Koza et al. Genetic Programming 1997: Proceedings of the Second Annual Conference, Stanford University, CA, USA, 13–16 July 1997. Morgan Kaufmann, pp. 222–230

  41. W.B. Langdon, R. Poli, Fitness causes bloat. in ed. by P.K. Chawdhry et al. Soft Computing in Engineering Design and Manufacturing (Springer, London, 1997), 23–27 June, pp. 13–22

  42. W.B. Langdon, R. Poli, Foundations of Genetic Programming (Springer, Berlin, 2002)

    Book  MATH  Google Scholar 

  43. W.B. Langdon, M. Harman, Yue Jia, Efficient multi-objective higher order mutation testing with genetic programming. J. Syst. Softw. 83(12), 2416–2430 (2010)

    Article  Google Scholar 

  44. W.B. Langdon, M. Modat, J. Petke, M. Harman, Improving 3D medical image registration CUDA software with genetic programming. in ed. by C. Igel et al. GECCO ’14: Proceeding of the sixteenth annual conference on genetic and evolutionary computation conference, Vancouver, BC, Canada, 12–15 July 2014. ACM, pp. 951–958

  45. W.B. Langdon, B.Y.H. Lam, J. Petke, M. Harman, Improving CUDA DNA analysis software with genetic programming. in ed. by S. Silva et al. GECCO ’15: Proceedings of the 2015 on Genetic and Evolutionary Computation Conference, Madrid, 11–15 July 2015. ACM, pp. 1063–1070

  46. W.B. Langdon, Directed crossover within genetic programming. Research Note RN/95/71, University College London, Gower Street, London WC1E 6BT, UK, September (1995)

  47. W.B. Langdon, Genetic Programming and Data Structures: Genetic Programming + Data Structures = Automatic Programming! volume 1 of Genetic Programming, vol. 1 (Kluwer, Boston, 1998)

  48. W.B. Langdon, A many threaded CUDA interpreter for genetic programming. in ed. by A. Isabel Esparcia-Alcazar et al. Proceedings of the 13th European Conference on Genetic Programming, EuroGP 2010, volume 6021 of LNCS, Istanbul, 7–9 April 2010. (Springer, Berlin) pp. 146–158

  49. W.B. Langdon, Creating and debugging performance CUDA C. in ed. by F. Fernandez de Vega et al. Parallel Architectures and Bioinspired Algorithms, vol. 415 of Studies in Computational Intelligence, chapter 1. (Springer, Berlin, 2012) pp. 7–50

  50. W.B. Langdon, Genetic improvement of software for multiple objectives. in ed. by Y. Labiche, M. Barros SSBSE, vol. 9275 of LNCS, Bergamo, Italy, September 5–7 2015. Springer. Invited keynote, pp. 12–28

  51. W.B. Langdon, Genetically improved software, in Handbook of Genetic Programming Applications, chapter 8, ed. by A.H. Gandomi, et al. (Springer, Berlin, 2015), pp. 181–220

    Chapter  Google Scholar 

  52. C. Le Goues, M. Dewey-Vogt, S. Forrest, W. Weimer, A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each. in ed. by M. Glinz 34th International Conference on Software Engineering (ICSE 2012), Zurich, June 2–9, pp. 3–13, (2012)

  53. C. Le Goues, W. Weimer, S. Forrest, Representations and operators for improving evolutionary software repair. in ed. by T. Soule et al. GECCO ’12: Proceedings of the fourteenth international conference on Genetic and evolutionary computation conference, Philadelphia, Pennsylvania, USA, 7–11 July 2012. ACM, pp. 959–966

  54. Heng Li, R. Durbin, Fast and accurate long-read alignment with Burrows-Wheeler transform. Bioinformatics 26(5), 589–595 (2010)

    Article  Google Scholar 

  55. Weiguo Liu, B. Schmidt, G. Voss, A. Schroder, W. Muller-Wittig, Bio-sequence database scanning on a GPU. in 20th International Parallel and Distributed Processing Symposium, IPDPS 2006, Rhodes, Greece, 25–29 April 2006. IEEE Press

  56. R.E. Lopez-Herrejon, L. Linsbauer, Genetic improvement for software product lines: an overview and a roadmap. in W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11–15 July 2015. ACM, pp. 823–830

  57. E. Lukschandl, M. Holmlund, E. Moden, Automatic evolution of Java bytecode: First experience with the Java virtual machine. in ed. by R. Poli et al. Late Breaking Papers at EuroGP’98: the First European Workshop on Genetic Programming, Paris, France, 14–15 April 1998. CSRP-98-10, The University of Birmingham, UK, pp. 14–16

  58. Ruibang Luo, Thomas Wong, Jianqiao Zhu, Chi-Man Liu, Xiaoqian Zhu, Edward Wu, Lap-Kei Lee, Haoxiang Lin, Wenjuan Zhu, David W. Cheung, Hing-Fung Ting, Siu-Ming Yiu, Shaoliang Peng, Chang Yu, Yingrui Li, Ruiqiang Li, and Tak-Wah Lam, SOAP3-dp: Fast, accurate and sensitive GPU-based short read aligner. PLoS One 8(5), e65632 (2013)

    Article  Google Scholar 

  59. S. Manavski, G. Valle, CUDA compatible GPU cards as efficient hardware accelerators for Smith-Waterman sequence alignment. BMC Bioinf. 9(Suppl 2), S10 (2008)

    Article  Google Scholar 

  60. N.F. McPhee, N.J. Hopper, Analysis of genetic diversity through population history. in ed. by W. Banzhaf et al. Proceedings of the Genetic and Evolutionary Computation Conference, vol. 2, pp. 1112–1120, Orlando, Florida, USA, 13-17 July 1999. Morgan Kaufmann

  61. D. Merrill, M. Garland, A. Grimshaw, Policy-based tuning for performance portability and library co-optimization. In Innovative Parallel Computing (InPar), 2012. IEEE, May (2012)

  62. M. Modat, G.R. Ridgway, Z.A. Taylor, M. Lehmann, J. Barnes, D.J. Hawkes, N.C. Fox, S. Ourselin, Fast free-form deformation using graphics processing units. Comput. Methods Progr. Biomed. 98(3), 278–284 (2010)

    Article  Google Scholar 

  63. V. Mrazek, Z. Vasicek, L. Sekanina, Evolutionary approximation of software for embedded systems: Median function. in ed. by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11–15 July 2015. ACM, pp. 795–801

  64. M. Orlov, M. Sipper, Flight of the FINCH through the Java wilderness. IEEE Trans. Evol. Comput. 15(2), 166–182 (2011)

    Article  Google Scholar 

  65. J.D. Owens, M. Houston, D. Luebke, S. Green, J.E. Stone, J.C. Phillips, GPU computing. Proc. IEEE, 96(5):879–899, May 2008. Invited paper

  66. N. Paterson, M. Livesey, Evolving caching algorithms in C by genetic programming. in ed. by J.R. Koza et al. Genetic Programming 1997: Proceedings of the Second Annual Conference, Stanford University, CA, USA, 13-16 July 1997. Morgan Kaufmann, pp. 262–267

  67. J. Petke, M. Harman, W.B. Langdon, W. Weimer, Using genetic improvement & code transplants to specialise a C++ program to a problem class. 11th Annual Humies Awards 2014, 14 July 2014. Winner Silver

  68. J. Petke, M. Harman, W.B. Langdon, W. Weimer, Using genetic improvement and code transplants to specialise a C++ program to a problem class. in ed. by M. Nicolau et al. 17th European Conference on Genetic Programming, vol. 8599 of LNCS, Granada, Spain, 23-25 April 2014. (Springer, Berlin) pp. 137–149

  69. R. Poli, W.B. Langdon, S. Dignum, On the limiting distribution of program sizes in tree-based genetic programming. in ed. by M. Ebner et al. Proceedings of the 10th European Conference on Genetic Programming, vol. 4445 of Lecture Notes in Computer Science, Valencia, Spain, 11-13 April 2007. (Springer, Berlin) pp. 193–204

  70. R. Poli, W.B. Langdon, N.F. McPhee, A field guide to genetic programming. Published via http://lulu.com and freely available at http://www.gp-field-guide.org.uk, 2008. (With contributions by J. R. Koza)

  71. J. Reeder, R. Giegerich, Design, implementation and evaluation of a practical pseudoknot folding algorithm based on thermodynamics. BMC Bioinf. 5(1), 104 (2004)

    Article  Google Scholar 

  72. J. Reeder, P. Steffen, R. Giegerich, pknotsRG: RNA pseudoknot folding including near-optimal structures and sliding windows. Nucleic Acids Res. 35(suppl 2), W320–W324 (2007)

    Article  Google Scholar 

  73. I. Reguly, M. Giles, Efficient sparse matrix-vector multiplication on cache-based GPUs. in Innovative Parallel Computing (InPar), 2012, San Jose, USA, 13–14 May 2012. IEEE, pp. 230–241

  74. J.L. Risco-Martin, D. Atienza, J.M. Colmenar, O. Garnica, A parallel evolutionary algorithm to optimize dynamic memory managers in embedded systems. Parallel Computing, 36(10-11):572–590 (2010). Parallel Architectures and Bioinspired Algorithms

  75. P. Rodriguez-Mier, M. Mucientes, M. Lama, M.I. Couto, Composition of web services through genetic programming. Evol. Intel. 3(3–4), 171–186 (2010)

    Article  Google Scholar 

  76. D. Schuler, A. Zeller, Javalanche: efficient mutation testing for java. in ed. by H. van Vliet, V. Issarny ESEC/SIGSOFT FSE, Amsterdam, Netherlands, 24–28 August 2009. ACM, pp. 297–298

  77. E. Schulte, J. DiLorenzo, W. Weimer, S. Forrest, Automated repair of binary and assembly programs for cooperating embedded devices. in Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems, ASPLOS 2013, Houston, Texas, USA, March 16-20 2013. ACM, pp. 317–328

  78. E. Schulte, J. Dorn, S. Harding, S. Forrest, W. Weimer, Post-compiler software optimization for reducing energy. in Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS’14, Salt Lake City, Utah, USA, 1–5 March 2014. ACM, pp. 639–652

  79. E. Schulte, Z.P. Fry, E. Fast, W. Weimer, S. Forrest, Software mutational robustness. Genet. Progr. Evolvable Mach. 15(3), 281–312 (2014)

    Article  Google Scholar 

  80. E. Schulte, W. Weimer, S. Forrest, Repairing COTS router firmware without access to source code or test suites: a case study in evolutionary software repair. in ed. by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11-15 July 2015. ACM. Best Paper, pp. 847–854

  81. P. Sitthi-amorn, N. Modly, W. Weimer, J. Lawrence, Genetic programming for shader simplification. ACM Transactions on Graphics, 30(6):article:152, December 2011. Proceedings of ACM SIGGRAPH Asia (2011)

  82. T. Soule, R.B. Heckendorn, An analysis of the causes of code growth in genetic programming. Genet. Progr. Evolvable Mach. 3(3), 283–309 (2002)

    Article  MATH  Google Scholar 

  83. J. Stam, Stereo imaging with CUDA. Technical report, nVidia, V 0.2 3 Jan 2008. StereoImaging.pdf distributed with StereoCamera_v1_1c.zip

  84. P. Steffen, R. Giegerich, Table design in dynamic programming. Inf. Comput. 204(9), 1325–1345 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  85. G. Syswerda, Uniform crossover in genetic algorithms. in ed. by J. David Schaffer Proceedings of the third international conference on Genetic Algorithms, George Mason University, 4–7 June 1989. Morgan Kaufmann, pp. 2–9

  86. W.A. Tackett, Recombination, Selection, and the Genetic Construction of Computer Programs. Ph.D. thesis, University of Southern California, Department of Electrical Engineering Systems, USA (1994)

  87. A. Teller, D. Andre, Automatically choosing the number of fitness cases: the rational allocation of trials. in ed. by J.R. Koza et al. Genetic Programming 1997: Proceedings of the Second Annual Conference, Stanford University, CA, USA, 13–16 July 1997. Morgan Kaufmann, pp. 321–328

  88. R.H. Untch, A.J. Offutt, M.J. Harrold, Mutation analysis using mutant schemata. in Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis, Cambridge, Massachusetts, pp. 139–148 (1993)

  89. W. Weimer, ThanhVu Nguyen, C. Le Goues, S. Forrest, Automatically finding patches using genetic programming. in ed. by S. Fickas International Conference on Software Engineering (ICSE) 2009, Vancouver, May 16–24, pp. 364–374 (2009)

  90. W. Weimer, S. Forrest, C. Le Goues, ThanhVu Nguyen, Automatic program repair with evolutionary computation. Commun. ACM 53(5), 109–116 (2010)

    Article  Google Scholar 

  91. D.R. White, J. Clark, J. Jacob, S.M. Poulding, Searching for resource-efficient programs: low-power pseudorandom number generators. in ed. by M. Keijzer et al. GECCO ’08: Proceedings of the 10th annual conference on Genetic and evolutionary computation, Atlanta, GA, USA, 12–16 July 2008. ACM, pp. 1775–1782

  92. D.R. White, A. Arcuri, J.A. Clark, Evolutionary improvement of programs. IEEE Trans. Evol. Comput. 15(4), 515–538 (2011)

    Article  Google Scholar 

  93. F. Wu, W. Weimer, M. Harman, Yue Jia, J. Krinke, Deep parameter optimisation. in ed. by S. Silva et al. GECCO ’15: Proceedings of the 2015 on Genetic and Evolutionary Computation Conference, Madrid, 11-15 July 2015. ACM, pp. 1375–1382

  94. Xin Yao, M. Harman, Yue Jia, A study of equivalent and stubborn mutation operators using human analysis of equivalence. in Proceedings of the 36th International Conference on Software Engineering, ICSE 2014, Hyderabad, India, 2014. ACM, pp. 919–930

  95. K. Yeboah-Antwi, B. Baudry, Embedding adaptivity in software systems using the ECSELR framework. in ed. by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11-15 July 2015. ACM, pp. 839–844

Download references

Acknowledgments

I would like to thank Yue Jia and txbob. Teslas donated by nVidia.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to William B. Langdon.

Electronic supplementary material

Below is the link to the electronic supplementary material.

Supplementary material 1 (gif 480 KB)

Appendix: FTP kits

Appendix: FTP kits

1.1 StereoCamera

The grammar-based genetic programming system is available via ftp.cs.ucl.ac.uk file genetic/gp-code/StereoCamera_1_1.tar.gz and training images are in StereoImages.tar.gz The GI version of StereoCamera is in StereoCamera_v1_1c.zip [33].

1.2 NiftyReg

Code etc. in http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/gp-code/niftycuda.tar.gz.

The improved NiftyReg code is in http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/gp-code/nifty_reg-1.3.9_patch.tar.gz [44].

1.3 BarraCUDA

GI tools for BarraCUDA are available via FTP and http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/gp-code/barracuda_gp.tar.gz.

The latest release of BarraCUDA can be downloaded from http://sourceforge.net/projects/seqbarracuda/?source=typ_redirect [45].

1.4 pknotsRG

The Genetic Improvement system which evolved the better version of pknotsRG is available via http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/gp-code/pknotsGI.tar.gz [35].

1.5 Drawing Trees in a Circular Lattice (like Fig. 18)

http://www.cs.ucl.ac.uk/staff/W.Langdon/lisp2dot.html gives some code to display trees as circular lattices [12].

1.6 GenProg

Le Goues’ bug fixing system (Sect. 3) is available at http://genprog.cs.virginia.edu/ [90].

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Langdon, W.B., Lam, B.Y.H., Modat, M. et al. Genetic improvement of GPU software. Genet Program Evolvable Mach 18, 5–44 (2017). https://doi.org/10.1007/s10710-016-9273-9

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10710-016-9273-9

Keywords

Navigation