Memory usage

38 views
Skip to first unread message

mazdak fatahi

unread,
Sep 23, 2022, 9:05:17 AM9/23/22
to SpiNNaker Users Group
Hello,

I would like to measure the memory usage of my model on SpiNNaker. I've found some things in input_output_database.db file in the Machine_vertices table for cpu_used, sdram_used, and dtcm_used (I attached the extracted CSV file).
But I'm not sure if this is the one I need. 
In fact, I have two different implementations and I want to compare them in case of some metrics like SDRAM, number of cores, and...
Could you please help me with that?
How can I measure the total SDRAM used by the model and also the number of cores which are involved in the simulation? 
I think by setting the number of neurons/core, the number of used cores is clear but, since in the partitioning phase something may change, I'm not sure about that.

Also, it will be great if you can propose to me any other measurable metrics that are reported by the board.

Thank you in advance for your help and support

Best regards,
Mazdak FATAHI
Machine_vertices.csv

Andrew Gait

unread,
Sep 23, 2022, 9:24:12 AM9/23/22
to mazdak fatahi, SpiNNaker Users Group
Hi,

You can find the SDRAM used per core and per chip in a report in the report directory for the run.  This can be found in the directory the job or notebook was run from, in the file:

reports/<TIME_STRING>/run_1/chip_sdram_usage_by_core.rpt

where TIME_STRING is the date/time of the run.  If you have multiple calls to run() within the same script then you may find more directories than "run_1" in this location, and they should be sequentially numbered.

Be aware too that the reports/ directory keeps a maximum of 10 completed runs; older ones are deleted once a new run is performed in a directory where the reports folder contains more than 10 completed runs (you may see more than 10 runs in your reports/ directory if you have had any runs that crashed in the past).  So if you are wishing to keep this data for further analysis, please copy it somewhere else before running further tests from the same directory.

Andy

----------------------------------------------------
Dr. Andrew Gait (he/him),
Research Software Engineer,
APT Group,
Department of Computer Science,
The University of Manchester,
Oxford Road, Manchester M13 9PL

email: andre...@manchester.ac.uk
web: http://personalpages.manchester.ac.uk/staff/Andrew.Gait/

I do not expect a reply to this email outside of normal working hours

From: spinnak...@googlegroups.com <spinnak...@googlegroups.com> on behalf of mazdak fatahi <mazdak...@gmail.com>
Sent: 23 September 2022 14:05
To: SpiNNaker Users Group <spinnak...@googlegroups.com>
Subject: [SpiNNaker Mailing List] Memory usage
 
--
You received this message because you are subscribed to the Google Groups "SpiNNaker Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to spinnakeruser...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/spinnakerusers/1f9631f7-d0ab-45ed-b198-c31d1fc75296n%40googlegroups.com.

mazdak fatahi

unread,
Sep 23, 2022, 9:43:24 AM9/23/22
to SpiNNaker Users Group
Thank you
Best regards,

mazdak fatahi

unread,
Sep 30, 2022, 6:18:32 AM9/30/22
to SpiNNaker Users Group
Hello,

I want to use the chip_sdram_usage_by_core.rpt file to estimate the total memory usage of my models (to compare the improvement).
But I don't know which part is the part I can put in my report as the memory usage of my model.

Also, I set the simulation time as the same number (time_step=xxxx) for both of the models that I want to compare, but "Based on _____ timesteps" is not the same in the report files. What does that mean? Since I need to have exactly the same conditions for both of my simulations, I'm not sure if I can still compare them or not ?

Please help me with that.
===================
        Memory Usage by Core
        ====================

Generated: Fri Sep 30 11:13:27 2022 for target machine '10.11.193.81'

Planned by partitioner
----------------------
Based on 1000 timesteps

