Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into eprop_adaptive_update
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewgait committed May 9, 2023
2 parents 84d8826 + e6e4f86 commit 72d5d93
Show file tree
Hide file tree
Showing 67 changed files with 462 additions and 119 deletions.
8 changes: 5 additions & 3 deletions .github/workflows/python_actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
Expand Down Expand Up @@ -40,7 +40,7 @@ jobs:
- name: Install pip, etc
uses: ./support/actions/python-tools
- name: Install Spinnaker Dependencies
uses: ./support/actions/checkout-spinn-deps
uses: ./support/actions/install-spinn-deps
with:
repositories: >
SpiNNUtils SpiNNMachine SpiNNMan PACMAN DataSpecification spalloc
Expand Down Expand Up @@ -72,7 +72,9 @@ jobs:
repository: SpiNNakerManchester/SupportScripts
path: support
- name: Run rat copyright enforcement
if: matrix.python-version == 3.8
uses: ./support/actions/check-copyrights
with:
config_file: rat_asl20.xml

- name: Validate CITATION.cff
uses: dieghernan/cff-validator@main
2 changes: 1 addition & 1 deletion .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
108 changes: 108 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Copyright (c) 2017 The University of Manchester
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

cff-version: 1.2.0
message: If you use this software, please cite it as below.
preferred-citation:
type: article
doi: 10.3389/fnins.2018.00816
issn: 1662-453X
url: https://www.frontiersin.org/articles/10.3389/fnins.2018.00816
title: "sPyNNaker: A Software Package for Running PyNN Simulations on SpiNNaker"
journal: Frontiers in Neuroscience
volume: 12
year: 2018
month: 11
abstract: This work presents sPyNNaker 4.0.0, the latest version of the software package for simulating PyNN-defined spiking neural networks (SNNs) on the SpiNNaker neuromorphic platform. Operations underpinning realtime SNN execution are presented, including an event-based operating system facilitating efficient time-driven neuron state updates and pipelined event-driven spike processing. Preprocessing, realtime execution, and neuron/synapse model implementations are discussed, all in the context of a simple example SNN. Simulation results are demonstrated, together with performance profiling providing insights into how software interacts with the underlying hardware to achieve realtime execution. System performance is shown to be within a factor of 2 of the original design target of 10,000 synaptic events per millisecond, however SNN topology is shown to influence performance considerably. A cost model is therefore developed characterizing the effect of network connectivity and SNN partitioning. This model enables users to estimate SNN simulation performance, allows the SpiNNaker team to make predictions on the impact of performance improvements, and helps demonstrate the continued potential of the SpiNNaker neuromorphic hardware.
authors:
- given-names: Oliver
family-names: Rhodes
affiliation: University Of Manchester
orcid: https://orcid.org/0000-0003-1728-2828
website: https://research.manchester.ac.uk/en/persons/oliver.rhodes
- given-names: Petrut
family-names: Bogdan
affiliation: University Of Manchester
orcid: https://orcid.org/0000-0001-5535-7865
- given-names: Christian Y.
family-names: Brenninkmeijer
affiliation: University Of Manchester
email: christian.brenninkmeijer@manchester.ac.uk
orcid: https://orcid.org/0000-0002-2937-7819
website: https://www.researchgate.net/profile/Christian_Brenninkmeijer
- given-names: Simon
family-names: Davidson
affiliation: University Of Manchester
orcid: https://orcid.org/0000-0001-5385-442X
website: https://research.manchester.ac.uk/en/persons/simon.davidson
- given-names: Donal
family-names: Fellows
affiliation: University Of Manchester
orcid: https://orcid.org/0000-0002-9091-5938
website: https://www.researchgate.net/profile/Donal-Fellows
- given-names: Andrew
family-names: Gait
affiliation: University Of Manchester
orcid: https://orcid.org/0000-0001-9349-1096
website: https://personalpages.manchester.ac.uk/staff/andrew.gait/
- given-names: David R.
family-names: Lester
affiliation: University Of Manchester
orcid: https://orcid.org/0000-0002-7267-291X
- given-names: Mantas
family-names: Mikaitis
affiliation: University Of Manchester
orcid: https://orcid.org/0000-0001-8706-1436
website: https://research.manchester.ac.uk/en/persons/mantas.mikaitis
- given-names: Luis A.
family-names: Plana
affiliation: University Of Manchester
orcid: https://orcid.org/0000-0002-6113-3929
website: https://research.manchester.ac.uk/en/persons/luis.plana
- given-names: Andrew G. D.
family-names: Rowley
affiliation: University Of Manchester
email: Andrew.Rowley@manchester.ac.uk
orcid: https://orcid.org/0000-0002-2646-8520
website: https://www.researchgate.net/profile/Andrew_Rowley2
- given-names: Alan B.
family-names: Stokes
affiliation: University Of Manchester
orcid: https://orcid.org/0000-0002-6110-1484
- given-names: Steve B.
family-names: Furber
affiliation: University Of Manchester
orcid: https://orcid.org/0000-0002-6524-3367
website: https://research.manchester.ac.uk/en/persons/steve.furber

