Hi, I'm trying to understand how to handle fan-in in timeloop v0.4.
Let's say you're trying to model an architecture like: DRAM => SRAM banks (x8) => crossbar => PE (x2).
Because of the way spatial fanout works in the timeloop yaml files, if I fan out the SRAM banks with spatial: {meshX: 8}, there will also be 8 crossbars and 16 PEs.
I tried performing the fanout in a sub-hierarchy, but that doesn't work, the fanout is propagated anyway to the outer hierarchy. Something like
- !Component
name: DRAM
...
- !Hierarchical
nodes:
- !Container
name: banks_fanout
spatial: {meshX: 8}
- !Component
name: SRAM
...
- !Component
name: crossbar
...
- !Component
name: PE
...
It seems to me older versions supported that scenario with syntax like
local:
- name: SRAM_bank[0..7]
...
- name: crossbar
...
- name: PE[0..1]
...
Now, in the current v0.4 version, I'm aware the simple_pim example solves this by having the SRAM be a single component with n_banks: 32.
arch_spec_examples/simple_pim/arch.yaml
However, what if you want your banks to be something more complex? Like a DRAM bank connected to a SRAM smartbuffer?
So my questions are: is there a syntax to express that fan-in, and if not, is it just a limitation of the yaml DSL, or is that not supported by the Timeloop model overall?
Hi, I'm trying to understand how to handle fan-in in timeloop v0.4.
Let's say you're trying to model an architecture like: DRAM => SRAM banks (x8) => crossbar => PE (x2).
Because of the way spatial fanout works in the timeloop yaml files, if I fan out the SRAM banks with
spatial: {meshX: 8}, there will also be 8 crossbars and 16 PEs.I tried performing the fanout in a sub-hierarchy, but that doesn't work, the fanout is propagated anyway to the outer hierarchy. Something like
It seems to me older versions supported that scenario with syntax like
Now, in the current v0.4 version, I'm aware the
simple_pimexample solves this by having the SRAM be a single component withn_banks: 32.arch_spec_examples/simple_pim/arch.yaml
However, what if you want your banks to be something more complex? Like a DRAM bank connected to a SRAM smartbuffer?
So my questions are: is there a syntax to express that fan-in, and if not, is it just a limitation of the yaml DSL, or is that not supported by the Timeloop model overall?