Add initial TileArray programming model and Neura compiler flow - #2
Open
ShangkunLi wants to merge 9 commits into
Open
Add initial TileArray programming model and Neura compiler flow#2ShangkunLi wants to merge 9 commits into
ShangkunLi wants to merge 9 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR establishes the initial Synapse programming model and compiler flow for explicitly placed programs on a CGRA tile array.
It introduces a Python TileArray DSL, records typed tile-level operations, lowers them through the MLIR Python bindings into a single Taskflow task containing a Neura kernel, and invokes the Amoeba/Neura backend to produce mapped Neura IR.
Key Changes
TileArrayspatial abstraction using Neura-compatible(x, y)coordinates.i32andf32support.--leverage-predicated-value--insert-data-movCurrent Compiler Flow
Current Scope
This PR intentionally targets the first single-task milestone:
i32andf32scalar values.Task-level syntax, multiple tasks, task dependencies, inter-core communication, automatic template selection, and general structured lowering remain future work.
Testing
The focused local test suite passes:
Run it with:
The compiler tests require the pinned LLVM/MLIR build and the Amoeba Python bindings described in the README.