-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Closed
Labels
backend:cexecutor:aotruntime components of AOT flow. src/runtime/aot_executor, src/runtime/crt/aot_executorruntime components of AOT flow. src/runtime/aot_executor, src/runtime/crt/aot_executor
Description
The AOT executor codegen has accumulated significant technical debt and dead code during its development, resulting in a component that is difficult to understand, test and extend. Refactoring it will improve code-quality and make it easier to introduce new features to expand the capabilities of AOT code generation.
This refactor aims to observe the following principles:
- Break the logic into passes with a single responsibility.
- Introduce tests for the internal logic of AOT (not just end-to-end integration testing).
- Remove side-channels and reduce the usage of 'magic attributes' to pass information.
- De-duplicate logic where possible.
PRs
- P1. Introduce a standalone pass to lower a Relay main to TIR [AOT] Add AOTLowerMain pass to lower a Relay main into TIR #12550
- P2. Introduce an analysis pass to create the 'function metadata' [AOT] Add CreateFunctionMetadata analysis pass #13095
- P3. Introduce an analysis pass to create the 'executor metadata' [AOT] Add CreateExecutorMetadata analysis pass #13250
- P4. Refactor AOTExecutorCodegenModule to use the new passes [AOT] Refactor AOTExecutorCodegenModule using new AOT passes #12549
- P5. Remove the 'StorageRewrite' memory planning strategy (USMP only)
- P?: Move context-specific passes out of the executor codegen (AnnotateUsedMemory/ConvertForLoopsToSerial)
- P?: Remove 'device_contexts' module attribute
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
backend:cexecutor:aotruntime components of AOT flow. src/runtime/aot_executor, src/runtime/crt/aot_executorruntime components of AOT flow. src/runtime/aot_executor, src/runtime/crt/aot_executor