Recompilation Pipeline Feature for the exploration of interesting data properties#929
Draft
StoeckOverflow wants to merge 14 commits intodaphne-project:mainfrom
Draft
Recompilation Pipeline Feature for the exploration of interesting data properties#929StoeckOverflow wants to merge 14 commits intodaphne-project:mainfrom
StoeckOverflow wants to merge 14 commits intodaphne-project:mainfrom
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.
This Draft PR introduces a basic recompilation pipeline designed to support recompilation during the execution of loops. The implemented functionality includes:
ForOps, feeding it as input to theRecompile Kernel. This allows the loop to be recompiled dynamically at each iteration.Key Features
Dynamic Loop Recompilation:
Recompile Passwraps aroundForOploop bodies, triggering recompilation of the loop during execution.Extensible Recompilation Control:
niterations or under specific runtime conditions).PassManagerfor theRecompileOpto utilize either the full pass pipeline or a subset of it.Testing:
RecompileOp Kernel Testvalidates the core functionality of the C++Recompile Kernel.Known Issues
There is currently an issue with the invocation of the recompilation kernel that needs to be resolved. Specifically:
This issue appears to be related to how arguments are forwarded to the kernel. A deeper analysis of the LLVM code generated by the program may provide insights into the root cause and potential solutions.
Areas for Further Development
This PR serves as a foundation for exploring the following enhancements:
PassManagerfor theRecompileOpshould execute the entire pass pipeline or only specific passes.Additionally:
NaNresults. Developing more robust and precise tests can better validate the pipeline and help identify edge cases or hidden issues.Tests and Validation
C++ Recompile Kernel Test:
Recompile Kernelprocesses MLIR strings correctly with the given inputs and outputs.Pipeline Integration Test: