Browse

GPGPU 프로그래밍을 위한 병렬화 및 최적화 기법과 NPB suite의 BT, LU, IS 가속 : Parallelization and optimization techniques for GPGPU programming and acceleration of BT, LU, and IS in the NPB suite

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors
도영동
Advisor
이재진
Major
공과대학 컴퓨터공학부
Issue Date
2019-02
Publisher
서울대학교 대학원
Description
학위논문 (석사)-- 서울대학교 대학원 : 공과대학 컴퓨터공학부, 2019. 2. 이재진.
Abstract
Recently, General-Purpose computing on Graphics Processing Units using GPU as an accelerator has been making big changes on various fields. For example, deep learning technology made a big progress on artificial intelligence field based on high computational performance of GPU. Started from this, many other fields have tried to exploit the power of GPU on their fields. However, the GPUs architecture is widely differ from the CPUs, so many developers can not get expected speedup easily on acceleration of their applications using GPU. In order to address these difficulties, this paper proposes the parallelization and optimization techniques for GPGPU programming.
The five types of the parallelization and optimizations techniques are proposed. First, the parallelization techniques are introduced to fully utilize the massive computation units of GPU. Next, this paper introduces the optimization techniques based on the GPU architecture to minimize memory access time, which is the main bottleneck when GPU is fully-utilized. Then, the optimization technique for data transfer overhead, inherent overhead of using GPU, and optimizing synchronization overhead techniques are presented. Lastly introduced techniques handle how to overcome the memory capacity limitation of the GPU.
For justification of the proposed techniques, they are applied to the original benchmark suite of NAS Parallel Benchmark suite, which is traditional and representative parallel benchmark suite of Computational Fluid Dynamics. The implementation achieves 120x speedup at most, and supports the biggest problem size, E class, in the first place. Also, it gets higher speed up on most cases than the most similar work.
By introducing the parallelization and optimization techniques for GPGPU programming, this paper mitigates many developers difficulties on accelerating their applications. In addition, the OpenCL implementation of NAS Parallel Benchmark suite, which supports big enough problem size to evaluate the GPGPU performance, is another contribution of this paper.
GPU를 가속기로 활용하는 기술인 General-Purpose computing on Graphics Processing Units(GPGPU)는 최근 사회 전반에 걸쳐 큰 변화를 일으키고 있다. 대표적인 예로, 딥 러닝 기술은 GPGPU를 활용하여 인공지능 분야의 새로의 길을 열었다. 이를 시작으로 많은 분야에서 GPGPU를 이용하여 새로운 도전을 시도하려는 움직임이 나타났다. 많은 개발자들이 GPGPU를 이용하여 가속을 진행하고 있지만, GPU의 구조는 일반적인 CPU의 구조와 달라 기대만큼 높은 성능을 얻지 못하고 있다. 본 논문은 이러한 어려움을 해소하기 위해 GPU를 충분히 활용하기 위한 병렬화 및 최적화 방법들을 소개한다.
제시하는 병렬화 및 최적화 방법들은 크게 다섯 가지 부류로 나뉜다. 우선, GPU의 많은 계산 unit들을 최대한 병렬화하는 방법들을 소개한다. 다음으로는 GPU 계산 unit을 충분히 활용하는 경우, 주로 병목이 되는 부분인 메모리 접근 시간을 줄이는 방법을 GPU 구조에 근거하여 최적화하는 방법들을 소개한다. 그 다음으로는 GPU를 사용하여 발생하는 overhead인 데이터 전송에 대한 최적화 방법과 동기화 overhead를 줄이는 최적화 기법들을 소개한다. 마지막으로는, 전체 연산에 필요한 데이터의 양이 GPU의 메모리보다 많은 경우에 이를 극복할 수 있는 최적화 기법들에 대해 다룬다.
소개한 방법들의 실효성을 검증하기 위해 본 논문은 전통적이고 대표적인 Computational Fluid Dynamics(CFD) 벤치마크인 NAS Parallel Benchmark(NPB) suite 중 original benchmark suite에 제안한 방법들을 적용하였다. 그 결과 최대 120배 정도의 성능향상을 얻었으며, 처음으로 NPB suite의 original benchmark suite의 응용 중 가장 문제 크기가 큰 E 클래스에 대하여 GPU를 이용한 가속에 성공하였다. 또한, 기존의 다른 연구보다 높은 성능향상을 얻었다.
본 논문은 GPU에 적용할 수 있는 GPGPU 프로그래밍에 대한 최적화 방법들을 소개하여 다른 개발자들이 충분히 이용할 수 있도록 하는 것이 주된 목표이고, GPGPU 성능측정을 위한 충분한 문제 크기를 지원하는 벤치마크를 개발하는 것 또한 큰 기여점이라 말할 수 있다.
Language
kor
URI
https://hdl.handle.net/10371/150793
Files in This Item:
Appears in Collections:
College of Engineering/Engineering Practice School (공과대학/대학원)Dept. of Computer Science and Engineering (컴퓨터공학부)Theses (Master's Degree_컴퓨터공학부)
  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Browse