Skip to content

Conversation

@Navaneeth-KunhiPurayil
Copy link
Contributor

@Navaneeth-KunhiPurayil Navaneeth-KunhiPurayil commented Dec 4, 2025

To add feature to support for double VLSU bandwidth to L1 scratchpad in Spatz cluster to accelerate memory-intensive workloads. This configuration can be enabled by setting double_bw parameter in spatz configuration file and doubling the number of spatz_nports w.r.t number of functional units (assuming 64b granularity).

Added

  1. spatz_doublebw_vlsu.sv - To implement the load-store functionality to generate spatz_nports parallel requests across 2 interfaces and commit each interface separately back to the VRF, synchronizing between them only at instruction completion.
  2. All functionality related to this feature in the spatz.sv, spatz_controller.sv, spatz_vrf.sv is enclosed with the pragma DOUBLE_BW.
  3. Added hardware address scrambling support in spatz_tcdm_interconnect.sv to misalign VLSU requests to avoid conflicts at the L1 for varying LMUL configurations.
  4. Added support for unrolled version of dp-fdotp and dp-faxpy for higher performance configurable using a -DUNROLL cmake option.
  5. spatz_cluster.doublebw.dram.hjson - configuration with double bw support to the default spatz core configuration.

"n_ipu": 1,
"spatz_fpu": true,
"spatz_nports": 4,
"double_bw": 0,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why we have both number of ports value and double_bw? Should we be able to automatically enable double_bw based on the number of ports?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally yes. For now it is to keep it flexible. We could have a smaller Spatz with 2 FPUs, but still using double bandwidth.

Copy link
Collaborator

@DiyouS DiyouS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general looks quite good to me. One question I have: do you think we should add a CI test for double-bw configuration?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants