A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko...

119
BondMachine A Mouldable Computer Architecture Mirko Mariotti Department of Physics and Geology - University of Perugia and INFN Perugia Workshop INFN CCR 2017 Laboratori Nazionali del Gran Sasso, 22-26 Maggio 2017 May 23, 2017

Transcript of A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko...

Page 1: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

BondMachineA Mouldable Computer Architecture

Mirko Mariotti

Department of Physics and Geology - University of Perugiaand INFN Perugia

Workshop INFN CCR 2017Laboratori Nazionali del Gran Sasso, 22-26 Maggio 2017

May 23, 2017

Page 2: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Introduction

The BondMachine: a comprehensive approach tocomputing.

In this presentation i will talk about:

I Ideas that bring to the BondMachine.

I What is it.

I Developed software tools.

I Hardware implementation.

I Uses.

Mirko Mariotti BondMachine May 23, 2017 2/43

Page 3: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Computer ArchitecturesBase for the first idea

Today’s computer architecture are:

I Multicore,Two or more independent actual processingunits execute multiple instructions at the same time.

I The power is given by the number.I Parallel algorithms.

I Heterogeneous, processing units of different type.

I Cell, GPU, Parallela, TPU.I The power is given by the specialization.I Hard to make units communicate.I Hard to program.I Hard to schedule.

Mirko Mariotti BondMachine May 23, 2017 3/43

Page 4: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Computer ArchitecturesBase for the first idea

Today’s computer architecture are:

I Multicore,Two or more independent actual processingunits execute multiple instructions at the same time.

I The power is given by the number.I Parallel algorithms.

I Heterogeneous, processing units of different type.

I Cell, GPU, Parallela, TPU.I The power is given by the specialization.I Hard to make units communicate.I Hard to program.I Hard to schedule.

Mirko Mariotti BondMachine May 23, 2017 3/43

Page 5: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Computer ArchitecturesBase for the first idea

Today’s computer architecture are:

I Multicore,Two or more independent actual processingunits execute multiple instructions at the same time.

I The power is given by the number.I Parallel algorithms.

I Heterogeneous, processing units of different type.

I Cell, GPU, Parallela, TPU.I The power is given by the specialization.I Hard to make units communicate.I Hard to program.I Hard to schedule.

Mirko Mariotti BondMachine May 23, 2017 3/43

Page 6: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Computer ArchitecturesBase for the first idea

Today’s computer architecture are:

I Multicore,Two or more independent actual processingunits execute multiple instructions at the same time.

I The power is given by the number.I Parallel algorithms.

I Heterogeneous, processing units of different type.

I Cell, GPU, Parallela, TPU.I The power is given by the specialization.I Hard to make units communicate.I Hard to program.I Hard to schedule.

Mirko Mariotti BondMachine May 23, 2017 3/43

Page 7: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Computer ArchitecturesBase for the first idea

Today’s computer architecture are:

I Multicore,Two or more independent actual processingunits execute multiple instructions at the same time.

I The power is given by the number.I Parallel algorithms.

I Heterogeneous, processing units of different type.

I Cell, GPU, Parallela, TPU.I The power is given by the specialization.I Hard to make units communicate.I Hard to program.I Hard to schedule.

Mirko Mariotti BondMachine May 23, 2017 3/43

Page 8: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Computer ArchitecturesBase for the first idea

Today’s computer architecture are:

I Multicore,Two or more independent actual processingunits execute multiple instructions at the same time.

I The power is given by the number.I Parallel algorithms.

I Heterogeneous, processing units of different type.

I Cell, GPU, Parallela, TPU.I The power is given by the specialization.I Hard to make units communicate.I Hard to program.I Hard to schedule.

Mirko Mariotti BondMachine May 23, 2017 3/43

Page 9: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Computer ArchitecturesBase for the first idea

Today’s computer architecture are:

I Multicore,Two or more independent actual processingunits execute multiple instructions at the same time.

I The power is given by the number.I Parallel algorithms.

I Heterogeneous, processing units of different type.

I Cell, GPU, Parallela, TPU.I The power is given by the specialization.I Hard to make units communicate.I Hard to program.I Hard to schedule.

Mirko Mariotti BondMachine May 23, 2017 3/43

Page 10: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Computer ArchitecturesBase for the first idea

Today’s computer architecture are:

I Multicore,Two or more independent actual processingunits execute multiple instructions at the same time.

I The power is given by the number.I Parallel algorithms.

I Heterogeneous, processing units of different type.

I Cell, GPU, Parallela, TPU.I The power is given by the specialization.I Hard to make units communicate.I Hard to program.I Hard to schedule.

Mirko Mariotti BondMachine May 23, 2017 3/43

Page 11: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Computer ArchitecturesBase for the first idea

Today’s computer architecture are:

I Multicore,Two or more independent actual processingunits execute multiple instructions at the same time.

I The power is given by the number.I Parallel algorithms.

I Heterogeneous, processing units of different type.

I Cell, GPU, Parallela, TPU.I The power is given by the specialization.I Hard to make units communicate.I Hard to program.I Hard to schedule.

Mirko Mariotti BondMachine May 23, 2017 3/43

Page 12: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Computer ArchitecturesBase for the first idea

Today’s computer architecture are:

I Multicore,Two or more independent actual processingunits execute multiple instructions at the same time.

I The power is given by the number.I Parallel algorithms.

I Heterogeneous, processing units of different type.

I Cell, GPU, Parallela, TPU.I The power is given by the specialization.I Hard to make units communicate.I Hard to program.I Hard to schedule.

Mirko Mariotti BondMachine May 23, 2017 3/43

Page 13: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Computer ArchitecturesFirst idea

Having a multi-core architecturecompletely heterogeneous both incores types and interconnections.

Mirko Mariotti BondMachine May 23, 2017 4/43

Page 14: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 15: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register Machine

Opcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 16: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 17: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

Kernel

System calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 18: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 19: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library

Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 20: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 21: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/Interpreter

Language

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 22: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 23: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 24: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance

Sof

twar

e

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 25: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance

Sof

twar

e

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 26: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance

Sof

twar

e

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 27: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 28: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesbase for the second idea

Programming language

Compiler/InterpreterLanguage

User mode

Standard Library Stl calls

Kernel mode

KernelSystem calls

Processor

Register MachineOpcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 5/43

Page 29: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and InterfacesSecond idea

Build a computing system with adecreased number of layers

resulting in a minor gap betweenHW and SW but keeping an userfriendly way of programming it.

Mirko Mariotti BondMachine May 23, 2017 6/43

Page 30: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Introducing the BondMachine (BM)

Inspired from both the ideas we create a new computerarchitecture that:

I Is composed by many, possibly hundreds, computingcores.

I Has very small cores and not necessarily of the sametype (different ISA and ABI).

I Has a not fixed way of interconnecting cores.

I May have some elements shared among cores (forexample channels and shared memories).

Mirko Mariotti BondMachine May 23, 2017 7/43

Page 31: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Introducing the BondMachine (BM)

Inspired from both the ideas we create a new computerarchitecture that:

I Is composed by many, possibly hundreds, computingcores.

I Has very small cores and not necessarily of the sametype (different ISA and ABI).

I Has a not fixed way of interconnecting cores.

I May have some elements shared among cores (forexample channels and shared memories).

Mirko Mariotti BondMachine May 23, 2017 7/43

Page 32: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Introducing the BondMachine (BM)

Inspired from both the ideas we create a new computerarchitecture that:

I Is composed by many, possibly hundreds, computingcores.

I Has very small cores and not necessarily of the sametype (different ISA and ABI).

I Has a not fixed way of interconnecting cores.

I May have some elements shared among cores (forexample channels and shared memories).

Mirko Mariotti BondMachine May 23, 2017 7/43

Page 33: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Introducing the BondMachine (BM)

Inspired from both the ideas we create a new computerarchitecture that:

I Is composed by many, possibly hundreds, computingcores.

I Has very small cores and not necessarily of the sametype (different ISA and ABI).

I Has a not fixed way of interconnecting cores.

I May have some elements shared among cores (forexample channels and shared memories).

Mirko Mariotti BondMachine May 23, 2017 7/43

Page 34: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Introducing the BondMachine (BM)

Inspired from both the ideas we create a new computerarchitecture that:

I Is composed by many, possibly hundreds, computingcores.

I Has very small cores and not necessarily of the sametype (different ISA and ABI).

I Has a not fixed way of interconnecting cores.

I May have some elements shared among cores (forexample channels and shared memories).

Mirko Mariotti BondMachine May 23, 2017 7/43

Page 35: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Connecting Processor (CP)The computational unit of the BM

The atomic computational unit of a BM is the “connectingprocessor” (CP) and has:

I Some general purpose registers of size Rsize.

I Some I/O dedicated registers of size Rsize.

I A set of implemented opcodes chosen among manyavailable.

I Dedicated ROM and RAM.

I There possible operating modes.

Mirko Mariotti BondMachine May 23, 2017 8/43

Page 36: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Shared Objects (SO)

Alongside CPs, BondMachines include non-computing unitscalled “Shared Objects” (SO).

Examples of their purposes are:

I Data storage (Memories).

I Message passing.

I CP synchronization.

A single SO can be shared among different CPs. To use it CPshave special instructions (opcodes) oriented to the specificSO.

Three kind of SO have been developed so far: the Channel,the Shared Memory and the Barrier.

Mirko Mariotti BondMachine May 23, 2017 9/43

Page 37: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Shared Objects (SO)

Alongside CPs, BondMachines include non-computing unitscalled “Shared Objects” (SO).

Examples of their purposes are:

I Data storage (Memories).

I Message passing.

I CP synchronization.

A single SO can be shared among different CPs. To use it CPshave special instructions (opcodes) oriented to the specificSO.

Three kind of SO have been developed so far: the Channel,the Shared Memory and the Barrier.

