34
CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

CS294-6Reconfigurable Computing

Day 25

Heterogeneous Systems and Interfacing

Page 2: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Previously

• Homogenous model of computational array– single word granularity, depth, interconnect– all post-fabrication programmable

• Understand tradeoffs of each

Page 3: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Today

• Heterogeneous architectures– Why?– How?

• catalog of techniques

• fit in framework

• optimization and mapping

Page 4: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Why?

• Why would we be interested in heterogeneous architecture?– E.g.

Page 5: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Why?

• Applications have a mix of characteristics

• Already accepted– seldom can afford to build most general

(unstructured) array• bit-level, deep context, p=1

– => are picking some structure to exploit

• May be beneficial to have portions of computations optimized for different structure conditions.

Page 6: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Examples

• Processor+FPGA

• Processors or FPGA add– multiplier or MAC unit– FPU– Motion Estimation coprocessor

Page 7: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Optimization Prospect

• Less capacity for composite than either pure– (A1+A2)T12 < A1T1

– (A1+A2)T12 < A2T2

Page 8: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Optimization Prospect Example

• Floating Point– Task: I integer Ops + F FP-ADDs

– Aproc=125M2

– AFPU=40M2

– I cycles / FP Ops = 60– 125(I+60F) 165(I+F)

• (7500-165)/40 = I/F

• 183 I/F

Page 9: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

How?

• Design issues:– Interconnect

• space and time

– Control

– Instructions• configuration path and

control

• Mapping

• Cost/Benefits:– Costs

• Area, Power

– Performance• Bandwidth, latency

Page 10: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Interconnect

• Bus (degenerate network)

• Memory (shared retiming resource)

• RF/Coproc (traditional processor inter.)

• Network

Page 11: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Interconnect: Bus

• Minimal physical network– shared with memory and/or other peripherals– 10s-100s of cycles away from processor (fpga)– low->moderate bandwidth– can handle multiple, different functional units

• but serial bottleneck of bus prevents simultaneous communication among devices

Page 12: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Interconnect: Bus Example

• XC6200

Page 13: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Interconnect: Memory

• Use memory (retiming) block to buffer data between heterogeneous regions– DMA (usually implies shared bus)– FIFO– dual port or shared RAM

• decoupled, moderate latency (10-100cycles)

• moderate bandwidth

Page 14: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Interconnect: Memory Example

• PAM, SPLASH

Page 15: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Interconnect: RF/Coproc

• Coupled directly to processor datapath– low latency (1-2 cycles)– moderately high bandwidth

• limited by RF ports and control

Page 16: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Interconnect: RF/Coproc Examples

• GARP, Chimaera– (more on this case Thursday)

Page 17: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Interconnect: Network

• Unify spatial network composing various heterogeneous components– high bandwidth– latency vary with distance– support simultaneous operate and data transfer– potentially dominant cost

• Ainterconnect > Afunction

– Granularity question• coarse (large blocks of each type)• fine (interleaved)

Page 18: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Interconnect: Network Coarse

• Cheops, Pleiades

Page 19: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

HSRA Heterogeneous Blocks

Page 20: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Interconnect: NetworkCoarse vs. Fine

• Multiplier/FPGA example

Page 21: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Interconnect: NetworkCoarse vs. Fine

• Fine– possibly share interconnect

– locality

– uniform tiling

– not shared• may get concentrations of

heavy/no use• interconnect limit use as

independent resources

– ratio less flexible?

– More difficult design

• Coarse– flexible ratio– easier to keep dense

homogeneous blocks– requires own interconnect – doesn’t disrupt base

layout(s)– non-local route to/from

• more/longer wires

– boundaries in net

Page 22: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Admin

• For POWER: Update on– rcore simulation– HSRA energy– Jsim size problems?

• Fix in works

Page 23: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Control

• As before– How many controllers?– How many pinsts slaved off of each?

• Common classes:– Single Controller / Lock-step– Decoupled, datastream– Autonomous MIMD

Page 24: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Control: Lockstep

• Master controller (usually processor)– issues instruction (instruction tag)

• every cycle

• explicitly when device should operate

– Single thread of control• everything known to be in synch

– Idle while processor doing other tasks– Ex. VLIW (TriMedia), PRISC, GARP

Page 25: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Control: Data Stream

• Configure then run on data decoupled from control processor– run parallel with processor

• processor run orthogonal tasks• maybe several simultaneous tasks running on spatial

– unit not typically fed by processor directly– need to synchronize data transfer and operation

• polling, interrupt, semaphore

– Ex. Cheops, PADDI-2, Pleiades, SPLASH

Page 26: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Control: Autonomous (MIMD)

• Multiple (potential) control processors– not necessarily slaved– distribute control– more care in synchronization– Ex. Floe (MagicEight)

Page 27: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

HSRA Multi-Hetero

• Coupling– unifying networks

• Balance – sequential/spatial

– control units w/ management task

Page 28: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Configuration

• Share interface bus– config and data

• XC6200, PAM, SPLASH

– config and memory path

• GARP

• Separate path / network– VLIW, Pleiades

• Explicit– XC6200, PAM,

SPLASH, ….

• Implicit– GARP/PRISC

Page 29: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Mapping

• Mapping– often option on where runs– must sort out what goes where

• faster in one resource?

• …but limited number of each resource

Page 30: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Mapping: Limited Resource

• What runs on faster, limited resource?– E.g. Tim’s C extraction last-time– General:

• what allocated to resource

• when reconfigure

• N candidate ops -> each choice

– Greedy• Break into temporal regions

– local working set and points of reconfiguration

• while resource available– add op offering most benefit

Page 31: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Mapping: Spatial Choice

• Different kinds of resources – (e.g. LUTs, multipliers)

• Multiple resources can solve same problem

• Limited number of each resource

• Match users with resources

Page 32: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Mapping: Bipartite Partitioning

• =>Bipartite matching– deal with unit resource consumption– also w/ regional/interconnect constraints– not directly deal with performance…

• Postpass(?) allocate – faster resources to critical path

• ? N of R1 vs. M of R2

Example/Details: Liu FPGA98

Page 33: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Mapping

• More common:– can solve with:

• 12A’s and 2B’s or

• 4 A’s and 4 B’s

– common need• 4 A’s and 2 B’s

– choice• 8 A’s vs. 2 B’s

Page 34: CS294-6 Reconfigurable Computing Day 25 Heterogeneous Systems and Interfacing

Highlights

• Fit into existing framework– not that much new here– new issue: who and how share resources

• Issues: interconnect, control

• + density when hit balance

• - efficiency when balance mismatch

• - harder mapping (resource sharing)