• DocumentCode
    2780977
  • Title

    Automatic implementation of evolutionary algorithms on GPUs using ESDL

  • Author

    Dower, Steve

  • Author_Institution
    Swinburne Univ. of Technol., Melbourne, VIC, Australia
  • fYear
    2012
  • fDate
    10-15 June 2012
  • Firstpage
    1
  • Lastpage
    8
  • Abstract
    Modern computer processing units tend towards simpler cores in greater numbers, favouring the development of data-parallel applications. Evolutionary algorithms are ideal for taking full advantage of SIMD (Single Instruction, Multiple Data) processing, which is available on both CPUs and GPUs. Creating software that runs on a GPU requires the use of specialised programming languages or styles, forcing practitioners to acquire new skills and limiting the portability of their developments. In this paper, we present an automatic translation from ESDL, a domain-specific language for composing evolutionary algorithms from arbitrary operators, to C++ AMP, a C++ extension for targeting heterogeneous hardware. Generating executable code from a simple platform-independent description allows practitioners with varying levels of programming expertise to take advantage of data-parallel execution, and enables those with strong expertise to further optimise their implementations. The automatic transformation is shown to produce code less optimal than a manual implementation but with significantly less developer effort. A secondary result is that GPU implementations require a large population, large individuals or an expensive evaluation function to achieve performance benefits over the CPU. All code developed for this paper is freely available online from http://stevedower.id.au/esdl/amp.
  • Keywords
    C++ language; evolutionary computation; graphics processing units; parallel programming; C++ AMP; C++ extension; CPU; ESDL; GPU; SIMD processing; computer processing units; data-parallel applications; domain-specific language; evolutionary algorithms; single instruction, multiple data processing; specialised programming languages; Arrays; Evolutionary computation; Generators; Graphics processing unit; Hardware; Kernel; Parallel processing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Evolutionary Computation (CEC), 2012 IEEE Congress on
  • Conference_Location
    Brisbane, QLD
  • Print_ISBN
    978-1-4673-1510-4
  • Electronic_ISBN
    978-1-4673-1508-1
  • Type

    conf

  • DOI
    10.1109/CEC.2012.6252980
  • Filename
    6252980