Mirko Mariotti BondMachine May 23, 2017 9/43

Page 38: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Shared Objects (SO)

Alongside CPs, BondMachines include non-computing unitscalled “Shared Objects” (SO).

Examples of their purposes are:

I Data storage (Memories).

I Message passing.

I CP synchronization.

A single SO can be shared among different CPs. To use it CPshave special instructions (opcodes) oriented to the specificSO.

Three kind of SO have been developed so far: the Channel,the Shared Memory and the Barrier.

Mirko Mariotti BondMachine May 23, 2017 9/43

Page 39: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Shared Objects (SO)

Alongside CPs, BondMachines include non-computing unitscalled “Shared Objects” (SO).

Examples of their purposes are:

I Data storage (Memories).

I Message passing.

I CP synchronization.

A single SO can be shared among different CPs. To use it CPshave special instructions (opcodes) oriented to the specificSO.

Three kind of SO have been developed so far: the Channel,the Shared Memory and the Barrier.

Mirko Mariotti BondMachine May 23, 2017 9/43

Page 40: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Shared Objects (SO)

Alongside CPs, BondMachines include non-computing unitscalled “Shared Objects” (SO).

Examples of their purposes are:

I Data storage (Memories).

I Message passing.

I CP synchronization.

A single SO can be shared among different CPs. To use it CPshave special instructions (opcodes) oriented to the specificSO.

Three kind of SO have been developed so far: the Channel,the Shared Memory and the Barrier.

Mirko Mariotti BondMachine May 23, 2017 9/43

Page 41: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Shared Objects (SO)

Alongside CPs, BondMachines include non-computing unitscalled “Shared Objects” (SO).

Examples of their purposes are:

I Data storage (Memories).

I Message passing.

I CP synchronization.

A single SO can be shared among different CPs. To use it CPshave special instructions (opcodes) oriented to the specificSO.

Three kind of SO have been developed so far: the Channel,the Shared Memory and the Barrier.

Mirko Mariotti BondMachine May 23, 2017 9/43

Page 42: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

The BondMachine

Mirko Mariotti BondMachine May 23, 2017 10/43

Page 43: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Multicore and HeterogeneousFirst idea on the BondMachine

The idea was:

Having a multi-core architecture completely heterogeneous both in cores types and interconnections.

The BondMachine may havemany cores, eventually all

different one another, arbitrarilyinterconnected and sharing non

computing elements.

Mirko Mariotti BondMachine May 23, 2017 11/43

Page 44: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Tools

The complexity of programming the BondMachine architec-ture is managed by using a set of software tools to:

I build a specify architecture as function of the task,

I modify the created architecture,

I simulate the behavior and to check the functionalitywith the aim to generate the Register Transfer Level(RTL) code.

Processor Builder selects the CP specifics, assembles and dis-assembles, saves on disk as JSON, emulates and creates theRTL code.

BondMachine Builder connects CPs and SOs together in cus-tom topologies, loads and saves on disk as JSON, emulatesand creates the RTL code.

Mirko Mariotti BondMachine May 23, 2017 12/43

Page 45: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Tools

The complexity of programming the BondMachine architec-ture is managed by using a set of software tools to:

I build a specify architecture as function of the task,

I modify the created architecture,

I simulate the behavior and to check the functionalitywith the aim to generate the Register Transfer Level(RTL) code.

Processor Builder selects the CP specifics, assembles and dis-assembles, saves on disk as JSON, emulates and creates theRTL code.

BondMachine Builder connects CPs and SOs together in cus-tom topologies, loads and saves on disk as JSON, emulatesand creates the RTL code.

Mirko Mariotti BondMachine May 23, 2017 12/43

Page 46: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Tools

The complexity of programming the BondMachine architec-ture is managed by using a set of software tools to:

I build a specify architecture as function of the task,

I modify the created architecture,

I simulate the behavior and to check the functionalitywith the aim to generate the Register Transfer Level(RTL) code.

Processor Builder selects the CP specifics, assembles and dis-assembles, saves on disk as JSON, emulates and creates theRTL code.

BondMachine Builder connects CPs and SOs together in cus-tom topologies, loads and saves on disk as JSON, emulatesand creates the RTL code.

Mirko Mariotti BondMachine May 23, 2017 12/43

Page 47: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

BondMachine web front-end

Operations on BondMachines can also be performed via adeveloped web framework

Mirko Mariotti BondMachine May 23, 2017 13/43

Page 48: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Simulation

An important feature of the tools is the possibility ofsimulating BondMachine behavior.

An event input file describes how BondMachines elementshas to change during the simulation timespan and which areto be be reported.

The simulator can produce results in the form of:

I Activity log of the BM internal.

I Graphical representation of the simulation.

I Report file with quantitative data. Useful to constructmetrics

Mirko Mariotti BondMachine May 23, 2017 14/43

Page 49: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Simulation

An important feature of the tools is the possibility ofsimulating BondMachine behavior.

