computation and data migration in an embedded many-core soc january 20 2015 matthieu brieda...

14
Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA [email protected] Anca MOLNOS [email protected] Julien MOTTIN [email protected] 1

Upload: cornelius-gilbert-lindsey

Post on 04-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

Computation and data migration in an embedded

many-core SoCJanuary 20 2015

Matthieu [email protected]

Anca [email protected]

Julien [email protected]

1

Page 2: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

2

Background

Page 3: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

3

Background

Simulated Heat map of Sthorm Platform before (left) and after (right) activity migration

Becher, M., Bensalem, S., & Pacull, F. (2014, February). Icy-Core Framework for Simulating Thermal Effects of Task Migration Algorithms on Multi-and Many-Core Architectures. In ICONS 2014, The Ninth International Conference on Systems (pp. 12-17).

Page 4: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

4

Work context and objective

Implement computation and data migration to enable thermal

mitigation

Many-core accelerator

PE PE PE PE

PE PE PE PE

PE PE PE PE

Local Memory Local Memory

Local Memory

Cluster 3 Cluster 2

Cluster 0 Cluster 1

Legend

Processing Element

Memory

NoC routerHOST

GlobalMemory

PE PE PE PE

Local Memory

Page 5: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

5

Problems1. Task migration (between iteration)

Remote data access: performance loss

Many-core accelerator

PE PE PE PE

PE PE PE PE

PE PE PE PE

Cluster 3 Cluster 2

Cluster 0 Cluster 1

PE PE PE PE

3

T Local data

access

T

MigrationRemote

data access

Legend

Task

Data

T

3

Page 6: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

Problems2. Data migration

Pointer invalidation: application error

Address space

Cluster 1

Cluster 0

Cluster 2

Cluster 3

0xFFFFFFF

0x00000000

T code:int* pointer = malloc(4);*p = 3;…int a = *p;

Addressmapping

Many-core accelerator

PE PE PE PE

PE PE PE PE

PE PE PE PE

Cluster 3 Cluster 2

Cluster 0 Cluster 1

PE PE PE PE

0x31415927

3

3

Migration

6

T

Page 7: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

7

Solution overview

Host Many-core accelerator

Application

FrameworkDecision

policy(e.g., temperature mitigation, …)

allocators, communication API, HAL OS

Contributions

Goal

Interface

Blocks

Application building interface

Task and data mapping interface

3. Memory translation mecanism

2. Migration protocol

1. Application management

Page 8: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

Application building interface

Task• ID• Init() executed once• Fire() executed iteratively• End() executed once• List of data ID

Data• ID• Status shared/private• Size

Application

8

Application control task

- Start/stop app

Application Control Task

• Inter-task shared data• Inter-iteration shared data

Page 9: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

9

Run-time app initialization

Application control

task

Framework

Decision policy

1. Application Management

Shared memory allocation

Private memory allocation

Task creation and start

Unmapped task and data

Mapped task and data

Localtables

Legend

Data flow

Control flow

App description

PE and memory

attribution

Initialization

Page 10: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

Migration protocol

fire()

Destination controller

fire()

source PE

destination PE

Source Controller

Legend

Framework function

User function Trigger

T

P

T

1

234

5

P

From Cluster 1 To Cluster 3

Paused

10

Resume

2. Pause task

3. Data copy

1. Allocate new memory

4. Free old memory

5. resume task

Page 11: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

11

Translation mecanism

data ID, Task ID

address

2. task_get_addess

Data ID, Task ID => address

fire(){int *pointer = task_get_addess(dataID);if(iteration==1) *pointer = 3;if(iteration==2) int a = * pointer; }

Local table

• framework: – Provide address virtualization in software– Update the translation at data migration

• user:– Accesses data based on IDs– Never allocates memory directly

=> Solve the pointer invalidation problem

Square 0

Page 12: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

12

Experimental Setup

Page 13: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

13

Experimental Resultsstep Duration

(cycles) dependency

1 18661 # of Data

2 3166 Constant

3 2996 Data size

4 9968 # of Data

5 1536 # of Data

Sum 36327Frozen

task 14500

Total Migration 62807

fire()

fire()

source PE

destination PE

Source Controller

Paused

Resume

Destination controller

2. Pause task

3. Data copy

1. Allocate new memory

4. Free old memory

5. resume task Legend

Framework function

User function Trigger

Total Migration duration

Frozen task Duration

Page 14: Computation and data migration in an embedded many-core SoC January 20 2015 Matthieu BRIEDA matthieu.brieda@cea.fr Anca MOLNOS anca.molnos@cea.fr Julien

ConclusionDemonstration of a proof-of-concept task and data

migration on a many-core SoC at enabling thermal mitigation at a reasonable cost.

&Questions

14