Add EqualityMapper - #74
Conversation
4c319e4 to
a9773e5Comparea9773e5 to
1f1a550Compare1f1a550 to
f3f24f2Compare141ffcb to
5d93805Comparee898e5d to
d3fef8eCompareac5ab5e to
36b5e68Compareinducer
commented
Apr 28, 2022
@kaushikcfd Is this worth pursuing given that compile times are suffering because of expression traversal complexity in pymbolic? |
alexfikl
commented
Apr 28, 2022
For what it's worth, the |
kaushikcfd
commented
Apr 28, 2022
I think this is useful. IIUC, this PR quite significantly brings down the complexity of the expression comparison. If the overheads of this approach (creating a new mapper for every comparison) are under-control, I would love to get rid of hacks such as: https://github.com/kaushikcfd/pymbolic/blob/a697d47cd53e9902abc49f98d67921b466c992c2/pymbolic/mapper/__init__.py#L213. |
kaushikcfd
commented
Apr 28, 2022
However, I wonder how the loopy CI failures could be fixed? By creating a derived version of every pymbolic expression type in loopy so that they can use loopy-specific EqualityMapper? |
alexfikl
commented
Apr 28, 2022
It should work with the modified branches. I imagine it needs some work in |
kaushikcfd
commented
Apr 28, 2022
Oops had missed the branch in the description. I think those will work fine. Thanks! |
inducer
commented
Apr 29, 2022
Whoa. I had missed that during review. That is pretty gross. |
34a80ca to
ee18b8fCompareI need to do some measuring. |
2038873 to
6073162Compare815f4c5 to
c54c739Compare
Added an
EqualityMappersimilar to the one in inducer/pytato#166.This seems a bit slower than the current version (benchmarked against inducer/pytential#121):
it went from 5.3s-ish to 6.6s-ish.
fail-fastfrom downstream CIFixes#73.