An event input file describes how BondMachines elementshas to change during the simulation timespan and which areto be be reported.

The simulator can produce results in the form of:

I Activity log of the BM internal.

I Graphical representation of the simulation.

I Report file with quantitative data. Useful to constructmetrics

Mirko Mariotti BondMachine May 23, 2017 14/43

Page 50: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Simulation

An important feature of the tools is the possibility ofsimulating BondMachine behavior.

An event input file describes how BondMachines elementshas to change during the simulation timespan and which areto be be reported.

The simulator can produce results in the form of:

I Activity log of the BM internal.

I Graphical representation of the simulation.

I Report file with quantitative data. Useful to constructmetrics

Mirko Mariotti BondMachine May 23, 2017 14/43

Page 51: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Simulationexamples

Activity log example:

A graphical example:https://youtube.com/embed/Cc1Qzioh2Ng

Mirko Mariotti BondMachine May 23, 2017 15/43

Page 52: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Moulding the BondMachine

As said BondMachines are not general purpose architectures,and to be useful have to be shaped according the specificproblem.

Several methods (apart from writing in assembly and buildinga BondMachine from scratch) have been developed to do that:

I bondgo: A new type of compiler that create not onlythe CPs assembly but also the architecture itself.

I A set of API to create BondMachine to suit specificcomputational problems.

I An Evolutionary Computation framework to “grow”BondMachines according some fitness function viasimulation.

I tf2bm: A TensorFlow to BondMachine translator.

Mirko Mariotti BondMachine May 23, 2017 16/43

Page 53: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Moulding the BondMachine

As said BondMachines are not general purpose architectures,and to be useful have to be shaped according the specificproblem.

Several methods (apart from writing in assembly and buildinga BondMachine from scratch) have been developed to do that:

I bondgo: A new type of compiler that create not onlythe CPs assembly but also the architecture itself.

I A set of API to create BondMachine to suit specificcomputational problems.

I An Evolutionary Computation framework to “grow”BondMachines according some fitness function viasimulation.

I tf2bm: A TensorFlow to BondMachine translator.

Mirko Mariotti BondMachine May 23, 2017 16/43

Page 54: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Moulding the BondMachine

As said BondMachines are not general purpose architectures,and to be useful have to be shaped according the specificproblem.

Several methods (apart from writing in assembly and buildinga BondMachine from scratch) have been developed to do that:

I bondgo: A new type of compiler that create not onlythe CPs assembly but also the architecture itself.

I A set of API to create BondMachine to suit specificcomputational problems.

I An Evolutionary Computation framework to “grow”BondMachines according some fitness function viasimulation.

I tf2bm: A TensorFlow to BondMachine translator.

Mirko Mariotti BondMachine May 23, 2017 16/43

Page 55: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Moulding the BondMachine

As said BondMachines are not general purpose architectures,and to be useful have to be shaped according the specificproblem.

Several methods (apart from writing in assembly and buildinga BondMachine from scratch) have been developed to do that:

I bondgo: A new type of compiler that create not onlythe CPs assembly but also the architecture itself.

I A set of API to create BondMachine to suit specificcomputational problems.

I An Evolutionary Computation framework to “grow”BondMachines according some fitness function viasimulation.

I tf2bm: A TensorFlow to BondMachine translator.

Mirko Mariotti BondMachine May 23, 2017 16/43

Page 56: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Moulding the BondMachine

As said BondMachines are not general purpose architectures,and to be useful have to be shaped according the specificproblem.

Several methods (apart from writing in assembly and buildinga BondMachine from scratch) have been developed to do that:

I bondgo: A new type of compiler that create not onlythe CPs assembly but also the architecture itself.

I A set of API to create BondMachine to suit specificcomputational problems.

I An Evolutionary Computation framework to “grow”BondMachines according some fitness function viasimulation.

I tf2bm: A TensorFlow to BondMachine translator.

Mirko Mariotti BondMachine May 23, 2017 16/43

Page 57: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Moulding the BondMachine

As said BondMachines are not general purpose architectures,and to be useful have to be shaped according the specificproblem.

Several methods (apart from writing in assembly and buildinga BondMachine from scratch) have been developed to do that:

I bondgo: A new type of compiler that create not onlythe CPs assembly but also the architecture itself.

I A set of API to create BondMachine to suit specificcomputational problems.

I An Evolutionary Computation framework to “grow”BondMachines according some fitness function viasimulation.

I tf2bm: A TensorFlow to BondMachine translator.

Mirko Mariotti BondMachine May 23, 2017 16/43

Page 58: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

bondgo is the name chosen for the compiler developed forthe BondMachine.

The compiler source language is Go as the name suggest.

Mirko Mariotti BondMachine May 23, 2017 17/43

Page 59: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

This is the standard flow when building computer programs

Mirko Mariotti BondMachine May 23, 2017 18/43

Page 60: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

This is the standard flow when building computer programs

high level language source

Mirko Mariotti BondMachine May 23, 2017 18/43

Page 61: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

This is the standard flow when building computer programs

high level language source