title: This repository holds miscellaneous examples of using sPyNNaker for PyNN
authors:
- name: SpiNNaker Software Team
alias: For a list of contributors see https://github.com/SpiNNakerManchester/PyNN8Examples/graphs/contributors or for a combined list see https://spinnakermanchester.github.io/latest/LicenseAgreement.html#contributors
address: University of Manchester, Oxford Road
city: Manchester
country: GB
email: spinnakerusers@googlegroups.com
post-code: M13 9PL
website: https://apt.cs.manchester.ac.uk/projects/SpiNNaker/
url: https://spinnakermanchester.github.io/
contact:
- address: University of Manchester, Oxford Road
city: Manchester
country: GB
email: spinnakerusers@googlegroups.com
name: SpiNNaker Software Team
post-code: M13 9PL
license: Apache-2.0
repository: https://github.com/SpiNNakerManchester/PyNN8Examples
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
https://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

Expand Down Expand Up @@ -193,7 +193,7 @@
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0
https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
10 changes: 5 additions & 5 deletions LICENSE.md → LICENSE_POLICY.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
# License Agreement

Up to date information for the whole [SpiNNakerManchester Projects](https://github.com/SpiNNakerManchester) can be found [here](http://spinnakermanchester.github.io/common_pages/4.0.0/LicenseAgreement.html)
Up to date information for the whole [SpiNNakerManchester Projects](https://github.com/SpiNNakerManchester) can be found [here](https://spinnakermanchester.github.io/latest/LicenseAgreement.html)

As shown there the software is currently being released under the GPL version 3 license listed [here](http://www.gnu.org/copyleft/gpl.html)
As shown there the software is currently being released under the Apache License 2.0 listed [here](https://www.apache.org/licenses/LICENSE-2.0)


# Paper Authorship

See: [here](http://spinnakermanchester.github.io/common_pages/4.0.0/LicenseAgreement.html#paper-authorship)
See: [here](https://spinnakermanchester.github.io/latest/LicenseAgreement.html#paper-authorship)

# Modifications

See: [here](http://spinnakermanchester.github.io/common_pages/4.0.0/LicenseAgreement.html#modifications)
See: [here](https://spinnakermanchester.github.io/latest/LicenseAgreement.html#modifications)

# Contributors

For up to date information on Contributors see the graphs/contributors pages on each project.

For example [https://github.com/SpiNNakerManchester/PyNN8Examples/graphs/contributors](https://github.com/SpiNNakerManchester/PyNN8Examples/graphs/contributors)

[Combined list](http://spinnakermanchester.github.io/common_pages/4.0.0/LicenseAgreement.html#contributors)
[Combined list](https://spinnakermanchester.github.io/latest/LicenseAgreement.html#contributors)

2 changes: 1 addition & 1 deletion examples/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
5 changes: 3 additions & 2 deletions examples/current_injection_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
Expand All @@ -24,7 +24,8 @@
Any other current waveforms could be implemented using StepCurrentSource.
Script from http://neuralensemble.org/docs/PyNN/examples/current_injection.html
Script from
https://neuralensemble.org/docs/PyNN/examples/current_injection.html
"""

Expand Down
2 changes: 1 addition & 1 deletion examples/external_devices_examples/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
2 changes: 1 addition & 1 deletion examples/external_devices_examples/motor_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
22 changes: 11 additions & 11 deletions examples/external_devices_examples/pushbot_ethernet_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,21 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from spynnaker.pyNN.protocols import MUNICH_MODES
import pyNN.spiNNaker as p

p.setup(1.0)

# Set up the PushBot devices
pushbot_protocol = p.external_devices.MunichIoSpiNNakerLinkProtocol(
mode=MUNICH_MODES.PUSH_BOT, uart_id=0)
mode=p.external_devices.protocols.MUNICH_MODES.PUSH_BOT, uart_id=0)
motor_0 = p.external_devices.PushBotEthernetMotorDevice(
p.external_devices.PushBotMotor.MOTOR_0_PERMANENT, pushbot_protocol)
motor_1 = p.external_devices.PushBotEthernetMotorDevice(
Expand Down Expand Up @@ -52,7 +51,8 @@
len(devices), p.external_devices.PushBotLifEthernet(
protocol=pushbot_protocol,
devices=devices,
pushbot_ip_address="10.162.177.57",
pushbot_ip_address="10.10.10.1",
pushbot_port=3000,
# "pushbot_ip_address": "127.0.0.1",
tau_syn_E=500.0),
label="PushBot"
Expand All @@ -76,14 +76,14 @@
p.external_devices.PushBotEthernetRetinaDevice(
protocol=pushbot_protocol,
resolution=retina_resolution,
pushbot_ip_address="10.162.177.57"
pushbot_ip_address="10.10.10.1",
pushbot_port=3000,
retina_injector_label="Retina"
))

viewer = p.external_devices.PushBotRetinaViewer(
retina_resolution.value, port=17895)
retina_viewer = p.external_devices.PushBotRetinaViewer(
retina_resolution, pushbot_retina.label, p)
p.external_devices.activate_live_output_for(
pushbot_retina, port=viewer.local_port, notify=False)
pushbot_retina, database_notify_port_num=retina_viewer.port)

viewer.start()
p.run(len(devices) * 1000)
p.end()
retina_viewer.run(len(devices) * 1000)
Loading

0 comments on commit 72d5d93

Please sign in to comment.