A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko...
Transcript of A Mouldable Computer Architecture Mirko Mariotti...I Hard to program. I Hard to schedule. Mirko...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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