Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extdev fpgas #463

Merged
merged 109 commits into from
Sep 8, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
07c1745
Fix doc
rowleya Jun 24, 2021
1c58a5c
Splitting for external devices, and multi-fpga detection
rowleya Jun 24, 2021
9f4d241
Add here too
rowleya Jun 24, 2021
6ee9e83
Make sure we don't give out things that can't be done
rowleya Jun 25, 2021
b281c62
Merge branch 'unusedxy' into extdev_fpgas
rowleya Jun 25, 2021
bf1ec2a
Merge branch 'unusedxy' into extdev_fpgas
rowleya Jun 25, 2021
6165ada
Allocate negative chip IDs
rowleya Jun 28, 2021
00c762e
Avoid over-generating keys, and reduce operations when everything fixed
rowleya Jun 28, 2021
976ae37
Flake8
rowleya Jun 28, 2021
57f3055
RATs
rowleya Jun 28, 2021
9614a89
Fix doc issue
rowleya Jun 28, 2021
c0bc858
Add the vertex
rowleya Jun 28, 2021
c91c6cb
Merge branch 'master' into extdev_fpgas
rowleya Jun 30, 2021
a940b92
Make sure it is a str
rowleya Jun 30, 2021
9a3969f
Specify how it is to be split
rowleya Jul 1, 2021
59754f8
Place virtual vertices separately to avoid issues
rowleya Jul 1, 2021
906d204
By default, 1
rowleya Jul 1, 2021
600c690
Merge branch 'master' into extdev_fpgas
rowleya Jul 2, 2021
d18c786
Cache the slices to speed things up
rowleya Jul 2, 2021
1612f9d
Fix the name
rowleya Jul 2, 2021
44581b2
Add another filter option
rowleya Jul 2, 2021
1e724cf
Multidimensional slices and ask device for slices
rowleya Jul 5, 2021
6a61243
Don't give these n_atoms
rowleya Jul 5, 2021
0ee8b53
Revert "Don't give these n_atoms"
rowleya Jul 5, 2021
c99f7d0
Make it a property
rowleya Jul 5, 2021
0ad58b1
Fix the output slice
rowleya Jul 7, 2021
c2bf24f
Make a multi-dimensional slice creation routine
rowleya Jul 7, 2021
04a40b1
Make sure this is an int here
rowleya Jul 9, 2021
dc86cc9
Get the multi-dimensional number of keys
rowleya Jul 9, 2021
04a4775
Add utility to get field keys and factor out common bit
rowleya Jul 9, 2021
fc4d0e4
Fix this (it doesn't need self)
rowleya Jul 15, 2021
aae576f
Make printable
rowleya Jul 15, 2021
2dcd5c8
Add a partitioner that simply splits by max atoms per core (in 2D too)
rowleya Jul 15, 2021
032f646
Merge branch 'master' into extdev_fpgas
rowleya Jul 15, 2021
dc92805
Need to return the boolean as well
rowleya Jul 21, 2021
6e85d47
Fix multidimensional slices
rowleya Jul 21, 2021
964750c
Add function to get the raster ids from a multidimensional slice
rowleya Jul 21, 2021
76ce9f5
It's the other way around!
rowleya Jul 21, 2021
b545b39
Make it possible to filter out packets that go nowhere
rowleya Jul 22, 2021
4717f44
Remove unused import
rowleya Jul 22, 2021
288c113
Get the right shift values
rowleya Jul 26, 2021
96dff67
Add some useful things
rowleya Jul 27, 2021
6499e8e
Call method
rowleya Jul 28, 2021
6bfb56e
Fix for SpiNNakerLink devices
rowleya Jul 28, 2021
a978d61
Need to reverse the incoming shape too!
rowleya Jul 29, 2021
e537ce8
Update for SpiNNakerLink
rowleya Sep 13, 2021
5c5e93e
Make 2D things easier to use
rowleya Sep 14, 2021
3c985b0
Remove unused import
rowleya Sep 14, 2021
a13fb25
Remove unnecessary parameter
rowleya Sep 14, 2021
cb7df45
Remove blank line
rowleya Sep 14, 2021
969c2f0
Fixes
rowleya Sep 14, 2021
248a62b
Fix more
rowleya Sep 14, 2021
d3a7770
Update to support incoming and outgoing
rowleya Sep 14, 2021
cb76e2c
Change order
rowleya Sep 14, 2021
3ca7c88
Merge branch 'master' into extdev_fpgas
rowleya Nov 12, 2021
c6e09ff
Allow chip coordinates to be used for external devices
rowleya Nov 12, 2021
da8f904
Make sure the chip coordinates get to where they need to
rowleya Nov 19, 2021
6ec521c
Add an inverse function
rowleya Dec 3, 2021
e39e3ea
It doesn't matter if the same key goes to the same place
rowleya Dec 3, 2021
7f6eb30
Fix test
rowleya Dec 3, 2021
73f41cb
Merge branch 'master' into extdev_fpgas
rowleya Mar 7, 2022
e6de13f
Merge branch 'master' into extdev_fpgas
rowleya Apr 28, 2022
84633c2
Merge branch 'master' into extdev_fpgas
rowleya Jun 7, 2022
8e2df24
Max atoms is now a vertex property
rowleya Jun 7, 2022
bbf92ff
Repair
rowleya Jun 7, 2022
be33be4
Change default outgoing to True for now
andrewgait Jun 27, 2022
f27a4a5
Merge remote-tracking branch 'origin/master' into extdev_fpgas
andrewgait Jul 14, 2022
b29501b
Remember machine vertex in splitter, and fix tests
andrewgait Jul 15, 2022
aeb1965
Update allocation of fixed keys
andrewgait Jul 15, 2022
b8804dc
flake8 edge no longer used
andrewgait Jul 15, 2022
bd9a44b
flake8 unused imports
andrewgait Jul 15, 2022
f5e3031
Merge remote-tracking branch 'origin/master' into extdev_fpgas
andrewgait Jul 25, 2022
5677172
Merge remote-tracking branch 'origin/master' into extdev_fpgas
andrewgait Aug 3, 2022
2de18a7
flake8 whitespace
andrewgait Aug 3, 2022
befbb1a
Merge remote-tracking branch 'origin/master' into extdev_fpgas
andrewgait Aug 4, 2022
167b5a7
Match changes elsewhere
andrewgait Aug 4, 2022
2e3e730
Get rid of old constraints, and fix fixed allocation
rowleya Aug 23, 2022
b698089
Flake8
rowleya Aug 23, 2022
ea69f5d
Label better for debugging
rowleya Aug 24, 2022
7672c35
Fix error
rowleya Aug 24, 2022
fb72bd2
Fix link data for chip coords
rowleya Aug 24, 2022
7608a8e
Don't merge on things with holes!
rowleya Aug 24, 2022
b288a29
More interfaces that aren't used
rowleya Aug 24, 2022
ee3a384
Fix splitter to new output standard
rowleya Aug 31, 2022
38ade53
Fix merge issue
rowleya Aug 31, 2022
7002e7f
Remove odd comment
rowleya Sep 2, 2022
a30b8ff
Remove commented-out code
rowleya Sep 2, 2022
fc6a3fa
Better checking
rowleya Sep 2, 2022
99421aa
Refactor checks
rowleya Sep 2, 2022
955c25e
Give a default slice
rowleya Sep 2, 2022
b557fda
Even better, this is provided by default
rowleya Sep 2, 2022
3146fbc
Factor out abstractfpga and abstractspinnakerlink
rowleya Sep 2, 2022
06fb3c1
Remove unused
rowleya Sep 2, 2022
9672f9c
Remove oddity
rowleya Sep 2, 2022
a6e476c
This mechanism is no longer needed as the current router will do this
rowleya Sep 2, 2022
32c857d
Docs
rowleya Sep 2, 2022
35da565
Date
rowleya Sep 2, 2022
46d34e8
Fix oddity
rowleya Sep 2, 2022
c0f633a
Add label
rowleya Sep 2, 2022
f2b0af9
While isn't the new if
rowleya Sep 2, 2022
2ea8b5c
Use log2
rowleya Sep 2, 2022
d72a6f7
Move code to vertices
rowleya Sep 2, 2022
1f26011
Remove unused
rowleya Sep 2, 2022
a75a269
Add interface to get link data directly
rowleya Sep 2, 2022
42d182c
Move things to avoid looping
rowleya Sep 2, 2022
3cba940
Add to init properly
rowleya Sep 2, 2022
2c1c7c5
Refactor max atoms per core for multiple dimensions
rowleya Sep 6, 2022
5f286da
Remove unused import
rowleya Sep 6, 2022
8e291df
Handle single machine vertices separately
rowleya Sep 7, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions pacman/model/constraints/key_allocator_constraints/__init__.py

This file was deleted.

This file was deleted.

This file was deleted.

18 changes: 0 additions & 18 deletions pacman/model/constraints/partitioner_constraints/__init__.py

This file was deleted.

This file was deleted.

6 changes: 2 additions & 4 deletions pacman/model/graphs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,15 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.

from .abstract_edge import AbstractEdge
from .abstract_fpga import AbstractFPGA
from .abstract_vertex import AbstractVertex
from .abstract_virtual import AbstractVirtual
from .abstract_spinnaker_link import AbstractSpiNNakerLink
from .abstract_edge_partition import AbstractEdgePartition
from .abstract_multiple_partition import AbstractMultiplePartition
from .abstract_single_source_partition import AbstractSingleSourcePartition
from .abstract_supports_sdram_edges import AbstractSupportsSDRAMEdges

__all__ = [
"AbstractEdge", "AbstractEdgePartition", "AbstractFPGA",
"AbstractEdge", "AbstractEdgePartition",
"AbstractMultiplePartition", "AbstractSingleSourcePartition",
"AbstractSpiNNakerLink", "AbstractSupportsSDRAMEdges", "AbstractVertex",
"AbstractSupportsSDRAMEdges", "AbstractVertex",
"AbstractVirtual"]
42 changes: 0 additions & 42 deletions pacman/model/graphs/abstract_fpga.py

This file was deleted.

37 changes: 0 additions & 37 deletions pacman/model/graphs/abstract_spinnaker_link.py

This file was deleted.

47 changes: 43 additions & 4 deletions pacman/model/graphs/abstract_virtual.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

from spinn_utilities.abstract_base import abstractproperty
from spinn_utilities.abstract_base import abstractmethod, abstractproperty
from spinn_utilities.require_subclass import require_subclass
from pacman.model.graphs.abstract_vertex import AbstractVertex

Expand All @@ -32,8 +32,47 @@ class AbstractVirtual(object):

@abstractproperty
def board_address(self):
""" The IP address of the board to which the device is connected,\
or ``None`` for the boot board.
""" The IP address of the board to which the device is connected,
or ``None`` for the boot board, or when using linked chip
coordinates.

:rtype: str
:rtype: str or None
"""

@abstractproperty
def linked_chip_coordinates(self):
""" The coordinates of the chip to which the device is connected,
or ``None`` for the boot board, or when using a board address.

:rtype: tuple(int, int) or None
"""

@abstractmethod
def outgoing_keys_and_masks(self):
""" Get the keys sent by the device or None if there aren't any
explicitly defined.

:rtype: list of KeyAndMask or None
"""

@abstractproperty
def incoming(self):
""" Indicates if this device sends traffic into SpiNNaker

:rtype: bool
"""

@abstractproperty
def outgoing(self):
""" Indicates if this device receives traffic from SpiNNaker

:rtype: bool
"""

@abstractmethod
def get_link_data(self, machine):
""" Get link data from the machine

:param Machine machine: The machine to get the data from
:rtype: AbstractLinkData
"""
11 changes: 10 additions & 1 deletion pacman/model/graphs/application/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,16 @@
from .application_spinnaker_link_vertex import ApplicationSpiNNakerLinkVertex
from .application_vertex import ApplicationVertex
from .application_edge_partition import ApplicationEdgePartition
from .fpga_connection import FPGAConnection
from .application_2d_fpga_vertex import Application2DFPGAVertex
from .application_2d_spinnaker_link_vertex import (
Application2DSpiNNakerLinkVertex)
from .application_virtual_vertex import ApplicationVirtualVertex


__all__ = ["ApplicationEdge", "ApplicationEdgePartition",
"ApplicationFPGAVertex", "ApplicationGraph",
"ApplicationSpiNNakerLinkVertex", "ApplicationVertex"]
"ApplicationSpiNNakerLinkVertex", "ApplicationVertex",
"FPGAConnection", "Application2DFPGAVertex",
"Application2DSpiNNakerLinkVertex",
"ApplicationVirtualVertex"]
3 changes: 2 additions & 1 deletion pacman/model/graphs/application/abstract/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.

from .abstract_one_app_one_machine_vertex import AbstractOneAppOneMachineVertex
from .abstract_2d_device_vertex import Abstract2DDeviceVertex

__all__ = ["AbstractOneAppOneMachineVertex"]
__all__ = ["AbstractOneAppOneMachineVertex", "Abstract2DDeviceVertex"]
Loading