GPU-Based Acceleration of Quantum-Inspired Evolutionary Algorithm

GPU를 이용한 Quantum-Inspired Evolutionary Algorithm 가속

  • Ryoo, Ji-Hyun (Department of Electrical Engineering and Computer Science, Seoul National University) ;
  • Park, Han-Min (Department of Electrical Engineering and Computer Science, Seoul National University) ;
  • Choi, Ki-Young (Department of Electrical Engineering and Computer Science, Seoul National University)
  • 류지현 (서울대학교 전기.컴퓨터공학부) ;
  • 박한민 (서울대학교 전기.컴퓨터공학부) ;
  • 최기영 (서울대학교 전기.컴퓨터공학부)
  • Received : 2012.05.30
  • Accepted : 2012.07.17
  • Published : 2012.08.25

Abstract

Quantum-Inspired Evolutionary Algorithm(QEA) contains sufficient data-level parallelism to be naturally accelerated on GPUs. For an efficient reduction of execution time, however, careful task-mapping should be done to properly reflect the characteristics of CPU and GPU. Furthermore, when deciding which part of the application should run on GPU, we need to consider the data transfer between CPU and GPU memory spaces as well as the data-level parallelism. In addition, the usage of zero-copy host memory, proper choice of the execution configuration, and thread organization considering memory coalescing is important to further reduce the execution time. With all these techniques, we could run QEA 3.69 times faster on average in comparison with the multi-threading CPU for the case of 0-1 knapsack problem with 30,000 items.

Quantum-Inspired Evolutionary Algorithm(QEA)은 알고리즘 자체에 충분한 data-level parallelism이 내재되어 있어 GPU를 이용한 가속에 용이하다. 그러나 효과적인 실행시간의 단축을 위해서는 CPU와 GPU에의 적절한 task-mapping이 필요하다. 이때 단순히 함수 자체의 병렬성만을 고려하는 것이 아니라 CPU와 GPU간의 데이터 전송도 고려하여 task-mapping을 할 필요가 있다. 또한 추가적인 성능향상을 위하여 zero-copy host memory와 적절한 execution configuration의 사용, 그리고 memory coalescing 등을 이용할 수 있다. 그 결과 30,000개의 item수를 가진 0-1 knapsack problem에 대한 QEA의 수행을 multi-threading CPU에 비해 평균 3.69배 빠르게 할 수 있었다.

Keywords

References

  1. K.-H. Han and J.-H. Kim, "Quantum-Inspired Evolutionary Algorithm for a Class of Combinatorial Optimization," IEEE Trans. on Evolutionary Computation, vol. 6, no. 6, December 2002.
  2. 문병로, 쉽게 배우는 유전 알고리즘. 진화적 접근법, 한빛미디어, pp. 24-25, 2008.
  3. Y. Ahn, K. Han, G. Lee, H. Song, J. Yoo, and K. Choi, "SoCDAL: System-on-Chip Design AcceLerator," ACM Trans. on Design Automation of Electronic Systems, vol. 13, no. 1, January 2008.
  4. 박한민, 최기영, "Quantum-Evolutionary Algorithm을 이용한 Bit-Parallel 가변 길이 복호기의 Symbol Partitioning 최적화 방법," IEEK Fall Conf., 대전, 대한민국, November 2011.
  5. 이진호, 최기영, "QEA를 이용한 멀티코어에의 작업 할당", 대한전자공학회 추계학술대회, 서울, 대한민국, November 2010.
  6. E. Cantu-Paz, "A Summary of Research on Parallel Genetic Algorithms," IlliGAL Report, no. 95007, pp. 3-11, July 1995.
  7. K.-H. Han and J.-H. Kim, "Genetic Quantum Algorithm and its Application to Combinatorial Optimization Problem," in Proc. 2000 Congress on Evolutionary Computation, pp. 1354-1360, July 2000.
  8. R. Nowotniak and J. Kucharski, "GPU-based Tuning of Quantum-Inspired Genetic Algorithm for a Combinatorial Optimization Problem," in Proc. XIV International Conference System Modeling and Control, June 27, 2011.
  9. 류지현, 박한민, 최기영, "GPU를 이용한 quantum-inspired evolutionary algorithm 가속," SoC 학술대회, 서울, 대한민국, 2012. 4.
  10. T. Hey, "Quantum computing: an introduction", Computing & Control Engineering Journal, vol. 10, no. 3, pp. 3-4, June 1999.
  11. NVIDIA CUDA C Programming Guide, Version 4.0, NVIDIA, 2011.
  12. (2012) The OpenMP homepage. [Online]. Available: http://openmp.org/wp/
  13. K.-H. Han and J.-H. Kim, "On setting the parameters of quantum-inspired evolutionary algorithm for practical applications," in Proc. 2003 Congress on Evolutionary Computation, December 2003, pp. 178-184.