SpiNNakerManchester / PACMAN

Partition and Configuration Manager for SpiNNaker
Apache License 2.0
9 stars 7 forks source link

MulticastRoutingTableByPartitionEntry needs a Spin2 version #549

Open Christian-B opened 8 months ago

Christian-B commented 8 months ago

MulticastRoutingTableByPartitionEntry its spinnaker_route uses 5 bits for processor id.

It appears that the first 8 ant last 8 bits are used. 3 for link and 5 for processors.

5 bits are not enough for all the spin cores.

===

For spin2 we will need to decide if the cores are virtual or 2d addresses

rowleya commented 8 months ago

I thought the actual bits were part of SpiNNMachine. Maybe this should be the case if it isn't already...

Christian-B commented 8 months ago

There are hard coded n_cores, shifts and masks see https://github.com/SpiNNakerManchester/PACMAN/blob/07ec798013dc86f5ae9d29aaae5b778f178a5705/pacman/model/routing_table_by_partition/multicast_routing_table_by_partition_entry.py#L23

The big issue is that many changes here(python side) need matching changes C side

Christian-B commented 8 months ago

If this is PACMAN or SpiNNMachine is the least of the worries here

rowleya commented 8 months ago

It is more a case of having lots of different places that do the same thing. In some ways, it would be useful for PACMAN to "not care" about the details of SpiNNaker bits, and just ask SpiNNMachine to do it. There is a MulticastRoutingEntry in SpiNNMachine, so maybe this is a better place to do conversions?

In terms of things happening in C, only SCAMP / SARK would need to be different. Nowhere else should care...

Christian-B commented 8 months ago

The relationship between Pacman's MulticastRoutingTableByPartitionEntry and SpinnMachine's MulticastRoutingEntry does need reviewing.

Why have 2 and why does the PACMAN one have and need incoming info.

Christian-B commented 8 months ago

fixed by https://github.com/SpiNNakerManchester/PACMAN/pull/550