New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add noalias option to jit decorator. #9108
Closed
Closed
Conversation
This file contains 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
…not aliased if the noalias flag is present.
…ng can be correctly seeded empty if the jit noalias flag is present. 2) Move the find_potential_aliases call for the fusion pass to run only once rather than for each fusion attempt. 3) For parfor lowering, first run find_potential_aliases on the whole function then filter the alias map and the arg aliases set by the parameters to the parfor. 4) If there are no aliases identified among the parfor params then add the noalias flag for the parfor gufunc compilation. 5) Since flags can be true in the outer compilation context, set noalias to false if there are aliases.
…rayAnalysis call in one spot.
This pull request is marked as stale as it has had no activity in the past 3 months. Please respond to this comment if you're still interested in working on this. Many thanks! |
github-actions
bot
added
the
abandoned - stale
PRs automatically closed due to stale status
label
Nov 6, 2023
Any progress on this? Would love to see this make it in. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
2 - In Progress
abandoned - stale
PRs automatically closed due to stale status
stale
Marker label for stale issues.
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 noalias option to jit decorator which the programmer can use to assert that none of the arguments to the function can share memory. Ultimately, this will cause all the pointers in the memory models for the argument to have the noalias LLVM qualifier set when the Numba IR is lowered to LLVM. This will enable more code to vectorize since the possibility of aliasing will frequently cause the LLVM vectorizer to give up.
Previously, parallel=True would try to do an analysis to see whether it can add the noalias flag to the arguments passed to the parallel region gufunc. This PR improves that process and uses the aliasing information from the outer function better and so if noalias is given for the outer function it will often enable parallel=True to add the noalias flag to the outlined gufunc as well.