3 ms·
Post link optimization (PLO) tools have been around for quite a while. In particular, Meta’s BOLT (fully upstream in LLVM) and Google’s Propeller (somewhat upst
by boomanaiden154 6mo ago
Post link optimization (PLO) tools have been around for quite a while. In particular, Meta’s BOLT (fully upstream in LLVM) and Google’s Propeller (somewhat upstream in LLVM, but fully open source) have been around for 5+ years at this point.
It doesn’t seem like Intel’s BOT delivers more performance gains, and it is closed source.
- trynumber9 6mo agoQuestion: do those vectorize code as in the example here? I was of the understanding they performed a more limited subset of optimizations.
- boomanaiden154 6mo agoPropeller can’t really do many instruction level modifications due to how it works (constructs a layout file that then gets passed to the linker). BOLT could do this, but does not as far as I’m aware. Most of vectorization like this is also probably better done in a compiler middle end. At least in LLVM, the loop vectorizer and especially the SLP Vectorizer do a decent job of picking up most of the gains. You might be able to pick up some gains by doing it post-link at the MC level, but writing an IR level SLP Vectorizer is already quite difficult.
- tyushk 6mo agoIntel BOT seems to be patches for specific binaries (hence why they didn't see a difference for Geekbench 6.7), unlike BOLT/Propeller which are for arbitrary programs. The second image from their help page [1] showcases this. [1] https://www.intel.com/content/www/us/en/support/articles/000102604/processors.html https://www.intel.com/content/www/us/en/support/articles/000...
- boomanaiden154 6mo agoI might be thinking of a different project then... I swore Intel had their own PLO tool, but I can only find https://github.com/clearlinux/distribution/issues/2996 https://github.com/clearlinux/distribution/issues/2996.
- boomanaiden154 6mo agoFound it. It was https://www.phoronix.com/news/Intel-Thin-Layout-Optimizer https://www.phoronix.com/news/Intel-Thin-Layout-Optimizer. It was open source, but has since been deprecated.
- userbinator 6mo agoApplying targeted binary patches shouldn't take 40 seconds... unless that's also a fake "so it looks like it's working really hard" delay.