Publications

Detailed Information

매니코어 가속기를 위한 하이브리드 자원관리 소프트웨어 플랫폼 : Software Platform for Hybrid Resource Management of Many-core Accelerators

DC Field Value Language
dc.contributor.advisor하순회-
dc.contributor.author김태영-
dc.date.accessioned2018-11-12T01:02:46Z-
dc.date.available2018-11-12T01:02:46Z-
dc.date.issued2018-08-
dc.identifier.other000000153516-
dc.identifier.urihttps://hdl.handle.net/10371/143383-
dc.description학위논문 (박사)-- 서울대학교 대학원 : 공과대학 전기·컴퓨터공학부, 2018. 8. 하순회.-
dc.description.abstract전력과 열의 문제로 한 프로세서의 속도를 증가시키는 것이 한계에 다다르게 되면서, 낮은 주파수로 동작하는 많은 수의 코어를 하나의 칩에 집적시킨 매니코어 가속기는 이제 필수적인 컴퓨팅 자원이 되었다. 최근에는 높은 연산량을 요구하는 기계학습과 같은 응용들이 다양한 곳에서 사용되면서 임베디드 시스템에서의 매니코어 가속기의 활용 또한 점차 증가하고 있다. 하지만 임베디드 시스템은 범용 컴퓨팅 시스템과 비교해볼 때 일반적으로 다른 특징을 가지고 있다. 낮은 컴퓨팅 파워, 운영체제의 부재, 파워 사용량의 제한 등의 제약 사항이 충분히 고려되어야 한다. 또한 임베디드 시스템에서 수행되는 응용의 경우 일반적으로 처리량 혹은 수행시간의 제약을 가진다. 임베디드 시스템의 자원을 효율적으로 관리하기 위해서는 이러한 점들을 반드시 고려해야 한다.



매니코어 가속기를 효율적으로 사용하기 위해서는 여러 개의 응용이 동시에 매니코어 가속기의 자원을 공유하며 수행될 수 있어야 한다. 하지만 임베디드 시스템의 여러 제약 사항들을 고려해볼 때, 여러 개의 응용에 효율적으로 자원을 분배하는 것은 매우 어려운 문제이다. 시스템의 상태는 다양한 이유로 동적으로 변할 수 있다. 수행 중인 응용의 작업량 혹은 QoS 요구량 등이 갑자기 바뀔 수 있다. 매니코어 가속기 상에서 수행되는 응용의 조합 또한 지속적으로 변할 수 있다. 게다가 다양한 매니코어 가속기의 서로 다른 아키텍처 특성은 이 문제를 더욱 더 복잡하게 만든다.



시스템 상태의 변화에 적응하며 매니코어 가속기의 자원을 효율적으로 관리하기 위해서 다양한 자원 관리 기법들이 연구되었다. 하지만 임베디드 시스템의 특징을 고려한 자원관리의 관점에서 볼 때 한계들이 존재한다. 어떤 기법들은 QoS를 보장하지 못한다. 특정 아키텍처 혹은 운영체제를 가정하여 설계가 되었거나, 제한된 자원 할당 기법만을 지원을 하기도 한다. 한 번에 하나의 응용만이 수행될 수 있는 연구들도 있다. 이러한 문제를 해결하기 위하여 본 논문에서는 임베디드 매니코어 가속기를 위한 하이브리드 자원 관리 기법을 사용한 소프트웨어 플랫폼을 제안한다.