assembly file

Compiling

Mirko Mariotti BondMachine May 23, 2017 18/43

Page 62: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

This is the standard flow when building computer programs

high level language source

assembly file

Compiling

machine code

Assembling

Mirko Mariotti BondMachine May 23, 2017 18/43

Page 63: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

The standard flow in bondgo

bondgo loop example

package main

import ()

func main() {

var reg_aa uint8

var reg_ab uint8

for reg_aa = 10; reg_aa > 0; reg_aa -- {

reg_ab = reg_aa

break

}

}

bondgo loop example in asm

clr aa

clr ab

rset ac 10

cpy aa ac

cpy ac aa

jz ac 11

cpy ac aa

cpy ab ac

j 11

dec aa

j 4

Mirko Mariotti BondMachine May 23, 2017 19/43

Page 64: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

bondgo may also do something different when compiling asingle threaded program ...

Mirko Mariotti BondMachine May 23, 2017 20/43

Page 65: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

bondgo may also do something different when compiling asingle threaded program ...

high level language source

Mirko Mariotti BondMachine May 23, 2017 20/43

Page 66: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

bondgo may also do something different when compiling asingle threaded program ...

high level language source

assembly file

Compiling

Mirko Mariotti BondMachine May 23, 2017 20/43

Page 67: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

bondgo may also do something different when compiling asingle threaded program ...

high level language source

assembly file

Compiling

CP specs

Arch generating

Mirko Mariotti BondMachine May 23, 2017 20/43

Page 68: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

bondgo may also do something different when compiling asingle threaded program ...

high level language source

assembly file

Compiling

CP specs

Arch generating

machine code

Assembling

Mirko Mariotti BondMachine May 23, 2017 20/43

Page 69: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

bondgo may also do something different when compiling asingle threaded program ...

high level language source

assembly file

Compiling

CP specs

Arch generating

machine code

Assembling

Processor implementation

Mirko Mariotti BondMachine May 23, 2017 20/43

Page 70: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

bondgo may also do something different when compiling asingle threaded program ...

high level language source

assembly file

Compiling

CP specs

Arch generating

machine code

Assembling

Processor implementation

Mirko Mariotti BondMachine May 23, 2017 20/43

Page 71: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

... bondgo may not only create the binaries, but also the CParchitecture, and ...

Mirko Mariotti BondMachine May 23, 2017 21/43

Page 72: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

... it can do even much more interesting things whencompiling concurrent programs.

Mirko Mariotti BondMachine May 23, 2017 22/43

Page 73: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

... it can do even much more interesting things whencompiling concurrent programs.

high level language source

Mirko Mariotti BondMachine May 23, 2017 22/43

Page 74: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

... it can do even much more interesting things whencompiling concurrent programs.

high level language source

assembly CP 1

assembly CP 2assembly CP 3assembly CP 4assembly CP ...

assembly CP N

Compiling

Mirko Mariotti BondMachine May 23, 2017 22/43

Page 75: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

... it can do even much more interesting things whencompiling concurrent programs.

high level language source

assembly CP 1

assembly CP 2assembly CP 3assembly CP 4assembly CP ...

assembly CP N

Compiling

CP 1 specs

CP 2

CP 3

CP 4

CP ...

CP N

Archs generating

Mirko Mariotti BondMachine May 23, 2017 22/43

Page 76: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

... it can do even much more interesting things whencompiling concurrent programs.

high level language source

assembly CP 1

assembly CP 2assembly CP 3assembly CP 4assembly CP ...

assembly CP N

Compiling

CP 1 specs

CP 2

CP 3

CP 4

CP ...

CP N

Archs generating

Assembl. and binaries

Mirko Mariotti BondMachine May 23, 2017 22/43

Page 77: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

... it can do even much more interesting things whencompiling concurrent programs.

high level language source

assembly CP 1

assembly CP 2assembly CP 3assembly CP 4assembly CP ...

assembly CP N

Compiling

CP 1 specs

CP 2

CP 3

CP 4

CP ...

CP N

Archs generating

Assembl. and binaries

Interconnections

Mirko Mariotti BondMachine May 23, 2017 22/43

Page 78: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Bondgo

... it can do even much more interesting things whencompiling concurrent programs.

high level language source

assembly CP 1

assembly CP 2assembly CP 3assembly CP 4assembly CP ...

assembly CP N

Compiling

CP 1 specs

CP 2

CP 3

CP 4

CP ...

CP N

Archs generating

Assembl. and binaries

BondMachine

Mirko Mariotti BondMachine May 23, 2017 22/43

Page 79: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

BondgoAn example

bondgo stream processing example

package main

import (

"bondgo"

)

func streamprocessor(a *[]uint8 , b *[]uint8 ,

c *[]uint8 , gid uint8) {

(*c)[gid] = (*a)[gid] + (*b)[gid]

}

func main() {

a := make ([]uint8 , 256)

b := make ([]uint8 , 256)

c := make ([]uint8 , 256)

// ... some a and b values fill

for i := 0; i < 256; i++ {

go streamprocessor (&a, &b, &c, uint8(i))

}

}

