Skip to content
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

Remove in-place lowering. #2055

Merged
merged 1 commit into from
Dec 4, 2023
Merged

Remove in-place lowering. #2055

merged 1 commit into from
Dec 4, 2023

Conversation

athas
Copy link
Member

@athas athas commented Dec 3, 2023

This is one of our oldest optimisations, and mainly served to clean up the code produced by sequentialisation, as well as a few other simple things that we would today call "memory short circuiting".

In-place lowering is a really complicated optimisation, so now that we have a propert short circuiting pass, we should seriously consider getting rid of it. Short circuiting is even more complicated, but it is also properly principled, and more general.

We still largely have the sequentialisation problems that in-place lowering was supposed to address (mostly nested maps), but at least on the GPU backends there seems to be no real impact from it anymore. I would still like to one day fix sequentialisation so that it produces better code for nested SOACs.

The big open question is how this impacts the performance of CPU code.

@athas athas added the run-benchmarks Makes GA run the benchmark suite. label Dec 3, 2023
@athas athas self-assigned this Dec 3, 2023
This is one of our oldest optimisations, and mainly served to clean up
the code produced by sequentialisation, as well as a few other simple
things that we would today call "memory short circuiting".

In-place lowering is a really complicated optimisation, so now that we
have a propert short circuiting pass, we should seriously consider
getting rid of it. Short circuiting is even more complicated, but it
is also properly principled, and more general.

We still largely have the sequentialisation problems that in-place
lowering was supposed to address (mostly nested maps), but at least on
the GPU backends there seems to be no real impact from it anymore. I
would still like to one day fix sequentialisation so that it produces
better code for nested SOACs.

The big open question is how this impacts the performance of
CPU code.
@athas athas merged commit 9663bd2 into master Dec 4, 2023
24 checks passed
@athas athas deleted the no-in-place-lowering branch December 4, 2023 13:50
@Munksgaard
Copy link
Collaborator

35973341_10160626751145523_5408291598729478144_n

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
run-benchmarks Makes GA run the benchmark suite.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants