Doc. Ing. Jiří Jaroš, Ph.D.
|POSPÍCHAL Petr, JAROŠ Jiří and SCHWARZ Josef. Acceleration of Grammatical Evolution Using Graphics Processing Units. 7th Doctoral Workshop on Mathematical and Engineering Methods in Computer Science. Brno: Brno University of Technology, 2011. ISBN 978-80-214-4305-1.|
|Original title:||Acceleration of Grammatical Evolution Using Graphics Processing Units|
|Title (en):||Acceleration of Grammatical Evolution Using Graphics Processing Units|
|Book:||7th Doctoral Workshop on Mathematical and Engineering Methods in Computer Science|
|Conference:||7th Doctoral Workshop on Mathematical and Engineering Methods in Computer Science|
|Publisher:||Brno University of Technology|
|CUDA, grammatical evolution, graphics chips, GPU, GPGPU, speedup, symbolic regression|
Several papers show that symbolic regression is suitable for data analysis and prediction in financial markets. Grammatical Evolution (GE), a grammar-based form of Genetic Programming (GP), has been successfully applied in solving various tasks including symbolic regression. However, the computational effort to calculate the fitness of a solution in GP can often limit the area of possible application and/or the extent of experimentation undertaken.
This paper deals with utilizing mainstream graphics processing units (GPU) for acceleration of GE solving symbolic regression. GPU optimization details are discussed and the NVCC compiler is analyzed. We design an effective mapping of the algorithm to the CUDA framework, and in so doing must tackle constraints of the GPU approach, such as the PCI-express bottleneck and main memory transactions.
This is the first occasion GE has been adapted for running on a GPU. We measure our implementation running on one core of CPU Core i7 and GPU GTX 480 together with a GE library written in JAVA, GEVA.
Results indicate that our algorithm offers the same convergence, and it is suitable for a larger number of regression points where GPU is able to reach speedup to 39 times faster when compared to GEVA on a serial CPU code written in C.