Giter Club home page Giter Club logo

spynnaker7's Introduction

NO LONGER SUPPORTED

The sPyNNaker code based has moved on to use PyNN 0.9 and Neo 0.6

Therefore we no longer support sPyNNaker7.

The repositories for this can be found at sPyNNaker8

The new model templates for sPyNNaker8 can be found at sPyNNaker8NewModelTemplate

For help converting existing models (ideally to sPyNNaker8/ PyNN 0.9) please contact the Spinnaker team.

spynnaker7's People

Contributors

alan-stokes avatar andrewgait avatar christian-b avatar dkfellows avatar oliverrhodes avatar pabogdan avatar rowleya avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spynnaker7's Issues

Error when calling PartitionAndPlacePartitioner

Hello everyone,

I wasn't quite sure if I should post the issue here or on the PACMAN repo instead and therefore sorry if I misplaced that one.

Setup description

I have a workflow which creates a network of arbitrary size but with a fixed topology whose interconnected populations of neurons (targets) are also connected to SpikeSourceArray input populations (sources). The targets have been set to stream their output in real-time.

Problem

The workflow fails during partitioning graph vertices with the following (abbreviated) error message:

Partitioning graph vertices
|0% 50% 100%|
2017-07-17 15:51:29 ERROR: Error when calling pacman.operations.partition_algorithms.partition_and_place_partitioner.PartitionAndPlacePartitioner.call with inputs {'machine': [Machine: max_x=23, max_y=11, chips=[[Chip: x=0, y=0, sdram=117 MB, ip_address=192.168.2.1, router=[Router: clock_speed=157 MHz, emergency_routing=False,available_entries=1023, links=[[Link: source_x=0, source_y=0, source_link_id=0, destination_x=1, destination_y=0, default_from=3, default_to=3], [Link: source_x=0, source_y=0, source_link_id=1, destination_x=1, destination_y=1, default_from=4, default_to=4], [Link: source_x=0, source_y=0, source_link_id=2, destination_x=0, destination_y=1, default_from=5, default_to=5], [Link: source_x=0, source_y=0, source_link_id=3, destination_x=23, destination_y=0, default_from=0, default_to=0], [Link: source_x=0, source_y=0, source_link_id=4, destination_x=23, destination_y=11, default_from=1, default_to=1], [Link: source_x=0, source_y=0, source_link_id=5, destination_x=0, destination_y=11, default_from=2, default_to=2]]], processors=[[CPU: id=0, clock_speed=200 MHz, monitor=True], [.......] [CPU: id=17, clock_speed=200 MHz, monitor=False]], nearest_ethernet=16:8]]], 'graph': <pacman.model.graphs.application.application_graph.ApplicationGraph object at 0x7f79ee7c27a0>, 'preallocated_resources': <pacman.model.resources.pre_allocated_resource_container.PreAllocatedResourceContainer object at 0x7f79ec2af200>}

It is important to mention that the failing program runs successfully when using a sPyNNaker release from September 2016 instead of sPyNNaker7.
I also tried to reproduce the error in a separate minimalistic script using a single source and target neurons but it ran just well. So it must be something in the network's topology that breaks it, I assume. However when I down-scaled my SNN such that only 32 populations are created (preserving the original topology) the PartitionAndPlacePartitioner completed without any exception. Then I tried it slightly larger (36 populations) and it failed with the aforementioned error message.

Do you have any idea what might be causing that? A spynnaker.cfg issue? Or maybe I miss something when porting my sPyNNaker Sept 2016 code to sPyNNaker7? The only thing I have changed are some import statements:

  1. from import spynnaker.pyNN to spynnaker7.pyNN
  2. and also one broken old import: from import spynnaker_external_devices_plugin.pyNN as external_device to from spynnaker_external_devices_plugin.pyNN import SpynnakerExternalDevicePluginManager so that SpynnakerExternalDevicePluginManager .activate_live_output_for(...) can be applied on the targets.

Interestingly, the code ran without exceptions some two weeks ago but started to fail after I reinstalled the SpiNNaker tool chain on the 10.07.2017. I will try to revert to a previous commit and check whether it is any more successful. I will also try to compose a fairly small script reproducing this issue if you have absolutely no idea.

Thank you very much!

moval of call

register_database_notification_request should move from pynn.init to pynn.external_devices.init

IndexError on connectionHolder is some cases

In some case the conncetionHolder can throw an IndexError

For example:
import spynnaker7.pyNN as p

p.setup(timestep=1)
pop_1 = p.Population(5, p.IF_curr_exp, {}, label="pop_1")
input = p.Population(5, p.SpikeSourceArray, {'spike_times': [0]},
label="input")
input_proj = p.Projection(input, pop_1,
p.OneToOneConnector(weights=5.0, delays=1),
target="excitatory")
#input_proj= p.Projection(input, pop_1, p.AllToAllConnector(

weights=5.0, delays=1))

repeat_proj = p.Projection(pop_1, pop_1,
p.OneToOneConnector(weights=5.0, delays=1),
target="excitatory")

p.run(20)
weights = input_proj.getWeights(format='array', gather=True)
#weights = input_proj.getWeights(format='list', gather=True)
print weights

Stack Trace:
Traceback (most recent call last):
File "...mini.py", line 19, in
print weights
File "sPyNNaker\spynnaker\pyNN\models\neuron\connection_holder.py", line 205, in str
data = self._get_data_items()
File "sPyNNaker\spynnaker\pyNN\models\neuron\connection_holder.py", line 177, in _get_data_items
connections[item]
IndexError: index 72 is out of bounds for axis 1 with size 5

Note:
Does not happen if I remove the second projection
Does not happen on format="list" (the default)

Not able to replicate in pynn8 so probably not a blocker.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.