From 75e140dca4a34e421fccbe866357043ee8f76ef5 Mon Sep 17 00:00:00 2001 From: "Christian Y. Brenninkmeijer" Date: Fri, 1 Mar 2024 15:15:40 +0000 Subject: [PATCH 1/4] split Chip processors between user and monitor --- .../buffer_management/storage_objects/buffer_database.py | 3 +-- .../host_no_bitfield_router_compression.py | 5 ++--- spinn_front_end_common/utilities/emergency_recovery.py | 3 +-- .../utilities/report_functions/board_chip_report.py | 4 ++-- spinn_front_end_common/utilities/report_functions/reports.py | 2 +- spinn_front_end_common/utilities/utility_calls.py | 2 +- 6 files changed, 8 insertions(+), 11 deletions(-) diff --git a/spinn_front_end_common/interface/buffer_management/storage_objects/buffer_database.py b/spinn_front_end_common/interface/buffer_management/storage_objects/buffer_database.py index 6cb2990539..ef9738363c 100644 --- a/spinn_front_end_common/interface/buffer_management/storage_objects/buffer_database.py +++ b/spinn_front_end_common/interface/buffer_management/storage_objects/buffer_database.py @@ -277,8 +277,7 @@ def store_vertex_labels(self) -> None: self._set_core_name( placement.x, placement.y, placement.p, placement.vertex.label) for chip in FecDataView.get_machine().chips: - for processor in chip.processors: - if processor.is_monitor: + for processor in chip.monitor_processors: self._set_core_name( chip.x, chip.y, processor.processor_id, f"SCAMP(OS)_{chip.x}:{chip.y}") diff --git a/spinn_front_end_common/interface/interface_functions/host_no_bitfield_router_compression.py b/spinn_front_end_common/interface/interface_functions/host_no_bitfield_router_compression.py index 5a3fc08cb6..76c837ddcb 100644 --- a/spinn_front_end_common/interface/interface_functions/host_no_bitfield_router_compression.py +++ b/spinn_front_end_common/interface/interface_functions/host_no_bitfield_router_compression.py @@ -190,9 +190,8 @@ def _load_executables(self) -> ExecutableTargets: processor = routing_table.chip.get_first_none_monitor_processor() # add to the core subsets - if processor: - core_subsets.add_processor( - routing_table.x, routing_table.y, processor.processor_id) + core_subsets.add_processor( + routing_table.x, routing_table.y, processor.processor_id) # build executable targets executable_targets = ExecutableTargets() diff --git a/spinn_front_end_common/utilities/emergency_recovery.py b/spinn_front_end_common/utilities/emergency_recovery.py index fa62454d5d..d5a5f49377 100644 --- a/spinn_front_end_common/utilities/emergency_recovery.py +++ b/spinn_front_end_common/utilities/emergency_recovery.py @@ -47,8 +47,7 @@ def _emergency_state_check() -> None: infos = CPUInfos() errors: List[Tuple[int, int, int]] = list() for chip in machine.chips: - for processor in chip.processors: - p = processor.processor_id + for p in chip.all_processor_ids: try: txrx.add_cpu_information_from_core( infos, chip.x, chip.y, p, _bad_states) diff --git a/spinn_front_end_common/utilities/report_functions/board_chip_report.py b/spinn_front_end_common/utilities/report_functions/board_chip_report.py index 63ae4e4a4a..d134757c01 100644 --- a/spinn_front_end_common/utilities/report_functions/board_chip_report.py +++ b/spinn_front_end_common/utilities/report_functions/board_chip_report.py @@ -60,8 +60,8 @@ def _write_report(writer: TextIO, machine: Machine, progress_bar: ProgressBar): f"({x}, {y}, P: {chip.get_physical_core_id(0)})") n_cores = FecDataView.get_machine_version().max_cores_per_chip down_procs = set(range(n_cores)) - for proc in chip.processors: - down_procs.remove(proc.processor_id) + for p in chip.all_processor_ids: + down_procs.remove(p) for p in down_procs: phys_p = chip.get_physical_core_id(p) core = p diff --git a/spinn_front_end_common/utilities/report_functions/reports.py b/spinn_front_end_common/utilities/report_functions/reports.py index cd2b181be8..5c5e382c23 100644 --- a/spinn_front_end_common/utilities/report_functions/reports.py +++ b/spinn_front_end_common/utilities/report_functions/reports.py @@ -390,7 +390,7 @@ def _write_one_chip_application_placement(f: TextIO, chip: Chip): for placement in FecDataView.iterate_placements_on_core(chip.x, chip.y): if not written_header: f.write(f"**** Chip: ({chip.x}, {chip.y})\n") - f.write(f"Application cores: {len(list(chip.processors))}\n") + f.write(f"Application cores: {chip.n_processors}\n") written_header = True pro_id = placement.p vertex = placement.vertex diff --git a/spinn_front_end_common/utilities/utility_calls.py b/spinn_front_end_common/utilities/utility_calls.py index eb6bffb080..602bc35351 100644 --- a/spinn_front_end_common/utilities/utility_calls.py +++ b/spinn_front_end_common/utilities/utility_calls.py @@ -209,5 +209,5 @@ def pick_core_for_system_placement( :return: a core that a system placement could be put on :rtype: int """ - cores = [p.processor_id for p in chip.processors if not p.is_monitor] + cores = [chip.user_processors] return cores[system_placements.n_placements_on_chip(chip.x, chip.y)] From 43c8c9d180b181352b4502102aec9e83f1533ca0 Mon Sep 17 00:00:00 2001 From: "Christian Y. Brenninkmeijer" Date: Mon, 4 Mar 2024 17:27:58 +0000 Subject: [PATCH 2/4] monitor_processors_ids --- .../buffer_management/storage_objects/buffer_database.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/spinn_front_end_common/interface/buffer_management/storage_objects/buffer_database.py b/spinn_front_end_common/interface/buffer_management/storage_objects/buffer_database.py index f3a233d079..f70133b088 100644 --- a/spinn_front_end_common/interface/buffer_management/storage_objects/buffer_database.py +++ b/spinn_front_end_common/interface/buffer_management/storage_objects/buffer_database.py @@ -280,10 +280,9 @@ def store_vertex_labels(self) -> None: self._set_core_name( placement.x, placement.y, placement.p, placement.vertex.label) for chip in FecDataView.get_machine().chips: - for processor in chip.monitor_processors: + for p in chip.monitor_processors_ids: self._set_core_name( - chip.x, chip.y, processor.processor_id, - f"SCAMP(OS)_{chip.x}:{chip.y}") + chip.x, chip.y, p, f"SCAMP(OS)_{chip.x}:{chip.y}") def get_core_name(self, x: int, y: int, p: int) -> Optional[str]: """ From b03848c68bb6cf4a5d8daa4a00a57b0f779cf0fb Mon Sep 17 00:00:00 2001 From: "Christian Y. Brenninkmeijer" Date: Mon, 4 Mar 2024 17:28:36 +0000 Subject: [PATCH 3/4] use correct chip method --- spinn_front_end_common/utilities/utility_calls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spinn_front_end_common/utilities/utility_calls.py b/spinn_front_end_common/utilities/utility_calls.py index 602bc35351..a5a78753a9 100644 --- a/spinn_front_end_common/utilities/utility_calls.py +++ b/spinn_front_end_common/utilities/utility_calls.py @@ -209,5 +209,5 @@ def pick_core_for_system_placement( :return: a core that a system placement could be put on :rtype: int """ - cores = [chip.user_processors] + cores = list(chip.user_processors_ids) return cores[system_placements.n_placements_on_chip(chip.x, chip.y)] From 28d1ba7881e7a76994f70ddbf171bc4f5a2b5acf Mon Sep 17 00:00:00 2001 From: "Christian Y. Brenninkmeijer" Date: Mon, 4 Mar 2024 17:36:31 +0000 Subject: [PATCH 4/4] flake8 --- .../buffer_management/storage_objects/buffer_database.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spinn_front_end_common/interface/buffer_management/storage_objects/buffer_database.py b/spinn_front_end_common/interface/buffer_management/storage_objects/buffer_database.py index f70133b088..3622fc7295 100644 --- a/spinn_front_end_common/interface/buffer_management/storage_objects/buffer_database.py +++ b/spinn_front_end_common/interface/buffer_management/storage_objects/buffer_database.py @@ -281,8 +281,8 @@ def store_vertex_labels(self) -> None: placement.x, placement.y, placement.p, placement.vertex.label) for chip in FecDataView.get_machine().chips: for p in chip.monitor_processors_ids: - self._set_core_name( - chip.x, chip.y, p, f"SCAMP(OS)_{chip.x}:{chip.y}") + self._set_core_name( + chip.x, chip.y, p, f"SCAMP(OS)_{chip.x}:{chip.y}") def get_core_name(self, x: int, y: int, p: int) -> Optional[str]: """