Hi @ritikraj7 @AnandS09 , I am attempting to reproduce the experimental results presented in Figure 4 of SCALE-Sim ISPASS paper, but I have encountered some issues with the outcomes.

Taking the first PE array configuration (4x4) as an example, I am using the topology file test_valid_4.csv in ARM-software/SCALE-Sim with the following config file.
[general]
run_name = scale_example_run_4x4_os
[architecture_presets]
ArrayHeight: 4
ArrayWidth: 4
IfmapSramSzkB: 64
FilterSramSzkB: 64
OfmapSramSzkB: 64
IfmapOffset: 0
FilterOffset: 10000000
OfmapOffset: 20000000
Bandwidth : 10
Dataflow : os
MemoryBanks: 1
[run_presets]
InterfaceBandwidth: CALC
With scale-sim-v2, I get 9 cycles instead of 10 cycles.
...
Compute cycles: 9
...
I think the cycle count should be 10 cycles, as illustrated in the figure below.

I traced scale-sim-v2 and found that it seems that these two variables also indicate 10 cycles.
https://github.com/scalesim-project/scale-sim-v2/blob/613b373d0a4c000a23092b3c41e17abb1c4e5470/scalesim/single_layer_sim.py#L180
ofmap_demand_mat:
[[-1.0000000e+00 -1.0000000e+00 -1.0000000e+00 -1.0000000e+00]
[-1.0000000e+00 -1.0000000e+00 -1.0000000e+00 -1.0000000e+00]
[-1.0000000e+00 -1.0000000e+00 -1.0000000e+00 -1.0000000e+00]
[ 2.0000012e+07 -1.0000000e+00 -1.0000000e+00 -1.0000000e+00]
[ 2.0000008e+07 2.0000013e+07 -1.0000000e+00 -1.0000000e+00]
[ 2.0000004e+07 2.0000009e+07 2.0000014e+07 -1.0000000e+00]
[ 2.0000000e+07 2.0000005e+07 2.0000010e+07 2.0000015e+07]
[-1.0000000e+00 2.0000001e+07 2.0000006e+07 2.0000011e+07]
[-1.0000000e+00 -1.0000000e+00 2.0000002e+07 2.0000007e+07]
[-1.0000000e+00 -1.0000000e+00 -1.0000000e+00 2.0000003e+07]]
https://github.com/scalesim-project/scale-sim-v2/blob/613b373d0a4c000a23092b3c41e17abb1c4e5470/scalesim/memory/double_buffered_scratchpad_mem.py#L207
[[0.]
[1.]
[2.]
[3.]
[4.]
[5.]
[6.]
[7.]
[8.]
[9.]]
However, this line takes the last number which is 9 from ofmap_services_cycles_np as the total cycles
https://github.com/scalesim-project/scale-sim-v2/blob/613b373d0a4c000a23092b3c41e17abb1c4e5470/scalesim/memory/double_buffered_scratchpad_mem.py#L209
Should we modify this line as follows, or did I overlook something? Thank you. 😄
self.total_cycles = int(ofmap_serviced_cycles[-1][0]) + 1
Hi @ritikraj7 @AnandS09 , I am attempting to reproduce the experimental results presented in Figure 4 of SCALE-Sim ISPASS paper, but I have encountered some issues with the outcomes.

Taking the first PE array configuration (4x4) as an example, I am using the topology file test_valid_4.csv in ARM-software/SCALE-Sim with the following config file.
With scale-sim-v2, I get 9 cycles instead of 10 cycles.
I think the cycle count should be 10 cycles, as illustrated in the figure below.

I traced scale-sim-v2 and found that it seems that these two variables also indicate 10 cycles.
https://github.com/scalesim-project/scale-sim-v2/blob/613b373d0a4c000a23092b3c41e17abb1c4e5470/scalesim/single_layer_sim.py#L180
ofmap_demand_mat:
https://github.com/scalesim-project/scale-sim-v2/blob/613b373d0a4c000a23092b3c41e17abb1c4e5470/scalesim/memory/double_buffered_scratchpad_mem.py#L207
However, this line takes the last number which is
9fromofmap_services_cycles_npas the total cycleshttps://github.com/scalesim-project/scale-sim-v2/blob/613b373d0a4c000a23092b3c41e17abb1c4e5470/scalesim/memory/double_buffered_scratchpad_mem.py#L209
Should we modify this line as follows, or did I overlook something? Thank you. 😄