먼저 다양한 아키텍처의 매니코어 가속기를 지원하는 소프트웨어 플랫폼을 소개한다. 제안하는 플랫폼은 dataflow 형태의 응용을 입력으로 가정한다. 이를 기반으로 Design-time에 각 응용을 분석하여 최적의 맵핑을 만들어두고, run-time에 이전에 만들어둔 맵핑을 사용하여 동적으로 자원을 재할당하는 하이브리드 자원 할당 기법을 사용한다. 하이브리드 자원 할당 기법을 통해서 여러 응용이 동시에 수행될 때 효율적으로 자원을 배분해주며, 시스템 상태의 변화가 일어났을 때에도 적응적으로 자원을 재할당 해줄 수 있다. 최소한의 아키텍처 가정을 가지며, 특정 운영체제 및 프로그래밍 언어 등의 지원을 고려하지 않기 때문에 다양한 매니코어 가속기 상에서 수행이 가능하다. 제안하는 플랫폼은 공유 메모리 기반의 Intel Xeon Phi 아키텍쳐와 분산 메모리 기반의 Epiphany-like NoC virtual prototype 상에 구현되었다.



그 다음으로 제안하는 소프트웨어 플랫폼을 클러스터 기반의 매니코어 가속기를 지원하도록 확장한다. 클러스터 기반의 매니코어 가속기는 기존에 사용되던 평면적으로 구성되어 있는 매니코어 가속기와는 크게 다른 자원 관리 기법을 필요로 한다. 하나의 자원 관리자가 시스템 전체의 자원을 관리하던 방식으로는 효율적인 관리가 불가능하다. 계층적인 역할을 가지는 자원 관리자들이 시스템의 전반에 분산되어 매니코어 가속기의 자원을 관리하는 리소스 관리 기법을 제안한다. 확장된 리소스 관리 기법은 최신의 클러스터 기반 매니코어 가속기인 Kalray MPPA processor 상에 구현되었다. 클러스터 기반의 가속기에서는 각 응용에 할당할 자원의 양을 정하는데서 멈추지 않고, 어느 클러스터의 자원을 어느 응용에 할당할 것인지, 하나의 클러스터를 여러 응용이 공유할 것인지 등 더욱 더 큰 문제 공간을 탐색해야 한다. 또한 클러스터 기반의 매니코어 가속기에서의 다양한 성능 지표들은 서로 상충관계를 가진다. 예를 들어 코어 사용률을 높이다 보면 메모리 사용률이 낮아질 수 있으며 통신 부하 또한 커질 수 있다. 본 논문에서는 Kalray MPPA processor를 위해 정밀하게 설계한 성능 분석 모델을 이용해서 각 지표들이 어떻게 전체 시스템의 성능에 영향을 미치며 어떠한 상충 관계를 가지는지 넓은 문제 공간을 탐색해서 분석한다. 그리고 성능 분석 모델을 이용하여 효율적인 자원 할당을 할 수 있는 기법이 소개될 것이다.



마지막으로 제안하는 소프트웨어 플랫폼의 프로그래밍 모델을 OpenCL 응용을 지원하도록 확장한다. 이를 통해 dataflow 응용 이외에도 몇가지 제약 사항을 만족하는 OpenCL 응용들을 다양한 매니코어 가속기를 통해 수행할 수 있게 될 것이다.



실험 결과는 제안하는 플랫폼이 다양한 임베디드 시스템의 요구사항들 - QoS 보장, 시스템 상태의 변화에 대응 - 등을 낮은 자원 관리 부하로 달성할 수 있음을 보여준다.
-
dc.description.tableofcontentsAbstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i

Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix

List of Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x



Chapter 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 Dissertation Organization . . . . . . . . . . . . . . . . . . . . . . . . . . 5



Chapter 2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1 Task Graph Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 Runtime Resource Management . . . . . . . . . . . . . . . . . . . . . . 8

2.2.1 Mapping Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.2 Runtime Manager Control Scheme . . . . . . . . . . . . . . . . . 10

2.2.3 Previous Researches . . . . . . . . . . . . . . . . . . . . . . . . 12



Chapter 3 Baseline Resource Management Platform . . . . . . . . . . . . . . 17

3.1 Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1.1 Architecture Model . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.1.2 Application Model . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.1.3 Resource Management Scheme . . . . . . . . . . . . . . . . . . 20

3.1.4 Problem Definition . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.3 Design-Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3.1 Front-end Programming Module . . . . . . . . . . . . . . . . . . 24

