[LowerToAIE] Add support for DMA chains #1000
Merged
+320
−32
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.
Adds support for lowering
amdaie.npu.circular_dma_cpy_nd
to a chain ofaie.dma_bd
operations. This is needed becaused low-level DMA BD configurations currently don't support a zero stride.For example:
contains an outer dimension with zero stride, which describes a repetition, and if this is not the common repetition count of all connections operating on a logical objectFifo, this is lowered to a chain of
dma_bd
operations to implement the zero stride:Note how the first block contains a lock acquire operation, but no lock release operation as it needs to hand off to the second block before releasing a lock to create the DMA chain.