The compilation of this example results in the creation of a 257 CPs where 256 are the streamprocessors executing the code in the function called streamprocessor , and one is the coordinating CP.Each stream processor is optimized and capable only to make additions since it is the only operationrequested by the source code. The three slices created on the main function are passed by reference tothe Goroutines then a shared RAM is created by the Bondgo compiler available to the generated CPs.

Mirko Mariotti BondMachine May 23, 2017 23/43

Page 80: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Compiling Architectures

One of the most important result

The architecture creation is a part of the compilationprocess.

Mirko Mariotti BondMachine May 23, 2017 24/43

Page 81: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Go in hardwareSecond idea on the BondMachine

The idea was:Build a computing system with a decreased number of layers resulting in a lower HW/SW gap.

This would raise the overall performances yet keeping an user friendly way of programming.

Between HW and SW there isonly the processor abstraction, noOperating System nor runtimes.

Despite that programming is doneat high level.

Mirko Mariotti BondMachine May 23, 2017 25/43

Page 82: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Layers, Abstractions and Interfacesand BondMachines

Programming language

Compiler

Language

BondMachine

Register Machine

Opcodes

Transistors

Hard

ware

Sp

ecialization

Perform

ance S

oftw

are

Gen

eral

izat

ion

Use

rfr

ien

dly

Mirko Mariotti BondMachine May 23, 2017 26/43

Page 83: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

BondgoAbstract Assembly

The Assembly language for the BM has been kept asindependent as possible from the particular CP.

Given a specific piece of assembly code Bondgo has theability to compute the “minimum CP” that can execute that

code.

These are Building Blocks for complex BondMachines.

Mirko Mariotti BondMachine May 23, 2017 27/43

Page 84: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Builders API

With these Building Blocks

Several libraries have to developed to map specific problemson BondMachines:

I Symbond, to handle mathematical expression.

I Boolbond, to map boolean expression.

I Matrixwork, to make matrices calculation.

I Neuralbond, to use neural networks.

Mirko Mariotti BondMachine May 23, 2017 28/43

Page 85: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Builders API

With these Building Blocks

Several libraries have to developed to map specific problemson BondMachines:

I Symbond, to handle mathematical expression.

I Boolbond, to map boolean expression.

I Matrixwork, to make matrices calculation.

I Neuralbond, to use neural networks.

Mirko Mariotti BondMachine May 23, 2017 28/43

Page 86: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Builders API

With these Building Blocks

Several libraries have to developed to map specific problemson BondMachines:

I Symbond, to handle mathematical expression.

I Boolbond, to map boolean expression.

I Matrixwork, to make matrices calculation.

I Neuralbond, to use neural networks.

Mirko Mariotti BondMachine May 23, 2017 28/43

Page 87: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Builders API

With these Building Blocks

Several libraries have to developed to map specific problemson BondMachines:

I Symbond, to handle mathematical expression.

I Boolbond, to map boolean expression.

I Matrixwork, to make matrices calculation.

I Neuralbond, to use neural networks.

Mirko Mariotti BondMachine May 23, 2017 28/43

Page 88: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Builders API

With these Building Blocks

Several libraries have to developed to map specific problemson BondMachines:

I Symbond, to handle mathematical expression.

I Boolbond, to map boolean expression.

I Matrixwork, to make matrices calculation.

I Neuralbond, to use neural networks.

Mirko Mariotti BondMachine May 23, 2017 28/43

Page 89: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Evolutionary BondMachine

Find an architecture that solvea problem

SimulationFramework

Metrics to checkhow well a BMsolve a problem

Building Blocks ofthe BM

Population ofBondMachines

Genetically EvolvedArchitectures

Mirko Mariotti BondMachine May 23, 2017 29/43

Page 90: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Evolutionary BondMachine

Find an architecture that solvea problem

SimulationFramework

Metrics to checkhow well a BMsolve a problem

Building Blocks ofthe BM

Population ofBondMachines

Genetically EvolvedArchitectures

Mirko Mariotti BondMachine May 23, 2017 29/43

Page 91: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Evolutionary BondMachine

Find an architecture that solvea problem

SimulationFramework

Metrics to checkhow well a BMsolve a problem

Building Blocks ofthe BM

Population ofBondMachines

Genetically EvolvedArchitectures

Mirko Mariotti BondMachine May 23, 2017 29/43

Page 92: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Evolutionary BondMachine

Find an architecture that solvea problem

SimulationFramework

Metrics to checkhow well a BMsolve a problem

Building Blocks ofthe BM

Population ofBondMachines

Genetically EvolvedArchitectures

Mirko Mariotti BondMachine May 23, 2017 29/43

Page 93: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Evolutionary BondMachine

Find an architecture that solvea problem

SimulationFramework

Metrics to checkhow well a BMsolve a problem

Building Blocks ofthe BM

Population ofBondMachines

Genetically EvolvedArchitectures