3.3.2 Side Information for Hybrid Resource Management . . . . . . . . 26

3.4 SoPHy+ RUN-TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.4.1 Overall Resource Management Flow . . . . . . . . . . . . . . . . 28

3.4.2 Host Interface Module . . . . . . . . . . . . . . . . . . . . . . . 30

3.4.3 Communication Interface Module . . . . . . . . . . . . . . . . . 31

3.4.4 Memory Management Module . . . . . . . . . . . . . . . . . . . 31

3.4.5 Task Scheduling/Mapping Module . . . . . . . . . . . . . . . . . 32

3.4.6 Slave Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.5 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.5.1 Host Interface and Task Dispatching . . . . . . . . . . . . . . . . 35

3.5.2 Master and Slave Managers . . . . . . . . . . . . . . . . . . . . 35

3.5.3 Memory Management Module . . . . . . . . . . . . . . . . . . . 37

3.5.4 Communication Interface Module . . . . . . . . . . . . . . . . . 38

3.5.5 Task Scheduling/Mapping . . . . . . . . . . . . . . . . . . . . . 38

3.6 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.6.1 Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.6.2 Evaluation on Xeon Phi . . . . . . . . . . . . . . . . . . . . . . 41

3.6.3 Evaluation on a NoC Virtual Prototype . . . . . . . . . . . . . . 44

3.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47



Chapter 4 Hierarchical and Distributed Resource Management . . . . . . . . 49

4.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.2 Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.2.1 Application Model . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.2.2 Problem Definition . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.2.3 Existing resource management of the MPPA processor . . . . . . 54

4.3 Proposed Resource Management Scheme . . . . . . . . . . . . . . . . . 55

4.3.1 Overall Structure . . . . . . . . . . . . . . . . . . . . . . . . . . 55

4.3.2 Resource Management Flow . . . . . . . . . . . . . . . . . . . . 56

4.3.3 Inter-Cluster Communication . . . . . . . . . . . . . . . . . . . 58

4.4 Performance Estimation Model . . . . . . . . . . . . . . . . . . . . . . . 59

4.5 Runtime Mapping Technique . . . . . . . . . . . . . . . . . . . . . . . . 64

4.5.1 Resource-aware Mapping . . . . . . . . . . . . . . . . . . . . . 66

4.5.2 Model-based Mapping . . . . . . . . . . . . . . . . . . . . . . . 69

4.5.3 Runtime Remapping . . . . . . . . . . . . . . . . . . . . . . . . 71

4.6 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4.6.1 Experiment Setup . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4.6.2 Comparison of Run-time Mapping Schemes . . . . . . . . . . . . 74

4.6.3 Performance Estimation . . . . . . . . . . . . . . . . . . . . . . 76

4.6.4 Analysis of Run-time Overhead . . . . . . . . . . . . . . . . . . 77

4.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78



Chapter 5 Programming Model Extension . . . . . . . . . . . . . . . . . . . . 80

5.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.2 Background : SnuCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.3 Proposed Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5.3.1 Overall Structure . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5.3.2 Execution Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.3.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.3.4 Index Translation . . . . . . . . . . . . . . . . . . . . . . . . . . 86

5.3.5 Restriction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86



Chapter 6 Conclusion and Future Work . . . . . . . . . . . . . . . . . . . . . 88



Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

요 약 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
-
dc.language.isoen-
dc.publisher서울대학교 대학원-
dc.subject.ddc621.3-
dc.title매니코어 가속기를 위한 하이브리드 자원관리 소프트웨어 플랫폼-
dc.title.alternativeSoftware Platform for Hybrid Resource Management of Many-core Accelerators-
dc.typeThesis-
dc.contributor.AlternativeAuthorTaeyoung Kim-
dc.description.degreeDoctor-
dc.contributor.affiliation공과대학 전기·컴퓨터공학부-
dc.date.awarded2018-08-
Appears in Collections:
Files in This Item:

Altmetrics

Item View & Download Count

  • mendeley

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

Share