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

Custom energy monitoring #274

Merged
merged 10 commits into from
Nov 11, 2024
Merged
Changes from 1 commit
Commits
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
Prev Previous commit
Use chips when boards are 0
rowleya committed Nov 11, 2024
commit 4377b62a8c36d9c9e37da74ff01498beaa5f769c
7 changes: 4 additions & 3 deletions spinn_machine/version/version_3.py
Original file line number Diff line number Diff line change
@@ -102,9 +102,10 @@ def get_idle_energy(
raise SpinnMachineException(
"A version 3 SpiNNaker 1 board has exactly one board!")

# We allow n_boards to be 0 to discount the cost of the board,
# so we multiply by n_boards in case it is 0!
return n_boards * self.WATTS_FOR_4_CHIP_BOARD_IDLE_COST * time_s
# We allow n_boards to be 0 to discount the cost of the board
if n_boards == 0:
return n_chips * self.WATTS_PER_IDLE_CHIP * time_s
return self.WATTS_FOR_4_CHIP_BOARD_IDLE_COST * time_s

@overrides(VersionSpin1.get_active_energy)
def get_active_energy(
7 changes: 5 additions & 2 deletions spinn_machine/version/version_5.py
Original file line number Diff line number Diff line change
@@ -112,8 +112,11 @@ def get_idle_energy(
self, time_s: float, n_frames: int, n_boards: int,
n_chips: int) -> float:

# The board idle energy
energy = n_boards * self.WATTS_FOR_48_CHIP_BOARD_IDLE_COST * time_s
# We allow n_boards to be 0 to discount the cost of the board
if n_boards == 0:
energy = n_chips * self.WATTS_PER_IDLE_CHIP * time_s
else:
energy = n_boards * self.WATTS_FOR_48_CHIP_BOARD_IDLE_COST * time_s

# The container of the boards idle energy
if n_frames != 0:
5 changes: 5 additions & 0 deletions spinn_machine/version/version_spin1.py
Original file line number Diff line number Diff line change
@@ -28,6 +28,11 @@ class VersionSpin1(AbstractVersion, metaclass=AbstractBase):
Shared code for all Spin1 board versions
"""

#: From Optimising the overall power usage on the SpiNNaker neuromimetic
#: platform - all chips on a 48-chip board together use 5.23 + 5.17 + 5.52W
#: + SDRAM of 0.90W = 16.82W when idle, so each chip use 0.35W
WATTS_PER_IDLE_CHIP: Final = 0.35

#: From measuring the power of all 48 chips on a boxed board with all cores
#: idle for 1 hour and 806 cores active for 1 hour we get 31.88W idle and
#: 59.38W active, so 27.50W active overhead, which is 0.034W per core