Mirko Mariotti BondMachine May 23, 2017 29/43

Page 94: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Evolutionary BondMachine

Find an architecture that solvea problem

SimulationFramework

Metrics to checkhow well a BMsolve a problem

Building Blocks ofthe BM

Population ofBondMachines

Genetically EvolvedArchitectures

Mirko Mariotti BondMachine May 23, 2017 29/43

Page 95: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

TensorFlowTM to Bondmachinetf2bm

TensorFlowTM is an open source software library fornumerical computation using data flow graphs.

Graphs can be converted to BondMachines with the tf2bmtool.

Mirko Mariotti BondMachine May 23, 2017 30/43

Page 96: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Hardware implementationFPGA

The RTL code for the BondMachine is written in Verilogand System Verilog, and has been tested on thesedevices/system:

I Digilent Basys3 - Xilinx Artix-7 - Vivado.

I Kintex7 Evaluation Board - Vivado.

I Digilent Zedboard - Xilinx Zynq 7020 - Vivado.

I Linux - Iverilog.

Within the project other firmwares have been written ortested:

I Microchip ENC28J60 Ethernet interface controller.

I Microchip ENC424J600 10/100 Base-T Ethernetinterface controller.

I ESP8266 Wi-Fi chip.

Mirko Mariotti BondMachine May 23, 2017 31/43

Page 97: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Toolchains

A set of toolchains allow the build and the direct deploy to atarget device of BondMachines.

Bondgo Toolchain example

A file local.mk contains references to the source code as wellall the build necessities.make bondmachine creates the JSON representation of theBM and assemble its code.make show displays a graphical representation of the BM.make simulate start a simulation.make videosim create a simulation video.make flash the device into the destination target.

Mirko Mariotti BondMachine May 23, 2017 32/43

Page 98: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

The Prototype

The project has been selected for the participation atMakerFaire 2016 Rome (The Europen Edition) and a

prototype has been assembled and presented.

First run:https://youtube.com/embed/hukTrGxTb7A

Mirko Mariotti BondMachine May 23, 2017 33/43

Page 99: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

The BondMachine computational Ecosystem

The same logic existing among CP have been extendedamong different BondMachines organized in clusters.

A protocol over ethernet called etherbond have been createdfor the purpose.

FPGA based BondMachines, standard Linux Workstations,Emulated BondMachines may join an etherbond cluster ancontribute to a single distributed computational problem.

Parts of the system can be redeployed without changing theproblem behavior (only the performances).

Mirko Mariotti BondMachine May 23, 2017 34/43

Page 100: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

The BondMachine computational Ecosystem

The same logic existing among CP have been extendedamong different BondMachines organized in clusters.

A protocol over ethernet called etherbond have been createdfor the purpose.

FPGA based BondMachines, standard Linux Workstations,Emulated BondMachines may join an etherbond cluster ancontribute to a single distributed computational problem.

Parts of the system can be redeployed without changing theproblem behavior (only the performances).

Mirko Mariotti BondMachine May 23, 2017 34/43

Page 101: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

The BondMachine computational Ecosystem

The same logic existing among CP have been extendedamong different BondMachines organized in clusters.

A protocol over ethernet called etherbond have been createdfor the purpose.

FPGA based BondMachines, standard Linux Workstations,Emulated BondMachines may join an etherbond cluster ancontribute to a single distributed computational problem.

Parts of the system can be redeployed without changing theproblem behavior (only the performances).

Mirko Mariotti BondMachine May 23, 2017 34/43

Page 102: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

The BondMachine computational Ecosystem

The same logic existing among CP have been extendedamong different BondMachines organized in clusters.

A protocol over ethernet called etherbond have been createdfor the purpose.

FPGA based BondMachines, standard Linux Workstations,Emulated BondMachines may join an etherbond cluster ancontribute to a single distributed computational problem.

Parts of the system can be redeployed without changing theproblem behavior (only the performances).

Mirko Mariotti BondMachine May 23, 2017 34/43

Page 103: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Uses in Physics

Two possible uses in Physics experiments are currently beingexplored:

I Real time pulse shape analysis in neutron detectors.

I Test beam for space experiments (DAMPE, HERD)

Mirko Mariotti BondMachine May 23, 2017 35/43

Page 104: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Real time pulse shape analysis in neutrondetectors

The operation of the new generation of high-intensityneutron sources like SNS, JSNS and European SpallationSource (ESS, Lund, Sweden), now under construction, areintroducing a new demand for neutron detection capabilities.

These demands yield to the need for new data collectionprocedures and new technology based on solid state Sidevices.

We are trying to use BondMachines to make the real timeshape analysis in this kind of detecting devices.

Courtesy of Prof. F.Sacchetti

Mirko Mariotti BondMachine May 23, 2017 36/43

Page 105: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Test beam for space experiments (DAMPE,HERD)Trigger logic for test beams

Courtesy of V.Vagelli and M.Duranti

Mirko Mariotti BondMachine May 23, 2017 37/43

