Evolving GPU machine code

  • Cleomar Pereira Da Silva
  • , Douglas Mota Dias
  • , Cristiana Bentes
  • , Marco Aurélio Cavalcanti Pacheco
  • , Leandro Fontoura Cupertino

Research output: Contribution to journalArticlepeer-review

Abstract

Parallel Graphics Processing Unit (GPU) implementations of GP have appeared in the literature using three main methodologies: (i) compilation, which generates the individuals in GPU code and requires compilation; (ii) pseudo-assembly, which generates the individuals in an intermediary assembly code and also requires compilation; and (iii) interpretation, which interprets the codes. This paper proposes a new methodology that uses the concepts of quantum computing and directly handles the GPU machine code instructions. Our methodology utilizes a probabilistic representation of an individual to improve the global search capability. In addition, the evolution in machine code eliminates both the overhead of compiling the code and the cost of parsing the program during evaluation. We obtained up to 2.74 trillion GP operations per second for the 20-bit Boolean Multiplexer benchmark. We also compared our approach with the other three GPU-based acceleration methodologies implemented for quantum-inspired linear GP. Significant gains in performance were obtained.

Original languageEnglish
Pages (from-to)673-712
Number of pages40
JournalJournal of Machine Learning Research
Volume16
Publication statusPublished - 1 Apr 2015
Externally publishedYes

Keywords

  • Genetic programming
  • Graphics processing units
  • Machine code

Fingerprint

Dive into the research topics of 'Evolving GPU machine code'. Together they form a unique fingerprint.

Cite this