An improved CUDA-based implementation of differential evolution on GPU

Modern GPUs enable widely affordable personal computers to carry out massively parallel computation tasks. NVIDIA's CUDA technology provides a wieldy parallel computing platform. Many state-of-the-art algorithms arising from different fields have been redesigned based on CUDA to achieve computational speedup. Differential evolution (DE), as a very promising evolutionary algorithm, is highly suitable for parallelization owing to its data-parallel algorithmic structure. However, most existing CUDA-based DE implementations suffer from excessive low-throughput memory access and less efficient device utilization. This work presents an improved CUDA-based DE to optimize memory and device utilization: several logically-related kernels are combined into one composite kernel to reduce global memory access; kernel execution configuration parameters are automatically determined to maximize device occupancy; streams are employed to enable concurrent kernel execution to maximize device utilization. Experimental results on several numerical problems demonstrate superior computational time efficiency of the proposed method over two recent CUDA-based DE and the sequential DE across varying problem dimensions and algorithmic population sizes.

[1]  Jie Cheng,et al.  Programming Massively Parallel Processors. A Hands-on Approach , 2010, Scalable Comput. Pract. Exp..

[2]  Carlos A. Coello Coello,et al.  A GPU-Based Implementation of Differential Evolution for Solving the Gene Regulatory Network Model Inference Problem , 2012 .

[3]  Yaohang Li,et al.  GPU-accelerated differential evolutionary Markov Chain Monte Carlo method for multi-objective optimization over continuous space , 2010, BADS '10.

[4]  Václav Snásel,et al.  A comparison of many-threaded differential evolution and genetic algorithms on CUDA , 2011, 2011 Third World Congress on Nature and Biologically Inspired Computing.

[5]  Václav Snásel,et al.  Many-threaded implementation of differential evolution for the CUDA platform , 2011, GECCO '11.

[6]  Tien-Tsin Wong,et al.  Evolutionary Computing on Consumer Graphics Hardware , 2007, IEEE Intelligent Systems.

[7]  Jing J. Liang,et al.  Problem Definitions and Evaluation Criteria for the CEC 2005 Special Session on Real-Parameter Optimization , 2005 .

[8]  Renato A. Krohling,et al.  Differential evolution algorithm on the GPU with C-CUDA , 2010, IEEE Congress on Evolutionary Computation.

[9]  Colin R. Reeves,et al.  Evolutionary computation: a unified approach , 2007, Genetic Programming and Evolvable Machines.

[10]  Renato A. Krohling,et al.  A co-evolutionary differential evolution algorithm for solving min-max optimization problems implemented on GPU using C-CUDA , 2012, Expert Syst. Appl..

[11]  Václav Snásel,et al.  Differential evolution for the linear ordering problem implemented on CUDA , 2011, 2011 IEEE Congress of Evolutionary Computation (CEC).

[12]  R. Storn,et al.  Differential Evolution: A Practical Approach to Global Optimization (Natural Computing Series) , 2005 .

[13]  Tien-Tsin Wong,et al.  Evolutionary Computing on Consumer-Level Graphics Hardware , 2005 .

[14]  Dimitris K. Tasoulis,et al.  Parallel differential evolution , 2004, Proceedings of the 2004 Congress on Evolutionary Computation (IEEE Cat. No.04TH8753).