Page 106: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Test beam for space experiments (DAMPE,HERD)Trigger logic for test beams

Courtesy of V.Vagelli and M.Duranti

Mirko Mariotti BondMachine May 23, 2017 38/43

Page 107: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Test beam for space experiments (DAMPE,HERD)Trigger logic for test beams

We are trying to explore the possibility of usingBondMachine to handle efficiently this kind of operations.

Mirko Mariotti BondMachine May 23, 2017 39/43

Page 108: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Possible other uses

The BondMachine could be used in several types of realworld applications, some of them being:

I Workstation FPGA accelerators for any kind of intensivecomputation.

I IoT and CyberPhysical systems.

I Computer Science educational applications.

Mirko Mariotti BondMachine May 23, 2017 40/43

Page 109: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Possible other uses

The BondMachine could be used in several types of realworld applications, some of them being:

I Workstation FPGA accelerators for any kind of intensivecomputation.

I IoT and CyberPhysical systems.

I Computer Science educational applications.

Mirko Mariotti BondMachine May 23, 2017 40/43

Page 110: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Possible other uses

The BondMachine could be used in several types of realworld applications, some of them being:

I Workstation FPGA accelerators for any kind of intensivecomputation.

I IoT and CyberPhysical systems.

I Computer Science educational applications.

Mirko Mariotti BondMachine May 23, 2017 40/43

Page 111: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Possible other uses

The BondMachine could be used in several types of realworld applications, some of them being:

I Workstation FPGA accelerators for any kind of intensivecomputation.

I IoT and CyberPhysical systems.

I Computer Science educational applications.

Mirko Mariotti BondMachine May 23, 2017 40/43

Page 112: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Conclusions

The BondMachine is a new kind of computing device madepossible in practice only by the emerging of new re-programmablehardware technologies such as FPGA.

Keeping the register machine abstraction it is possible to bor-row well known languages and techniques in programmingthese devices removing the need of having a general purposearchitecture.

The result of this process is the construction of a computer ar-chitecture that is not anymore a static constraint where com-puting occurs but its creation becomes a part of the computingprocess, gaining computing power and flexibility.

Over this abstraction is it possible to create a full computingEcosystem.

Mirko Mariotti BondMachine May 23, 2017 41/43

Page 113: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Future work

I The project is a prototype.

I Include new processor shared objects and currentlyunsupported opcodes.

I Extend the compiler to include more data structures.

I Improve the networking with the support for wifi.

I Work on BondMachine as accelerators.

I What would an OS for BondMachines look like ?

Mirko Mariotti BondMachine May 23, 2017 42/43

Page 114: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Future work

I The project is a prototype.

I Include new processor shared objects and currentlyunsupported opcodes.

I Extend the compiler to include more data structures.

I Improve the networking with the support for wifi.

I Work on BondMachine as accelerators.

I What would an OS for BondMachines look like ?

Mirko Mariotti BondMachine May 23, 2017 42/43

Page 115: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Future work

I The project is a prototype.

I Include new processor shared objects and currentlyunsupported opcodes.

I Extend the compiler to include more data structures.

I Improve the networking with the support for wifi.

I Work on BondMachine as accelerators.

I What would an OS for BondMachines look like ?

Mirko Mariotti BondMachine May 23, 2017 42/43

Page 116: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Future work

I The project is a prototype.

I Include new processor shared objects and currentlyunsupported opcodes.

I Extend the compiler to include more data structures.

I Improve the networking with the support for wifi.

I Work on BondMachine as accelerators.

I What would an OS for BondMachines look like ?

Mirko Mariotti BondMachine May 23, 2017 42/43

Page 117: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Future work

I The project is a prototype.

I Include new processor shared objects and currentlyunsupported opcodes.

I Extend the compiler to include more data structures.

I Improve the networking with the support for wifi.

I Work on BondMachine as accelerators.

I What would an OS for BondMachines look like ?

Mirko Mariotti BondMachine May 23, 2017 42/43

Page 118: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Future work

I The project is a prototype.

I Include new processor shared objects and currentlyunsupported opcodes.

I Extend the compiler to include more data structures.

I Improve the networking with the support for wifi.

I Work on BondMachine as accelerators.

I What would an OS for BondMachines look like ?

Mirko Mariotti BondMachine May 23, 2017 42/43

Page 119: A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko Mariotti BondMachine May 23, 2017 3/43 May 23, 2017 Mirko Mariotti Introduction Architectures

May 23, 2017

Mirko Mariotti

Introduction

Architectures

Abstractions

BondMachine

Connecting Processors

Shared Modules

Tools

Simulation

Moulding

Bondgo

Builders API

EvolutionaryBondMachine

TensorFlow toBondmachine

Hardware

Prototype

Ecosystem

Uses in Physics

Other uses

Conclusions

Future work

Mirko MariottiDepartment of Physics and Geology, University of Perugia and INFN PG

[email protected]://bondmachine.fisica.unipg.it

Mirko Mariotti BondMachine May 23, 2017 43/43