Implementation of high performance parallel LU factorization program for multi-threads on GPGPUs

GPGPU의 멀티 쓰레드를 활용한 고성능 병렬 LU 분해 프로그램의 구현

  • 신봉희 (인천대학교 컴퓨터공학부) ;
  • 김영태 (강릉원주대학교 컴퓨터공학과)
  • Received : 2010.11.10
  • Accepted : 2011.03.16
  • Published : 2011.06.30

Abstract

GPUs were originally designed for graphic processing, and GPGPUs are general-purpose GPUs for numerical computation with high performance and low electric power. In this paper, we implemented the parallel LU factorization program for GPGPUs. In CUDA, which is computational environment for Nvidia GPGPUs, domains are divided into blocks, and multi-threads compute each sub-blocks Simultaneously. In LU factorization program, computation order should be artificially decided due to the data dependence. To resolve the data dependancy, we suggested a parallel LU program for GPGPUs, and also explained parallel reduction algorithm for partial pivoting of LU factorization. We finally present performance analysis to show efficiency of the parallel LU factorization program based on multi-threads on GPGPUs.

GPGPU는 원래 그래픽 계산을 위한 프로세서인 GPU를 일반 계산에 활용하여 저전력으로 고성능의 효율을 보이는 신개념의 계산 장치이다. 본 논문에서는 GPGPU에서 계산을 하기 위한 병렬 LU 분해법의 알고리즘을 제안하였다. Nvidia GPGPU에서 프로그램을 실행하기 위한 CUDA 계산 환경에서는 계산하고자 하는 데이터 도메인을 블록으로 나누고 각 블록을 쓰레드들이 동시에 계산을 하는데, 이 때 블록들의 계산 순서는 무작위로 진행이 되기 때문에 블록간의 데이터 의존성을 가지는 LU 분해 프로그램에서는 결과가 정확하지 않게 된다. 본 논문에서는 병렬 LU 분해법에서 블록간의 계산 순서를 인위적으로 정하는 구현 방식을 제안하며 아울러 LU 분해법의 부분 피벗팅을 계산하기 위한 병렬 reduction 알고리즘도 제안한다. 또한 구현된 병렬프로그램의 성능 분석을 통하여 GPGPU의 멀티 쓰레드 기반으로 고성능으로 계산할 수 있는 병렬프로그램의 효율성을 보인다.

Keywords

References

  1. G. Geist, and C. Romine, 'LU Factorization Algorithms on Distributed-Memory Multiprocessor Architectures.', SIAM J. Sci. Stat. Comput., vol. 9, no. 4, pp. 639-649, July 1988. https://doi.org/10.1137/0909042
  2. G. Laszewski, M. Parashar, A. Mohamed, and G. C. Fox, 'On the Parallelization of Blocked LU Factorization Algorithms on Distributed Memory Architectures.', Proceedings of '92 Conference on Super Computing, 1992.
  3. Y. Kim, 'Performance Comparison of Two Parallel LU Decomposition Algorithms on MasPar Machines.', Journal of IEEE Korea Council, Vol. 2, No. 2, pp. 247-255, 1999.
  4. N. Galoppo, N. Govindraju, M. and D. Henson, 'LU-GPU: Efficient Algorithms for Solving Dense Linear Systems on Graphic Hardware.', Proceedings of 2005 Conference on Super Computing, 2005.
  5. V. Volkov and J. Demmel, 'LU, QR and Cholesky Factorizations using Vector Capabilities of GPUs', LAPACK Working Note 202, 2008.
  6. NVIDIA CORPORATION. 2009. Nvidia Program Guide Version 2.3.1
  7. G. Fox, M. Johnson, G. Lyzenga, S. Otto, J. Salmon, and D. Walker, 'Solving Problems on concurrent Processors Vol. 1.', Prentice Hall, Englewood Cliffs, NJ, 1988.