computation and data migration in an embedded many-core soc january 20 2015 matthieu brieda...
TRANSCRIPT
Computation and data migration in an embedded
many-core SoCJanuary 20 2015
Matthieu [email protected]
Anca [email protected]
Julien [email protected]
1
2
Background
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).
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
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
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
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
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
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
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
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
12
Experimental Setup
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
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