computing in space - university of warwick · spatial computing paradigms • • • • vs simd...

61
Computing in Space

Upload: others

Post on 24-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Computing in Space

Page 2: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Introduction

Page 3: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Familiar Visual Aid

Page 4: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

FPGA Industry

There are two major players in the FPGA market

Page 5: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Where are FPGAs mostly used

Page 6: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

So whats new?

Page 7: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Spatial Computing Paradigms

Page 8: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Vs SIMD

Page 9: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Control-flow Machine

Page 10: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Simple CPU Pipeline

Page 11: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Control-flow Computing example:IBM POWER 8, 12 cores @ 4 GHz

Page 12: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Spatial Computing Machine

Page 13: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Control Flow versus Data Flow

•–––

•–

––

Page 14: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Control Flow versus Data Flow

Which one would you rather do?

CPUs FPGAs

Page 15: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Data Flow specific properties

•––––

•–––

Page 16: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

•• ➔

• ➔

• ➔

• ➔

Dataflow Computing

Page 17: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Converting Simple Expression

Page 18: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Flowing elements

Page 19: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Flowing elements

Page 20: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Flowing elements

Page 21: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Flowing elements

Page 22: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Flowing elements

Page 23: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Flowing elements

Page 24: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Flowing elements

Page 25: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Flowing elements

Page 26: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Flowing elements

Page 27: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Flowing elements

Page 28: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

public class MyKernel extends Kernel {

public MyKernel (KernelParameters parameters) {

super(parameters);

DFEVar x = io.input("x", dfeInt(32));

DFEVar result = x * x + 30;

io.output("y", result, dfeInt(32));}

}

The Full Kernel

Page 29: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Enabling large scale dataflow designs

Page 30: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Generating data on chip

for (int i = 0; i < N; i++) {q[i] = p[i] + i;

}

DFEVar p = io.input(“p”, dfeInt(32));DFEVar i = io.input(“i”, dfeInt(32));

DFEVar q = p + i;

io.output(“q”, q, dfeInt(32));

Page 31: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

•–

Generating data on chip

DFEVar p = io.input(“p”, dfeInt(32));DFEVar i = control.count.simpleCounter(32, N);

DFEVar q = p + i;

io.output(“q”, q, dfeInt(32));

••

Page 32: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

––

Stream Offsets

Page 33: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

•→

Stream Offsets

Page 34: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Moving Average in MaxCompiler

Page 35: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Kernel Execution

Page 36: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Kernel Execution

Page 37: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Kernel Execution

Page 38: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Kernel Execution

Page 39: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Kernel Execution

Page 40: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Kernel Execution

Page 41: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Boundary Cases

Page 42: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

More Complex Moving Average

Page 43: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Kernel Handling Boundary Cases

Page 44: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Starting on Scientific Computing

●●

Page 45: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

for (i = 0; ; i += 1) { float d = input[i]; float v = 2.91 – 2.0*d; for (iter=0; iter < 4; iter += 1)

v = v * (2.0 - d * v); output[i] = v;}

Loop Unrolling in space with Dependence

Page 46: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

float d = input; float v = 2.91 – 2.0*d; for (iter=0; iter < 4; iter += 1) v = v * (2.0 - d * v); output = v;

Loop Unrolling with Dependence

••

Page 47: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Variable Length Loopint d = input;int shift = 0;while (d != 0 && ((d & 0x3FF) != 0x291)) { shift = shift + 1; d = d >> 1;}output = shift;

// converted to fixed lengthint d = input;int shift = 0;bool finished = false;for (int i = 0; i < 22; ++i) { bool condition = (d != 0 && ((d & 0x3FF) != 0x291)); finished = condition ? true : finished; // loop-carried shift = finished ? shift : shift + 1; // dependencies d = d >> 1;}output = shift;

•••

Page 48: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Variable Length Loop – in hardwareint d = input;int shift = 0;bool finished = false;for (int i = 0; i < 22; ++i) { bool condition=(d!=0&&((d&0x3FF)!=0x291)); finished = condition ? true : finished; shift = finished ? shift : shift + 1; d = d >> 1;}int output = shift;

Page 49: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

•––––

•–––

To Unroll or Not to Unroll

Page 50: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Unrolling in time - Acyclic pipeline

sum = 0.0;for (int j=0; j<M; j += 1) { sum = sum + input[j];}output = sum;

●●

Page 51: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Page 52: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Towards some Linear Algebra

•••

Page 53: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

Multiple row sums simultaneously using one adder

••

Page 54: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

•–––

••

Number Representation

Page 55: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

••

•––

Fixed Point Numbers

Page 56: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

••

Fixed Point Mathematics

Page 57: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

••

•––

Floating Point Representation

Page 58: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

•–

•––

Arithmetic takes Space on the DFE

Page 59: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

MULT usage for N x M multiplication

Bits 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 5418 1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 320 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 322 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 324 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 326 2 2 2 2 4 4 4 4 4 4 4 4 4 6 6 6 6 6 628 2 2 2 2 4 4 4 4 4 4 4 4 4 6 6 6 6 6 630 2 2 2 2 4 4 4 4 4 4 4 4 4 6 6 6 6 6 632 2 2 2 2 4 4 4 4 4 4 4 4 4 6 6 6 6 6 634 2 2 2 2 4 4 4 4 4 4 4 4 4 6 6 6 6 6 636 2 3 3 3 4 4 4 4 4 5 5 5 5 6 6 6 6 6 738 2 3 3 3 4 4 4 4 4 5 5 5 5 6 6 6 6 6 740 2 3 3 3 4 4 4 4 4 5 5 5 5 6 6 6 6 6 742 2 3 3 3 4 4 4 4 4 5 5 5 5 6 6 6 6 6 744 3 3 3 3 6 6 6 6 6 6 6 6 6 9 9 9 9 9 946 3 3 3 3 6 6 6 6 6 6 6 6 6 9 9 9 9 9 948 3 3 3 3 6 6 6 6 6 6 6 6 6 9 9 9 9 9 950 3 3 3 3 6 6 6 6 6 6 6 6 6 9 9 9 9 9 952 3 3 3 3 6 6 6 6 6 6 6 6 6 9 9 9 9 9 954 3 4 4 4 6 6 6 6 6 7 7 7 7 9 9 9 9 9 10

Page 60: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

What about error vs area tradeoffs▪ Bit accurate simulations for different bit-width configurations.

[L. Gan, H. Fu, W. Luk, C. Yang, W. Xue, X. Huang, Y. Zhang, and G. Yang, Accelerating solvers for global atmospheric equations through mixed-precision data flow engine, FPL2013]

Page 61: Computing in Space - University of Warwick · Spatial Computing Paradigms • • • • Vs SIMD • • • • • Control-flow Machine. Simple CPU Pipeline. Control-flow Computing

••

••

Finally