Conversation
|
Note, I was able to produce UB on this branch https://github.com/DGriffin91/obvhs/tree/insertion_removal_forte using I probably need to port over rayon's panic safety before this can proceed. Would also be good to hook up miri and shuttle properly. |
|
Note for later: Rayon uses With that change, it should be possible to add proper implementations for both |
|
The issue I was seeing before turned out not to be UB, but I went ahead and implemented some proper exception safety anyway for my own peace of mind. All of rayon's par iter api should now be supported and more or less safe to call. On most benchmarks I'm seeing similar performance, with forte tending to show up slightly behind rayon by a factor of about 1.1x to 1.5x. |
|
Did some further optimization using the We are catching up to rayon on performance now. |
ab1e90a to
1082a9f
Compare
|
CI appears to have a spurious failure. Meh, I'll fix it later. |
|
I'm trying to use Forte with turbopack with vercel/next.js#81165, and the performance is to be on par with |
|
Excellent! I'm still working on some optimizations, and I bet I can improve on that still. Just recently I have managed to beat rayon on the obvhs benchmarks (those changes should be pushed soon), but I'm still behind on rayon-demo, and vs chili in its fork join demo. I think the next step should probably be to attempt to determine the cause of the time difference vs chili. Suspect it might be branch prediction. Please let me know if you run into any issues. |
|
Great to hear that! Please let me know if there's anything I can help |
0d92a0d to
28241c9
Compare
|
I'm now pretty happy with the performance of this as an initial jumping off point. Just need to clean up CI and then will be able to merge this. |
Adds
rayon-compat, the world's worst implementation ofrayon-core.Using this crate, it's possible to run a good amount of the
rayonlibrary on top of forte. Programs that userayonwill compile using this patch, but may crash unexpectedly and/or have UB. So don't, like, use this in production.