-
Notifications
You must be signed in to change notification settings - Fork 123
Description
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?