Add still-nanoda checker with some ongoing optimization efforts#38
Conversation
|
Thanks! Based on the readme this is a similar idea as @datokrat's sonanoda. Maybe you want to join forces? Or is the difference worth keeping both? (I'm unsure about the value of having several nanoda forks with small variations on the arena. Maybe unless we start seeing people shooting holes into them, and that's how you put up a target for investigation, but so far that hasn't happened a lot) It would be preferable if the checker description includes a list of changes relative to nanoda, or at least the high level ideas. |
|
This is an experimental fork on top of: The purpose of this fork is to evaluate some optimizations related to the costly Current Change Set
|
|
Even after these changes, it appears that |
My fork is more like a temporarily thing that will go into PR if found valuable. Not a variant in the core algorithm. However, I'd like to have a separate tree to evaluate some thoughts. |
|
Ok, so how about we feature it on the arena until it either gets merged, or it gets rejected and not worked on anymore. |
|
It seems that I get a 6.3m to 4.9m wall-time improvement but not a clear CPU instruction count improvement. |
|
And all of that purely from optimizing cache access patterns! Not bad. |
|
Ah, nevermind, you actually fork sonanoda, and that's where it is from. The wall time improvement is real, though, just not well shown on the arena. |
|
Haha yeah, I am mainly to examine some common patterns that happen both in sonanoda and nanoda. Sorry for not clarifying this. This is one of the output from our trace analysis at our lab. Hopefully, the wall-time improvement still means something helpful. Another finding we are exploring is that most of the costly lookups are App terms. Adding an additional layer of quick lookup cache helps reducing time by another 1~5% but that part is relatively small and unstable. Also the eviction policy is hard to decide... |
|
Apart from the global imported expr cache, another 10% of time is spent solely in inst_aux. |
|
This reminds me a lot of what Claude worked on when creating https://github.com/nomeata/nanobruijn. I think it even added a special fast cache for creating |

still-nanodais my fork of nanoda/sonanoda to examine some new optimization efforts