Closed willow-ahrens closed 6 months ago
Attention: Patch coverage is 83.78378%
with 6 lines
in your changes are missing coverage. Please review.
Project coverage is 75.80%. Comparing base (
94ce74f
) to head (550f566
).
Files | Patch % | Lines |
---|---|---|
src/util/util.jl | 83.78% | 6 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
@nullplay @radha-patel I'd be curious to know whether this improves the runtime of either of your workflows. I recall both of you experienced long compile times and used @finch_kernel
which is what this should affect, in theory.
This is amazing! I'll check my large kernel (which previously takes 20mins to compile) with this PR.
Thanks Willow!! Some of the kernels I wrote that had previously not been compiling (e.g. SYMSYM) are now compiling. And others like MTTKRP are definitely compiling faster.
fixes #338 by reducing the cost of
unresolve
,mark_dead
, andpropagate_copies
. This is a rewrite of our copy propagation algorithm based on https://www.csd.uwo.ca/~mmorenom/CS447/Lectures/CodeOptimization.html/node8.html and http://infolab.stanford.edu/~ullman/dragon/slides4.pdf. This results in an end-to-end compilation speedup of 25x for@finch_kernel
Both copy propagation and mark_dead can now bound the runtime of visiting a node of size
n
asO(n^2)
with a constant number of recursive calls, assuming constant # of iters till convergence. this could be better but I think it's good enough for now.