2015 Seventh International Symposium on Parallel Architectures, Algorithms and Programming (PAAP) (2015)
Dec. 12, 2015 to Dec. 14, 2015
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/PAAP.2015.13
In this paper we present a heavily exploration oriented implementation of genetic algorithms to be executed on graphic processor units (GPUs) that is optimized with our novel mechanism for scheduling GPU-side synchronized jobs that takes inspiration from the concept of persistent threads. Persistent Threads allow an efficient distribution of work loads throughout the GPU so to fully exploit the CUDA (NVIDIA's proprietary Compute Unified Device Architecture) architecture. Our approach (named Scheduled Light Kernel, SLK) uses a specifically designed data structure for issuing sequences of commands from the CPU to the GPU able to minimize CPUGPU communications, exploit streams of concurrent execution of different device side functions within different Streaming Multiprocessors and minimize kernels launch overhead. Results obtained on two completely different experimental settings show that our approach is able to dramatically increase the performance of the tested genetic algorithms compared to the baseline implementation that (while still running on a GPU) does not exploit our proposed approach. Our proposed SLK approach does not require substantial code rewriting and is also compared to newly introduced features in the last CUDA development toolkit, such as nested kernel invocations for dynamic parallelism.
Graphics processing units, Kernel, Genetic algorithms, Instruction sets, Computational modeling, Programming, Data structures,CUDA, GP-GPUs, Genetic Algorithms, Persistent Threads
Nicola Capodieci, Paolo Burgio, "Efficient Implementation of Genetic Algorithms on GP-GPU with Scheduled Persistent CUDA Threads", 2015 Seventh International Symposium on Parallel Architectures, Algorithms and Programming (PAAP), vol. 00, no. , pp. 6-12, 2015, doi:10.1109/PAAP.2015.13