SDRAM reqs for core (4,4,5) is 736 KB (754436.0 bytes) for Placement(vertex=EXC_POP_0:0:99, x=4, y=4, p=5)
SDRAM reqs for core (4,4,4) is 736 KB (754436.0 bytes) for Placement(vertex=EXC_POP_0:100:199, x=4, y=4, p=4)
SDRAM reqs for core (4,4,3) is 736 KB (754436.0 bytes) for Placement(vertex=EXC_POP_0:200:299, x=4, y=4, p=3)
SDRAM reqs for core (4,4,2) is 736 KB (754436.0 bytes) for Placement(vertex=EXC_POP_0:300:399, x=4, y=4, p=2)
SDRAM reqs for core (4,4,7) is 436 KB (447464.0 bytes) for Placement(vertex=EXC_POP_1:0:99, x=4, y=4, p=7)
SDRAM reqs for core (6,6,2) is 582 KB (596264.0 bytes) for Placement(vertex=EXC_POP_1:1000:1099, x=6, y=6, p=2)
SDRAM reqs for core (5,4,2) is 441 KB (452264.0 bytes) for Placement(vertex=EXC_POP_1:100:199, x=5, y=4, p=2)
SDRAM reqs for core (5,6,2) is 582 KB (596264.0 bytes) for Placement(vertex=EXC_POP_1:1100:1199, x=5, y=6, p=2)
SDRAM reqs for core (4,6,2) is 582 KB (596264.0 bytes) for Placement(vertex=EXC_POP_1:1200:1299, x=4, y=6, p=2)
SDRAM reqs for core (3,5,2) is 582 KB (596264.0 bytes) for Placement(vertex=EXC_POP_1:1300:1399, x=3, y=5, p=2)
SDRAM reqs for core (2,4,2) is 582 KB (596264.0 bytes) for Placement(vertex=EXC_POP_1:1400:1499, x=2, y=4, p=2)
SDRAM reqs for core (2,3,2) is 582 KB (596264.0 bytes) for Placement(vertex=EXC_POP_1:1500:1599, x=2, y=3, p=2)
SDRAM reqs for core (5,5,2) is 476 KB (487464.0 bytes) for Placement(vertex=EXC_POP_1:200:299, x=5, y=5, p=2)
SDRAM reqs for core (4,5,2) is 538 KB (551464.0 bytes) for Placement(vertex=EXC_POP_1:300:399, x=4, y=5, p=2)
SDRAM reqs for core (3,4,2) is 555 KB (569064.0 bytes) for Placement(vertex=EXC_POP_1:400:499, x=3, y=4, p=2)
SDRAM reqs for core (3,3,2) is 568 KB (581864.0 bytes) for Placement(vertex=EXC_POP_1:500:599, x=3, y=3, p=2)
SDRAM reqs for core (4,3,2) is 582 KB (596264.0 bytes) for Placement(vertex=EXC_POP_1:600:699, x=4, y=3, p=2)
SDRAM reqs for core (6,4,2) is 582 KB (596264.0 bytes) for Placement(vertex=EXC_POP_1:700:799, x=6, y=4, p=2)
SDRAM reqs for core (6,5,2) is 582 KB (596264.0 bytes) for Placement(vertex=EXC_POP_1:800:899, x=6, y=5, p=2)
SDRAM reqs for core (5,3,2) is 582 KB (596264.0 bytes) for Placement(vertex=EXC_POP_1:900:999, x=5, y=3, p=2)
SDRAM reqs for core (0,0,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor, x=0, y=0, p=1)
SDRAM reqs for core (0,1,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor1, x=0, y=1, p=1)
SDRAM reqs for core (2,1,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor10, x=2, y=1, p=1)
SDRAM reqs for core (2,2,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor11, x=2, y=2, p=1)
SDRAM reqs for core (2,3,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor12, x=2, y=3, p=1)
SDRAM reqs for core (2,4,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor13, x=2, y=4, p=1)
SDRAM reqs for core (2,5,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor14, x=2, y=5, p=1)
SDRAM reqs for core (3,0,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor15, x=3, y=0, p=1)
SDRAM reqs for core (3,1,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor16, x=3, y=1, p=1)
SDRAM reqs for core (3,2,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor17, x=3, y=2, p=1)
SDRAM reqs for core (3,3,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor18, x=3, y=3, p=1)
SDRAM reqs for core (3,4,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor19, x=3, y=4, p=1)
SDRAM reqs for core (0,2,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor2, x=0, y=2, p=1)
SDRAM reqs for core (3,5,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor20, x=3, y=5, p=1)
SDRAM reqs for core (3,6,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor21, x=3, y=6, p=1)
SDRAM reqs for core (4,0,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor22, x=4, y=0, p=1)
SDRAM reqs for core (4,1,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor23, x=4, y=1, p=1)
SDRAM reqs for core (4,2,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor24, x=4, y=2, p=1)
SDRAM reqs for core (4,3,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor25, x=4, y=3, p=1)
SDRAM reqs for core (4,4,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor26, x=4, y=4, p=1)
SDRAM reqs for core (4,5,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor27, x=4, y=5, p=1)
SDRAM reqs for core (4,6,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor28, x=4, y=6, p=1)
SDRAM reqs for core (4,7,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor29, x=4, y=7, p=1)
SDRAM reqs for core (0,3,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor3, x=0, y=3, p=1)
SDRAM reqs for core (5,1,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor30, x=5, y=1, p=1)
SDRAM reqs for core (5,2,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor31, x=5, y=2, p=1)
SDRAM reqs for core (5,3,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor32, x=5, y=3, p=1)
SDRAM reqs for core (5,4,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor33, x=5, y=4, p=1)
SDRAM reqs for core (5,5,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor34, x=5, y=5, p=1)
SDRAM reqs for core (5,6,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor35, x=5, y=6, p=1)
SDRAM reqs for core (5,7,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor36, x=5, y=7, p=1)
SDRAM reqs for core (6,2,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor37, x=6, y=2, p=1)
SDRAM reqs for core (6,3,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor38, x=6, y=3, p=1)
SDRAM reqs for core (6,4,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor39, x=6, y=4, p=1)
SDRAM reqs for core (1,0,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor4, x=1, y=0, p=1)
SDRAM reqs for core (6,5,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor40, x=6, y=5, p=1)
SDRAM reqs for core (6,6,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor41, x=6, y=6, p=1)
SDRAM reqs for core (6,7,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor42, x=6, y=7, p=1)
SDRAM reqs for core (7,3,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor43, x=7, y=3, p=1)
SDRAM reqs for core (7,4,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor44, x=7, y=4, p=1)
SDRAM reqs for core (7,5,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor45, x=7, y=5, p=1)
SDRAM reqs for core (7,6,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor46, x=7, y=6, p=1)
SDRAM reqs for core (7,7,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor47, x=7, y=7, p=1)
SDRAM reqs for core (1,1,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor5, x=1, y=1, p=1)
SDRAM reqs for core (1,2,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor6, x=1, y=2, p=1)
SDRAM reqs for core (1,3,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor7, x=1, y=3, p=1)
SDRAM reqs for core (1,4,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor8, x=1, y=4, p=1)
SDRAM reqs for core (2,0,1) is 476 KB (488156 bytes) for Placement(vertex=SYSTEM:ExtraMonitor9, x=2, y=0, p=1)
SDRAM reqs for core (0,0,2) is 466 KB (477234 bytes) for Placement(vertex=SYSTEM:PacketGatherer(0,0), x=0, y=0, p=2)
SDRAM reqs for core (4,4,6) is 1388 KB (1421608.0 bytes) for Placement(vertex=input:0:783, x=4, y=4, p=6)
**** Chip: (0, 0) has total memory usage of 942 KB (965390 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (0, 1) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (0, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (0, 3) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (1, 0) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (1, 1) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (1, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (1, 3) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (1, 4) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (2, 0) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (2, 1) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (2, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (2, 3) has total memory usage of 1059 KB (1084420.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (2, 4) has total memory usage of 1059 KB (1084420.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (2, 5) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 0) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 1) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 3) has total memory usage of 1044 KB (1070020.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 4) has total memory usage of 1032 KB (1057220.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 5) has total memory usage of 1059 KB (1084420.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 6) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 0) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 1) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 3) has total memory usage of 1059 KB (1084420.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 4) has total memory usage of 5248 KB (5374972.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 5) has total memory usage of 1015 KB (1039620.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 6) has total memory usage of 1059 KB (1084420.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 7) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 1) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 3) has total memory usage of 1059 KB (1084420.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 4) has total memory usage of 918 KB (940420.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 5) has total memory usage of 952 KB (975620.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 6) has total memory usage of 1059 KB (1084420.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 7) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (6, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (6, 3) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (6, 4) has total memory usage of 1059 KB (1084420.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (6, 5) has total memory usage of 1059 KB (1084420.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (6, 6) has total memory usage of 1059 KB (1084420.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (6, 7) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (7, 3) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (7, 4) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (7, 5) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (7, 6) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (7, 7) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)


Actual space reserved on the machine
----------------------
Based on 34360 timesteps

 core (4,4,5) Fixed 330436 bytes Per_timestep 424.0 bytes for a total of 14899076.0
 core (4,4,4) Fixed 330436 bytes Per_timestep 424.0 bytes for a total of 14899076.0
 core (4,4,3) Fixed 330436 bytes Per_timestep 424.0 bytes for a total of 14899076.0
 core (4,4,2) Fixed 330436 bytes Per_timestep 424.0 bytes for a total of 14899076.0
 core (4,4,7) Fixed 23464 bytes Per_timestep 424.0 bytes for a total of 14592104.0
 core (6,6,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (5,4,2) Fixed 28264 bytes Per_timestep 424.0 bytes for a total of 14596904.0
 core (5,6,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (4,6,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (3,5,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (2,4,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (2,3,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (5,5,2) Fixed 63464 bytes Per_timestep 424.0 bytes for a total of 14632104.0
 core (4,5,2) Fixed 127464 bytes Per_timestep 424.0 bytes for a total of 14696104.0
 core (3,4,2) Fixed 145064 bytes Per_timestep 424.0 bytes for a total of 14713704.0
 core (3,3,2) Fixed 157864 bytes Per_timestep 424.0 bytes for a total of 14726504.0
 core (4,3,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (6,4,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (6,5,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (5,3,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (0,0,1) Constant 488156 bytes
 core (0,1,1) Constant 488156 bytes
 core (2,1,1) Constant 488156 bytes
 core (2,2,1) Constant 488156 bytes
 core (2,3,1) Constant 488156 bytes
 core (2,4,1) Constant 488156 bytes
 core (2,5,1) Constant 488156 bytes
 core (3,0,1) Constant 488156 bytes
 core (3,1,1) Constant 488156 bytes
 core (3,2,1) Constant 488156 bytes
 core (3,3,1) Constant 488156 bytes
 core (3,4,1) Constant 488156 bytes
 core (0,2,1) Constant 488156 bytes
 core (3,5,1) Constant 488156 bytes
 core (3,6,1) Constant 488156 bytes
 core (4,0,1) Constant 488156 bytes
 core (4,1,1) Constant 488156 bytes
 core (4,2,1) Constant 488156 bytes
 core (4,3,1) Constant 488156 bytes
 core (4,4,1) Constant 488156 bytes
 core (4,5,1) Constant 488156 bytes
 core (4,6,1) Constant 488156 bytes
 core (4,7,1) Constant 488156 bytes
 core (0,3,1) Constant 488156 bytes
 core (5,1,1) Constant 488156 bytes
 core (5,2,1) Constant 488156 bytes
 core (5,3,1) Constant 488156 bytes
 core (5,4,1) Constant 488156 bytes
 core (5,5,1) Constant 488156 bytes
 core (5,6,1) Constant 488156 bytes
 core (5,7,1) Constant 488156 bytes
 core (6,2,1) Constant 488156 bytes
 core (6,3,1) Constant 488156 bytes
 core (6,4,1) Constant 488156 bytes
 core (1,0,1) Constant 488156 bytes
 core (6,5,1) Constant 488156 bytes
 core (6,6,1) Constant 488156 bytes
 core (6,7,1) Constant 488156 bytes
 core (7,3,1) Constant 488156 bytes
 core (7,4,1) Constant 488156 bytes
 core (7,5,1) Constant 488156 bytes
 core (7,6,1) Constant 488156 bytes
 core (7,7,1) Constant 488156 bytes
 core (1,1,1) Constant 488156 bytes
 core (1,2,1) Constant 488156 bytes
 core (1,3,1) Constant 488156 bytes
 core (1,4,1) Constant 488156 bytes
 core (2,0,1) Constant 488156 bytes
 core (0,0,2) Constant 477234 bytes
 core (4,4,6) Fixed 1608 bytes Per_timestep 1420.0 bytes for a total of 48792808.0
**** Chip: (0, 0) has total memory usage of 942 KB (965390 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (0, 1) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (0, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (0, 3) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (1, 0) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (1, 1) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (1, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (1, 3) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (1, 4) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (2, 0) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (2, 1) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (2, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (2, 3) has total memory usage of 14872 KB (15229060.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (2, 4) has total memory usage of 14872 KB (15229060.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (2, 5) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 0) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 1) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 3) has total memory usage of 14858 KB (15214660.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 4) has total memory usage of 14845 KB (15201860.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 5) has total memory usage of 14872 KB (15229060.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (3, 6) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 0) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 1) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 3) has total memory usage of 14872 KB (15229060.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 4) has total memory usage of 120575 KB (123469372.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 5) has total memory usage of 14828 KB (15184260.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 6) has total memory usage of 14872 KB (15229060.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (4, 7) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 1) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 3) has total memory usage of 14872 KB (15229060.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 4) has total memory usage of 14731 KB (15085060.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 5) has total memory usage of 14765 KB (15120260.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 6) has total memory usage of 14872 KB (15229060.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (5, 7) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (6, 2) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (6, 3) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (6, 4) has total memory usage of 14872 KB (15229060.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (6, 5) has total memory usage of 14872 KB (15229060.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (6, 6) has total memory usage of 14872 KB (15229060.0 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (6, 7) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (7, 3) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (7, 4) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (7, 5) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (7, 6) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

**** Chip: (7, 7) has total memory usage of 476 KB (488156 bytes) out of a max of 120575 KB (123469792 bytes)

Andrew Gait

unread,
Sep 30, 2022, 7:00:24 AM9/30/22
to mazdak fatahi, SpiNNaker Users Group
Hi,

I see the problem - the report file doesn't actually tell you exactly what you want to know straight away.  You should ignore the "Planned by partitioner" section and go straight to the "Actual space reserved on the machine" section; here, what the number of timesteps refers to is not the number of timesteps you have specified to run for, but the maximum number of timesteps that the tools have calculated can be run before a simulation needs to be paused to collect data from the machine, and then resumed once this data has been collected.  (You will know if this is happening as the log will say e.g. Run 1 of N where N is larger than 1). 

You will see that there is different reporting for each core depending on whether it is running a population vertex (in this case it will say e.g. (Fixed X bytes Per_timestep Y bytes for a total of (X+timesteps*Y) bytes) or a system vertex (where it will say "Constant XX bytes").  If you are just comparing two models then you can likely ignore the system vertex numbers, and all you should need to do to work out your memory usage is to take the fixed SDRAM cost and add it to (Per_timestep SDRAM cost * n_timesteps) where n_timesteps is how long you are actually running for.

Note that this will be fine assuming that n_timesteps is less than the maximum number of timesteps in the report file; if this is not the case and you follow the above calculation steps then you'll find the usage to be greater than the actual amount of SDRAM available to you - if this is the case then you ought to note this in your report and either say that you are using the maximum SDRAM available, or give your total memory usage and say the usage is across multiple runs.

Andy

----------------------------------------------------
Dr. Andrew Gait (he/him),
Research Software Engineer,
APT Group,
Department of Computer Science,
The University of Manchester,
Oxford Road, Manchester M13 9PL

email: andre...@manchester.ac.uk
web: http://personalpages.manchester.ac.uk/staff/Andrew.Gait/

I do not expect a reply to this email outside of normal working hours

Sent: 30 September 2022 11:18

To: SpiNNaker Users Group <spinnak...@googlegroups.com>
Subject: Re: [SpiNNaker Mailing List] Memory usage
 

Christian Brenninkmeijer

unread,
Sep 30, 2022, 8:24:06 AM9/30/22
to SpiNNaker Users Group

Hi,
What Andy said is correct but to add so extra information.

The reason for this complexity is to support the users who do
sim.run(1)
sim.run(10000)
When we only reserved enough space for 1 timestep on the first run the second long run would have to pause 9999 times.


Note also the values used for planning and in the report are the values provided by the vertex classes sdram_required property.
So if you are changing models you have to change the values given by your vertices.


The "Planned by partitioner" time is based on the cfg value
[Buffers]
minimum_auto_time_steps = 1000

This insures that partitioning and placing will never create a plan that cannot run for at least 1000 timesteps before a simulation needs to be paused to collect data from the machine.

These size calculations do not depend on what else is on the machine or where each vertex is placed.




The "Actual space reserved on the machine" / "maximum number of timesteps that the tools have calculated" is as high as it can go so that at least 1 Chip uses all off its sdram.  (Assuming at least 1 vertex has Per_timestep SDRAM)

These size calculations are therefor affected by other vertices and where vertices are placed.

If any vertex under states its SDRAM usage this can cause an error.
It is ok for a vertex to over states its SDRAM usage . This just reduces the time between pauses.




As Andy says the "Fixed" "Per_timestep" and "Constant" are the same for both the "Planned by partitioner" and the "Actual space reserved on the machine" sections of the report.
The difference between "fixed" and "Constant" is that "Fixed" is just part of the full SDRAM for that vertex which "Constant" is the full SDRAM for that Vertex.


You may want to consider adding another report to give that information for just the Vertices you care about.

Add a filter based on placement.vertex to only measure those you care about.

You may only need to track two over all values.
The sum of all fixed and constant 
The sum of all per_timestep

as a starting point.

Christian







From: spinnak...@googlegroups.com <spinnak...@googlegroups.com> on behalf of Andrew Gait <Andre...@manchester.ac.uk>
Sent: 30 September 2022 12:00
To: mazdak fatahi <mazdak...@gmail.com>; SpiNNaker Users Group <spinnak...@googlegroups.com>

mazdak fatahi

unread,
Oct 1, 2022, 5:28:02 PM10/1/22
to SpiNNaker Users Group
Dear Andrew,

Thank you for the valuable notes.
If I understand correctly, since "the actual run time" (29005) in my simulations is less than the "Maximum number of timesteps" (34362), what I need is to add all the last amount of bytes that are mentioned as Fixed X .... in the "Actual space reserved on the machine" section.
In the case of my previous post:
----------------------
Based on 34360 timesteps

 core (4,4,5) Fixed 330436 bytes Per_timestep 424.0 bytes for a total of 14899076.0
 core (4,4,4) Fixed 330436 bytes Per_timestep 424.0 bytes for a total of 14899076.0
 core (4,4,3) Fixed 330436 bytes Per_timestep 424.0 bytes for a total of 14899076.0
 core (4,4,2) Fixed 330436 bytes Per_timestep 424.0 bytes for a total of 14899076.0
 core (4,4,7) Fixed 23464 bytes Per_timestep 424.0 bytes for a total of 14592104.0
 core (6,6,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (5,4,2) Fixed 28264 bytes Per_timestep 424.0 bytes for a total of 14596904.0
 core (5,6,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (4,6,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (3,5,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (2,4,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (2,3,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (5,5,2) Fixed 63464 bytes Per_timestep 424.0 bytes for a total of 14632104.0
 core (4,5,2) Fixed 127464 bytes Per_timestep 424.0 bytes for a total of 14696104.0
 core (3,4,2) Fixed 145064 bytes Per_timestep 424.0 bytes for a total of 14713704.0
 core (3,3,2) Fixed 157864 bytes Per_timestep 424.0 bytes for a total of 14726504.0
 core (4,3,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (6,4,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (6,5,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0
 core (5,3,2) Fixed 172264 bytes Per_timestep 424.0 bytes for a total of 14740904.0

Ignoring the "Constant XX bytes", and + last line ( core (4,4,6) Fixed 1608 bytes Per_timestep 1420.0 bytes for a total of 48792808.0).
============
And since "one run" is occurred, then I can report the mentioned summation as total memory usage of the simulation
Am I correct?

Best regards,
Mazdak FATAHI

mazdak fatahi

unread,
Oct 2, 2022, 3:58:24 PM10/2/22
to SpiNNaker Users Group
Dear Christian,
Hello

Thank you so much for the details.
Thanks to the code, I added a piece of code to my simulation to get the total memory inside. 
Please correct me if I'm not right:

As Andy says the "Fixed" "Per_timestep" and "Constant" are the same for both the "Planned by partitioner" and the "Actual space reserved on the machine" sections of the report.
As I understand, "Per_timestep" is the same in both sections: in  "Planned by partitioner" section "SDRAM reqs for core" for each vertex, is calculated based on the "minimum_auto_time_steps" (FecDataView.get_plan_n_timestep()from the config file and in  "Actual space reserved on the machine" section, "total" is printed as:
                                                                                                                           placement.vertex.sdram_required.per_timestep*FecDataView.get_max_run_time_steps() placement.vertex.sdram_required.fixed
which is available as:
                                                                                                                           placement.vertex.sdram_required.get_total_sdram(timesteps)
                                                                                                                           Where 'timestep' ={minimum_auto_time_steps, max_run_time_steps
Question 1): 
                After sim.run(1), by setting timesteps=total_simulation_time, can I measure the total SDRAM without running the simulation for total_simulation_time? (I checked that by running the simulation with some different times,  it seems per_timestep is only based on the populations and connections. With the same model, I saw the same per_timestep)

Ex.:
The following, are the first line from each report 'Planned by partitioner' and 'Actual space reserved on the machine':
Planned by partitioner
----------------------
Based on 1000 timesteps
SDRAM reqs for core (0,0,3) is 1388 KB (1421932.0 bytes) for Placement(vertex=MachineVertex for Slice(lo_atom=0, hi_atom=783, n_atoms=784, shape=(784,), start=(0,)) of input, x=0, y=0, p=3)
per_timestep=(1421932.0/1000) = 1420
. . .

Actual space reserved on the machine
----------------------
Based on 16234 timesteps
 core (0,0,3) Fixed 1932 bytes Per_timestep 1420.0 bytes for a total of 23054212.0
. . .

Which is same for the both section. Am I right?

=============================
The difference between "fixed" and "Constant" is that "Fixed" is just part of the full SDRAM for that vertex which "Constant" is the full SDRAM for that Vertex.
Question 2)
What does that mean? 
If I'm right, Populations, Connections (Projections and the weights) (and maybe routing and ...) are stored in the SDRAM as a shared memory. The variables and the code have their memory in each core (dtcm and itcm) and they are not mentioned in the sdram report. 
Could you please tell me, what you mean by "just part of the full SDRAM" vs "the full SDRAM "?


You may want to consider adding another report to give that information for just the Vertices you care about.
Add a filter based on placement.vertex to only measure those you care about.
Question 3): 
Does it mean, other vertices are not important in comparison? Do you mean just reporting sdram usage of the cores which contained the vertices (populations), is enough?
Question 4):
Thanks to your help, with placement.vertex.label, I found 4 different vertices. I googled for that: 
    1-SYSTEM:ExtraMonitor:   Cores for Monitoring
    2-MachineVertex for Slice(lo_atom=0, hi_atom=783, n_atoms=784, shape=(784,), start=(0,)) of input : Core(s) for input (in my simulation SpikeSourceArray Pop)
    3-SYSTEM:PacketGatherer(0,0):    Is this for routing the packets?
    4-Slice Slice(lo_atom=0, hi_atom=99, n_atoms=100, shape=(100,), start=(0,)) of EXC_POP_0 : Core hosting the populations
Am I right?

Question 5): 
   Just the last vertices are enough?

You may only need to track two over all values.
The sum of all fixed and constant 
The sum of all per_timestep
Since get_total_sdram, retrieves the sdram usage for Constants and the Fixed+Per_timestep*get_max_run_time_steps, I used the following code as the total of all actual space reserved:

def sdram_usage_total():
    timesteps=FecDataView.get_max_run_time_steps() # Since I need the Actual space reserved on the machine
    total_sdram=0
    placements = sorted(FecDataView.iterate_placemements(), key=lambda x: x.vertex.label)
    for placement in progress.over(placements, False):
        vertex_sdram = placement.vertex.sdram_required
        total_sdram += vertex_sdram.get_total_sdram(timesteps)
    return total_sdram

I also, to be sure,  summed all the values manually for the following report:
Actual space reserved on the machine
----------------------
Based on 16234 timesteps
core (0,0,3) Fixed 1932 bytes Per_timestep 1420.0 bytes for a total of 23054212.0
core (0,0,2) Constant 488476 bytes
core (0,2,1) Constant 488476 bytes
core (0,3,1) Constant 488476 bytes
core (1,0,1) Constant 488476 bytes
core (1,1,1) Constant 488476 bytes
core (1,2,1) Constant 488476 bytes
core (1,3,1) Constant 488476 bytes
core (1,4,1) Constant 488476 bytes
core (2,0,1) Constant 488476 bytes
core (2,1,1) Constant 488476 bytes
core (2,2,1) Constant 488476 bytes
core (2,3,1) Constant 488476 bytes
core (2,4,1) Constant 488476 bytes
core (2,5,1) Constant 488476 bytes
core (3,0,1) Constant 488476 bytes
core (3,1,1) Constant 488476 bytes
core (3,2,1) Constant 488476 bytes
core (3,3,1) Constant 488476 bytes
core (3,4,1) Constant 488476 bytes
core (3,5,1) Constant 488476 bytes
core (3,6,1) Constant 488476 bytes
core (4,0,1) Constant 488476 bytes
core (4,1,1) Constant 488476 bytes
core (4,2,1) Constant 488476 bytes
core (4,3,1) Constant 488476 bytes
core (4,4,1) Constant 488476 bytes
core (4,5,1) Constant 488476 bytes
core (4,6,1) Constant 488476 bytes
core (4,7,1) Constant 488476 bytes
core (5,1,1) Constant 488476 bytes
core (5,2,1) Constant 488476 bytes
core (5,3,1) Constant 488476 bytes
core (5,4,1) Constant 488476 bytes
core (5,5,1) Constant 488476 bytes
core (5,6,1) Constant 488476 bytes
core (5,7,1) Constant 488476 bytes
core (6,2,1) Constant 488476 bytes
core (6,3,1) Constant 488476 bytes
core (6,4,1) Constant 488476 bytes
core (6,5,1) Constant 488476 bytes
core (6,6,1) Constant 488476 bytes
core (6,7,1) Constant 488476 bytes
core (7,3,1) Constant 488476 bytes
core (7,4,1) Constant 488476 bytes
core (7,5,1) Constant 488476 bytes
core (7,6,1) Constant 488476 bytes
core (7,7,1) Constant 488476 bytes
core (0,0,1) Constant 477250 bytes
core (0,0,4) Fixed 333260 bytes Per_timestep 424.0 bytes for a total of 7216476.0
core (0,0,8) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (0,0,5) Fixed 333260 bytes Per_timestep 424.0 bytes for a total of 7216476.0
core (0,0,9) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (1,0,2) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (1,0,3) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (1,0,4) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (1,0,5) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (1,0,6) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (1,0,7) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (0,0,6) Fixed 333260 bytes Per_timestep 424.0 bytes for a total of 7216476.0
core (0,0,10) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (0,0,7) Fixed 333260 bytes Per_timestep 424.0 bytes for a total of 7216476.0
core (0,0,11) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (0,0,12) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (0,0,13) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (0,0,14) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (0,0,15) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (0,0,16) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
core (0,0,17) Fixed 175052 bytes Per_timestep 424.0 bytes for a total of 7058268.0
============================================================================= Total = 188288026
I got the same result with the above code:                                                                                                                         
23054212
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
488476
477250
7216476
7058268
7216476
7058268
7058268
7058268
7058268
7058268
7058268
7058268
7216476
7058268
7216476
7058268
7058268
7058268
7058268
7058268
7058268
7058268
============================================================================= Total = 188288026
Question 6): 
We are working to see the effect of weight pruning in terms of memory usage on SpiNNaker machine. (We uploaded the trained pruned and not-pruned weights as two different simulations)
In this study, we only pruned the weights (and not neurons),  but I'm not sure if the weights are mentioned in the sdram report or not. 
Is this the correct way for comparing the pruned and not pruned models?

Finally, it would be great if you have any suggestions (other metrics) for us which can show the benefits of weight pruning in SpiNNaker.

Thank you very much for all your help and support

Best regards,
Mazdak

Christian Brenninkmeijer

unread,
Oct 3, 2022, 6:20:46 AM10/3/22
to SpiNNaker Users Group
Q1:
The sdram used on the machine and therefor in the report is not affected by how long you request to run in the first sim.run call
It is the same if you do sim.run(1) or sim.run(10000000000)
It is always the max it can run bevefore doing auto pause resume.

You could also use a virtual machine by setting the cfg to
[Machine]
width = 8
height = 8
virtual_board = True
machineName = None
spalloc_server  = None
remote_spinnaker_url  = None
(use bigger multiples of 8 if needed)

The only danger of a virtual machine is you will not catch underestimate of sdram in your code.

Question 2:
These 2 sdram measurement are the same with different names
Constant=10
Fixed = 10 per_timestep = 0

Question 3:
The reports are purely for users.
Write the report to show the info you care about in the way that is easy for you.

Question 4:
The Strings in the reports are the string return by each vertex's -str​_ method.
SYSTEM:ExtraMonitor:   Cores for Monitoring
SYSTEM:PacketGatherer(0,0):  ?   Is this for routing the packets?
These 2 are the admin/ management cores which have many helper things including getting data on and off the machine.
The first is on every Ethernet chip 
The second on every Chip.
These are a like OS processes on a PC.

Question 5:
Every core either has a Vertex or is unused. "ExtraMonitor" and "PacketGatherer" are Vetex's too,
All report how much SDRAM they use.
All are included in the calculation to find the max runtime to do the "Actual space reserved on the machine"
Which you include in your reports/work is up to you 

GIGO warning:
Remember what the reports say and what the calculation use is what the Vertices say they use.
The report is not based on any fancy system which examines code to see how much is used but just a sum of what the developers put in their code.

So if you hoped to use the report to tell you what to fill in the get_sdram_used_by_atoms method then sorry no such luck!

Christian

From: spinnak...@googlegroups.com <spinnak...@googlegroups.com> on behalf of mazdak fatahi <mazdak...@gmail.com>
Sent: 02 October 2022 20:58

To: SpiNNaker Users Group <spinnak...@googlegroups.com>
Subject: Re: [SpiNNaker Mailing List] Memory usage
--
You received this message because you are subscribed to the Google Groups "SpiNNaker Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to spinnakeruser...@googlegroups.com.

mazdak fatahi

unread,
Oct 3, 2022, 6:34:01 AM10/3/22
to SpiNNaker Users Group
Thank you for the answers,
Best regards,

Reply all
Reply to author
Forward
0 new messages