Skip to content

Support implementation of architecture_spec config.#140

Merged
n0thingNoob merged 23 commits intomainfrom
architecture_spec
Oct 10, 2025
Merged

Support implementation of architecture_spec config.#140
n0thingNoob merged 23 commits intomainfrom
architecture_spec

Conversation

@n0thingNoob
Copy link
Copy Markdown
Collaborator

@n0thingNoob n0thingNoob commented Oct 4, 2025

Adding option -architecture-spec="include/ArchitectureSpec/architecture.yaml"
Architecture Dimensions: Configurable width and height
Tile Configuration: Default and override support for num_registers, ports, operations, memory.capacity
Link Configuration: Default and override support for latency, bandwidth, and existence
Operation Mapping: Complete mapping of all 36 operations from NeuraOps.td to CustomizableFunctionUnit

TODO:
-connectivity configure
-extensions
-tile_overrides.num_registers
-modify all tests

Copy link
Copy Markdown
Contributor

@tancheng tancheng left a comment

Choose a reason for hiding this comment

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

Thanks for the PR, a few questions and minor comments can be easily answered/fixed.

For coding style and comment:

  • Plz change all the variables from camel case to snake_case
  • Plz make all the comments end with period.

Above two can be easily handled by AI.

@n0thingNoob
Copy link
Copy Markdown
Collaborator Author

Thanks for the PR, a few questions and minor comments can be easily answered/fixed.

For coding style and comment:

  • Plz change all the variables from camel case to snake_case
  • Plz make all the comments end with period.

Above two can be easily handled by AI.

Working on it. Need a little bit of time.

@n0thingNoob n0thingNoob marked this pull request as ready for review October 8, 2025 15:07
@n0thingNoob
Copy link
Copy Markdown
Collaborator Author

The extension and the connectivity are not implemented yet.

@tancheng
Copy link
Copy Markdown
Contributor

tancheng commented Oct 8, 2025

The extension and the connectivity are not implemented yet.

Can you please elaborate on extension and connectivity?

@n0thingNoob
Copy link
Copy Markdown
Collaborator Author

An extension is a potential future feature—for example, a crossbar switch. Connectivity describes the topology (mesh, ring, etc.). Our current default topology is mesh.

@tancheng
Copy link
Copy Markdown
Contributor

tancheng commented Oct 8, 2025

An extension is a potential future feature—for example, a crossbar switch. Connectivity describes the topology (mesh, ring, etc.). Our current default topology is mesh.

  • What's the difference? Crossbar is type of topology as well.
  • Can we later include king-mesh as well? With king-mesh, we can model mesh, ring, and most arbitrary topologies, by removing (overwriting) some links.

@n0thingNoob
Copy link
Copy Markdown
Collaborator Author

An extension is a potential future feature—for example, a crossbar switch. Connectivity describes the topology (mesh, ring, etc.). Our current default topology is mesh.

  • What's the difference? Crossbar is type of topology as well.
  • Can we later include king-mesh as well? With king-mesh, we can model mesh, ring, and most arbitrary topologies, by removing (overwriting) some links.

By extension I mean a future optional slot (mainly for reservation). Crossbar is just one example: an auxiliary switch block placed adjacent to a tile. I felt that a crossbar is a local switching function that augments a topology but doesn’t change the global graph. So I guess it could be an extension.
We definitely can support king-mesh. The question is whether I can modify the link-generation code in architecture.cpp or not, since king-mesh requires adding the four diagonal directions. To keep the spec clean, my initial thought was using connectivity to build the first class topology before doing any link or tile overrides—rather than asking users to build a mesh first and then patch it with overrides.

@n0thingNoob
Copy link
Copy Markdown
Collaborator Author

I can support the connectivity ASAP if we have an agreement on a list of pre-defined topologies.

@tancheng
Copy link
Copy Markdown
Contributor

tancheng commented Oct 8, 2025

I can support the connectivity ASAP if we have an agreement on a list of pre-defined topologies.

I thought we agreed on:

  • User chooses pre-defined king-mesh, then user provide overwrites (pruning, no adding).
  • User chooses pre-defined mesh, then user provide overwrites (pruning, no adding).

Basically, user only prune sth. Let's discuss this during our weekly meeting.

@n0thingNoob n0thingNoob requested a review from tancheng October 9, 2025 15:33
@tancheng
Copy link
Copy Markdown
Contributor

tancheng commented Oct 9, 2025

Can you reply to my comments, so I am clear about what is fixed or not? I will click the "resolved" if I verify it is fixed.

@n0thingNoob
Copy link
Copy Markdown
Collaborator Author

Can you reply to my comments, so I am clear about what is fixed or not? I will click the "resolved" if I verify it is fixed.

All comments should be replied now.

@n0thingNoob
Copy link
Copy Markdown
Collaborator Author

Working on it.

@tancheng
Copy link
Copy Markdown
Contributor

Working on it.

Thanks. Sorry about picky.

@n0thingNoob n0thingNoob merged commit 81d782e into main Oct 10, 2025
1 check passed
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.

2 participants