+ All Categories
Home > Documents > SpiNNaker: What’s New - Neural...

SpiNNaker: What’s New - Neural...

Date post: 29-Feb-2020
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
23
HBP CodeJam Workshop #7 Jan 2016 Andrew Rowley and Alan Stokes SpiNNaker: What’s New
Transcript
Page 1: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

HBP CodeJam Workshop #7

Jan 2016

Andrew Rowley and Alan Stokes

SpiNNaker: What’s New

Page 2: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

Overview

● SpiNNaker● Summary of tools to date● PACMAN Work Flows

■ External Algorithm Support● PyNN Front End New Features

■ Repeated Runs and Reset■ Closed Loop Simulations

● The Graph Front End● Coming Soon!

2

Page 3: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

SpiNNaker

3

Page 4: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

SpiNNaker

4

Page 5: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

SpiNNaker

5

Page 6: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

SpiNNaker

6

Page 7: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

Tools Summary

● Previous releases: ■ Just Testing April 2014■ Little Rascal April 2015■ Arbitrary September 2015

● Arbitrary functionality:■ Basic PyNN 0.7 functionality■ Live closed-loop functionality

● Hope to make next release soon after HBP codeJam #7■ With merged achievements from the hackathon.

7

Page 8: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

PACMAN Work Flows - 1 of 10

8

PACMAN

Algorithm Descriptions

(XML)

Algorithms To Run

Outputs to Generate

Inputs

Outputs Generated

Placer Description

Router Description

… Description

http://spinnakermanchester.github.io/2015.006.AnotherFineProductFromTheNonsenseFactory/MappingAlgorithms.html

Page 9: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

PACMAN Work Flows - 2 of 10

9

PACMAN

Create Workflow

Algorithm Descriptions

(XML)

Page 10: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

PACMAN Work Flows - 3 of 10PACMAN Algorithm XML

10

<algorithms> <algorithm name="BasicPlacer"> <python_module>pacman.operations.placer_algorithms.basic_placer</python_module> <python_class>BasicPlacer</python_class>

</algorithm></algorithms>

<required_inputs> <parameter> <param_name>partitioned_graph</param_name> <param_type>MemoryPartitionedGraph</param_type> </parameter>

</required_inputs> <produces_outputs> <parameter> <param_name>placements</param_name> <param_type>MemoryPlacements</param_type> </parameter> </produces_outputs>

<parameter> <param_name>machine</param_name> <param_type>MemoryExtendedMachine</param_type> </parameter>

MemoryPlacements

Basic Placer

MemoryExtendedMachineMemoryPartitionedGraph

Page 11: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

PACMAN Work Flows - 4 of 10External Algorithm XML

11

<algorithms> <algorithm name="ExternalRouter"> <command_line_args> <arg>run_router.py</arg> <arg>--graph={graph}</arg> <arg>--machine={machine}</arg> <arg>--placements={placements}</arg> <arg>--algorithm=ner</arg> </command_line_args> <required_inputs> <parameter> <param_name>graph</param_name> <param_type>FilePartitionedGraph</param_type> </parameter> <parameter> <param_name>machine</param_name> <param_type>FileMachine</param_type> </parameter> <parameter> <param_name>placements</param_name> <param_type>FilePlacements</param_type> </parameter> </required_inputs>

</algorithm></algorithms>

<produces_outputs> <parameter> <param_name>FileRouingPathsFilePath</param_name> <param_type>FileRoutingPaths</param_type> </parameter> </produces_outputs>

ExternalRouter

FileMachine

FilePartitionedGraph

FileRoutingPaths

FilePlacements

ner

Page 12: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

PACMAN Work Flows - 5 of 10

12

PACMAN

Create Workflow

Algorithm Descriptions

(XML)

Algorithms To Run

Outputs to Generate

Inputs

Page 13: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

PACMAN Work Flows - 6 of 10PACMAN Work Flow

13

MemoryExtendedMachine,MemoryPartitionedGraph

MemoryPlacements

FilePartitionedGraph,FilePlacements,

FileMachine

FileRoutingPaths

MemoryMachine,MemoryPartitionableGraph

MemoryPartitionedGraph

MemoryMachine

HostName

Machine Finder

Basic Partitioner

External Router

Basic Placer

MemoryPartitionedGraph

FilePartitionedGraph

PartitionedGraphFileWriter

FileRoutingPaths

MemoryRoutingPaths

RoutingPathsFileReader

Inputs: MemoryPartitionableGraph and HostName

Outputs: MemoryRoutingPaths

MemoryPlacements

FilePlacements

PlacementsFileWriter

MemoryMachine

FileMachine

MachineFileWriter

Page 14: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

PACMAN Work Flows - 7 of 10PACMAN Work Flow

14

Machine Finder

Basic Partitioner

Basic Placer

PartitionedGraphFileWriter

PlacementsFileWriter

MachineFileWriter

RoutingPathsFileReader

External Router

Page 15: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

PACMAN Work Flows - 8 of 10

15

PACMAN

Create Workflow

Execute Workflow

Execute Python

Algorithm

Execute External

Algorithm

Object File (JSON)

External Algorithm

ExecutableObject File

(JSON)

Internal Algorithm Callable

Algorithm Descriptions

(XML)

Algorithms To Run

Outputs to Generate

Inputs

https://github.com/mossblaser/place-and-route-interchange-format

Page 16: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

{"width": 2,"height": 2,"chip_resources": { "cores": 17, "sdram": 119275520 },"dead_chips": [ ]

}

16

PACMAN Work Flows - 9 of 10JSON Files: machine.json

chip 0, 1 chip 1, 1

chip 0, 0 chip 1, 0 8 TAGS

"chip_resource_exceptions": [ [0, 0, [“tags”: 8]] ]

"dead_links": [ [0, 0, “west”], [1,1, “east”], [0, 0, “south_west”], [1, 1, “north_east”] [1, 0, “north_east”], [0,1, “south_west”], [0, 1, “west”], [1, 0, “east”] ]

Page 17: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

PACMAN Work Flows -10 of 10Powering sPyNNaker

17

[Mapping]

# Name of extra algorithms to execute in workflowalgorithms = MyPlacer,MyRouter

# Path to extra algorithm description XML file(s)extra_xml_paths = /path/to/myxml.xml

Page 18: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

p.run(2000)spikes = populations[0].getSpikes()

# Plot spikes 2

p.end()

PyNN Front End New FunctionalityAPI calls

18

import pyNN.spiNNaker as pp.setup(timestep=1.0, min_delay=1.0, max_delay=144.0)populations = list()

# Create pops and projections for a synfire chain…

populations[0].record()p.run(5000)spikes = populations[0].getSpikes()

# Plot spikes 1

<= 5000

Page 19: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

PyNN Front End New FunctionalityAPI calls

19

import pyNN.spiNNaker as pp.setup(timestep=1.0, min_delay=1.0, max_delay=144.0)populations = list()

# Create pops and projections for a synfire chain…

populations[0].record()p.run(3000)p.run(2000)spikes = populations[0].getSpikes()

# Plot spikes 1

p.reset()p.run(3000)spikes = populations[0].getSpikes()

# Plot spikes 2

p.end()

== 3000

Page 20: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

Update SpikeSourceArray

PyNN FrontEnd new functionality

20

Delayed closed loop simulations 1 of 2

sPyNNaker

p.run(1000)

p.get_spikes()

Spikes

Virtual Neurorobotics Environment

Page 21: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

Thanks to Felix Schneider from SP 10 for helping with this21

PyNN FrontEnd new functionality Delayed closed loop simulations 2 of 2

Page 22: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

GraphFrontEnd

The Graph Front End

22

SpiNNFrontEndCommon

PACMAN SpiNNManDataSpecification

sPyNNaker

Heat Demo Key-Value Pair Database ...

Page 23: SpiNNaker: What’s New - Neural ensembleneuralensemble.org/media/slides/HBP_CodeJam_2016_SpiNNaker.pdfPACMAN Work Flows - 6 of 10 PACMAN Work Flow 13 MemoryExtendedMachine, MemoryPartitionedGraph

Coming Soon!!!

1. Data expansion on chip to reduce load times.

2. Automatic pause and resume of simulation to allow recording

of long running and/or large simulations on smaller

machines.

3. PyNN 0.8 support.

4. Refactoring of delay representation to improve memory

usage.

23


Recommended