Replies: 1 comment
-
Congrats! That is awesome!! Very exciting to see that the Julia community is (still!) excited about these techniques. You might also consider sharing this on the EGRAPHS zulip, as a lot of the discussion has moved there. I'd be interested in hearing about what techniques you feel are the most important to the performance improvements. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I'm really happy to announce that after some years of work, and hardcore optimizations, I've made Metatheory.jl 14.5 times faster than egg in rust! (at least on a simple example)
This is the experimental branch JuliaSymbolics/Metatheory.jl#185
We should definitely work together on something!! I'm really excited to work on porting many applications, such as Herbie, now that performance is on-par with egg!
This implementation works on the Julia AST direclty, and allows Julia code to be rewritten with e-graphs before compilation (in hygienic macros, as in scheme and other LISPs).
Other than rewriting just the surface Julia AST, this could be really easily plugged into the compiler, rewriting directly on the lowered typed SSA form, in order to automatically discover new compiler optimizations!!
Julia also has a lot of packages that rewrite numerical expressions symbolically before evaluating them numerically, and this would be a super nice research direction, as we already showcased in an example in https://dl.acm.org/doi/pdf/10.1145/3511528.3511535
Julia Code
94.462 μs (1412 allocations: 66.08 KiB)
Rust code
simplification time 0.001375786 seconds which is 1375.786 microseconds
1375.786 / 94.462 = 14.56 :)
Beta Was this translation helpful? Give feedback.
All reactions