16
Task Scheduling Strategies to Mitigate Hardware Variability in Embedded Shared Memory Clusters Abbas Rahimi Rajesh K. Gupta UC San Diego Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Embed Size (px)

Citation preview

Page 1: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Task Scheduling Strategies to Mitigate Hardware

Variability in Embedded Shared Memory Clusters

Abbas Rahimi

Rajesh K.

Gupta

UC San Diego

Andrea

Marongiu Luca

Benini

ETH Zurich

Daniele Cesarini

University of

Bologna

Page 2: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Key Idea

2

Time or part

Co

st

ApplicationApplication ApplicationApplication

OpenMP Runtime

Reduced Cost

Efficient Runtime

Efficient error recovery in runtime software

Page 3: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Outline

• Background about Variability• Related Work• Contributions• Target Architecture Platform• Online Meta-data Characterization • Scheduling

• Centralized• Distributed

• Experimental Results• Summary

3

Page 4: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Ever-increasing Variability in Semiconductor

4

Technology Generation (nm)

Perf

orm

ance

130 90 65 45 32 22 post-silicon

design for worst case

scaling

~20× performance variation in near threshold!Guardbanding leads to loss of operational efficiency!

< 10%

> 50% [ITRS]

Guard-banding

Page 5: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Reduced Guardband Causes Timing Error

5

Reducing guardband

Timing error

Costly error recovery 3×N recovery cycles per error for an in-order pipeline! N = number of stages

Grand challenge: low-cost and scalable variability-tolerance

[Bowman, JSSC’09]

[Bowman, JSSC’11]

Page 6: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Related Work

6

HW

SW

Scheduler/ Allocator

Work unitsTasks

SequenceISA

ISA vulnerability [DATE’12]

Improved code transformation [ASPLOS’11, TC’13]

Coarse-grained task/thread scheduling [JSSC’11]Task-level tolerance [DATE’13]

Work-unit tolerance [JETCAS’14]

Instruction replay [JSSC’11]

OpenMP captures variations in various parallel software context!

Page 7: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Contributions

I. Reducing the cost of recovery by exposing errors to runtime layer of OpenMP

II. Online meta-data characterization to capture variation (per core) and workload Task execution cost

III. Scheduling policies• Centralized

• Distributed

7

Page 8: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Target Architecture Platform

8

CPU

MMU

L2 $

Coherent interconnec

t

L1 $

Interconnect

cluster

L2 mem

IO MMU

L1 mem

… Cluster L1 mem

NI

Main memory

Host Cluster-based many-core

Core 0

L1 I$

… Core 15L1 I$

NI

Low-latency Interconnect

BA

NK

1

BA

NK

2

BA

NK

3

2…DMA

Shared memory cluster

L1 DATA mem (TCDM)

Sta

ge

1

Sta

ge

2

Sta

ge

7

Core

ΣI

EDAC

ΣIR

Shared memory cluster:• 16 32-bit in-order RISC processors• Shared L1 tightly-coupled data memory (TCDM)• Each core uses EDAC with multiple-issue instruction replay

Page 9: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Online Meta-data Characterization

9

ApplicationX:#pragma omp parallel { #pragma omp master { for (int t = 0; t < Tn; t++) #pragma omp task run_add (t, TASK_SIZE); #pragma omp taskwait

for (int t = 0; t < Tn; t++) #pragma omp task run_shift (t, TASK_SIZE); #pragma omp taskwait

for (int t = 0; t < Tn; t++) #pragma omp task run_mul (t, TASK_SIZE); #pragma omp taskwait

for (int t = 0; t < Tn; t++) #pragma omp task run_div (t, TASK_SIZE); #pragma omp taskwait }}

Meta-data Lookup Table for ApplicationX

Core 1 Core 2 ...

Task type1 Task type 1  Task type 2 Task type 2  Task type 3 Task type 3  Task type 4 Task type 4  

Core 0

L1 I$

… Core 15L1 I$

NI

Low-latency Interconnect

BA

NK

1

BA

NK

2

BA

NK

3

2…DMA

Shared memory cluster

L1 DATA mem (TCDM)

Sta

ge

1

Sta

ge

2

Sta

ge

7

Core

EDAC

ΣIR

ΣI

Meta-data +

TEC (taski, corej) = #I (taski, corej) + #RI (taski, corej)

Page 10: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Centralized Variability- and Load-Aware Scheduler (CVLS)

10

Core 3Core 2Core 1

Core 1

Core 2

Core 3

Core 4

Core 5

...Core 15

Queue 2Descriptor

Queue 3Descriptor

Queue 4Descriptor

Queue 5Descriptor

...Queue 15Descriptor

Task type 1Task type 2Task type n

Task type 1Task type 2Task type n

Task type 1Task type 2Task type n

Task type 1Task type 2Task type n

Task type 1Task type 2Task type n

Task type 1Task type 2Task type n

Task type 1Task type 2Task type n

MasterCore 0

Core 4 Core 5 ... Core 15

Queue 1Descriptor

Distributed Queues

TEC Table

• For a taski, CVLS assigns a corej s.t. TEC (taski, corej) + loadj is minimum across the cluster

• CVLS is a centralized and executed by one master thread

Page 11: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Limitations of Centralized Queue

11

0.4

0.5

0.6

0.7

0.8

0.9

1.0

1.1

1.2

19 247 493 673 858 1912 2816 3692 5692 9518

Nor

mal

ized

exe

cutio

n tim

e

Average task size (dynamic instruction count)

CVLS

• CVLS with single master thread consumes more cycles to find a suitable core for task assignment compared to RRS

• Solution: reduce overheads via distributed task queues (private task queue for each core)

15% slower

Page 12: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Distributed Variability- and Load-Aware Scheduler (DVLS)

12

Queue 2Descriptor

Queue 3Descriptor

Queue 4Descriptor

Queue 5Descriptor

...Queue 15Descriptor

Queue 1Descriptor

Core1

Core 2

Core3

Core 4

Core5 ...

Core 15

DistributedQueues

MasterCore 0

Cores

task TYPE 1task TYPE 2task TYPE N

task TYPE 1task TYPE 2task TYPE N

task TYPE 1task TYPE 2task TYPE N

task TYPE 1task TYPE 2task TYPE N

task TYPE 1task TYPE 2task TYPE N

task TYPE 1task TYPE 2task TYPE N

task TYPE 1task TYPE 2task TYPE N

CORE 1 CORE 2 CORE 3 CORE 4 CORE 5 ... CORE 15TEC(taski,corej) lookup table

Decoupled Queue

LoadQ1-Q15

• DVLS shares the computational load of CVLS from one master to multiple slave threads1. Master thread simply pushes tasks in a decoupled queue 2. Slave threads pick up a task from decoupled queue and push to best-fitted

distributed queue

Page 13: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Benefits of Decupling and Distributed Queues

13

0.4

0.5

0.6

0.7

0.8

0.9

1.0

1.1

1.2

19 247 493 673 858 1912 2816 3692 5692 9518

Nor

mal

ized

exe

cutio

n tim

e

Average task size (dynamic instruction count)

CVLS

DVLS

This “decoupling” between queues: 1. Master thread proceeds fast to push tasks 2. The rest of threads cooperatively will schedule tasks among themselves full utilization

44% faster

4% faster

Page 14: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Experimental Setup

• Each core optimized during P&R with a target frequency of 850MHz.• @ Sign-off: die-to-die and within-die process variations are injected

using PrimeTime VX and variation-aware 45nm TSMC libs (derived from PCA)

• We integrated ILV models into SystemC-based virtual platform• Eight computational-intensive kernels accelerated by OpenMP

14

Core 0

L1 I$

… Core 15L1 I$

NI

Low-latency Interconnect

BA

NK

1

BA

NK

2

BA

NK

3

2…DMA

L1 DATA mem (TCDM)

C0847

C4847

C8

909C12

901C1

893C5

909C9

855C13820

C2847

C6

877C10826

C14826

C3

901C7

870C11

917C15

862

Process Variation

Six cores (C0, C2, C4, C10, C13, C14) cannot meet the design time target frequency of 850 MHz

Page 15: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

Execution Time and Energy Saving

15

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

Nor

mal

ized

ene

rgy

CVLS

DVLS

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

Nor

mal

ized

exe

cutio

n tim

e

CVLS

DVLS

DVLS upto 47% (33% on average) faster execution than RRS

CVLS upto 29% (4% on average) faster execution than RRS

DVLS upto 44% (30% on average) energy saving compared to RRS

CVLS upto 38% (17% on average) energy saving compared to RRS

Page 16: Andrea Marongiu Luca Benini ETH Zurich Daniele Cesarini University of Bologna

SummaryOur OpenMP reduces cost of error correction in software (proper task-to-core assignment in presence of errors)• Introspective task monitoring to characterize online meta-data• Capturing both hardware variability and workload

Centralized/Distributed dispatching • Decoupling and distributed tasking queues• All threads cooperatively will schedule tasks among themselves

Distributed scheduling achieves on average 30% energy saving, and 33% performance improvement compared to RRS.

16