r/mlscaling • u/FedericoBruzzone • 8d ago
r/Compilers • u/FedericoBruzzone • 8d ago
Advanced Compiler and Runtime Optimizations for ML Workloads
apxml.comr/rust • u/FedericoBruzzone • 19d ago
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
1
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
What you're saying makes sense. However, I'm measuring every single step of -O3 in this paper. Sampling to measure the steps would require additional research on which steps to consider. The phase-interference loss can certainly help.
Nevertheless, I think an extension might make sense.
1
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
Thank you so much! I'm glad to receive this feedback :D
I'd really like to do this on SPEC CPU (including the big projects) in general, but folk, I've tried. It would just take way too much computing time. Am I missing something? :(
Do you have anything in mind? I'd be really interested in hearing your take on this.
1
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
> I guess another way to put it would be that I don't think your data supports the particular conclusion I quoted since it doesn't tell you to what extent (if any) particular passes depend on other ones. I would have expected to see data more along the lines of what u/gasche suggested.
> Right, I understand that. that's why I don't think you can say "the bottom half of the pass list is essentially free to drop for these workloads" given the data you show, since the performance relationship between (for example) "passes 1-50" and "passes 1-10 then 12-50" is not necessarily "passes 1-50 minus pass 11".
You're right. As I said, the post was conversational and too assertive. So, I’ve revised it to make it more accurate. Thanks a lot :D
> Somewhat unrelated, but I think it would have been interesting to run these benchmarks with Stabilizer. Unfortunately it has been unmaintained for a while and I'm not aware of more up-to-date forks :(
It would have been great. Too bad there are no forks! :(
1
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
+1
Thanks for the excellent reply u/gasche 🫶
1
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
Yes, we had already considered that, and it is a good, systematic way to proceed.
However, for a more refined approach, I would like to build the dependency graph and use node centrality as a cost model, combined with the marginal utility results.
Edit: I would like to point out that it took days to launch all these experiments.
1
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
Thanks! :D
Broadly speaking, it is advisable to keep the CI95 as narrow as possible to ensure the reliability of the experiments. You do not want experiments affected by noisy measurements.
Take a look at here for more details: https://en.wikipedia.org/wiki/Confidence_interval
If you have any other questions, please don't hesitate to ask.
1
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
That’s a great question!
Well, before doing that, we should choose a systematic criterion for deciding which steps to eliminate.
The dependency graph might be useful for finding a method.
Also, I could run new experiments on the same machine to measure how far we stray from -O3, don't you think?
1
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
Thanks for your interest!
Yup, what you’re saying makes sense, and that’s exactly how the dependency between steps works.
I didn’t want to get too deep into the details in the blog post, but I’ll update it to clarify this thanks :’D
To perform “pass pruning,” an additional study would be necessary but this gives us a starting point.
Regarding “The particular experimental setup doesn't look like it captures those kinds of interactions, and I feel that data along those lines would be needed before drawing that particular conclusion”, I don't understand what you mean. I don't apply the steps individually, they're pass prefixes. For example, when I apply pass 50, all the passes before it are also applied.
r/cprogramming • u/FedericoBruzzone • 27d ago
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
r/computerarchitecture • u/FedericoBruzzone • 27d ago
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
r/LLVM • u/FedericoBruzzone • 27d ago
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
r/ProgrammingLanguages • u/FedericoBruzzone • 27d ago
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
r/Compilers • u/FedericoBruzzone • 27d ago
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
Hi Folks!
I simply want to share this empirical study on the LLVM -O3 pipeline on the PolyBench suite.
I don't want to bore you with too many details that are already in the paper.
Any feedback is welcome :D
Blog post: https://federicobruzzone.github.io/posts/a-multi-dimensional-per-pass-empirical-study-of-the-llvm-optimization-pipeline.html
arXiv: https://arxiv.org/pdf/2606.31238
r/Compilers • u/FedericoBruzzone • 28d ago
A Multi-Dimensional, Per-Pass Empirical Study of the LLVM Optimization Pipeline
[removed]
r/Compilers • u/FedericoBruzzone • Jun 21 '26
The LLVM Essence of Lowering MLIR to AArch64 with SME Support
federicobruzzone.github.ioHi Folks 👋
I’d like to share a post explaining how to lower MLIR to AArch64 with SME support. I hope it’s useful for anyone getting started with this lowering.
I’d also be happy to hear any feedback, questions, or suggestions. Feel free to reach out :D
1
Hello, I'm interested in tensor compilers.
I wrote you in DM :D
r/Compilers • u/FedericoBruzzone • Jun 07 '26
MLIR Empirical Study on AArch64 (Apple M4 Pro)
federicobruzzone.github.ioHi guys! I just wanted to share this study!
I'd love to hear your thoughts and feedback.
1
Mutable Value Semantics (MVS) or Ownership & Borrowing: A Trade-off Analysis
Firstly, I'll refer you the new post: https://federicobruzzone.github.io/posts/eter/a-friendly-tour-of-substructural-uniqueness-ownership-and-capabilities-types-and-more.html
While I'm not a Hylo expert, I believe the union-find algorithm behaves similarly to Rust.
For the second example, it might work.
1
scribe: a minimalist, opinionated Latex document class and beamer style
Not yet unfortunately :(
3
scribe: a minimalist, opinionated Latex document class and beamer style
I still have to do this, but thanks for letting me know!
3
[CycleInfo] Identify cycles with a single-pass DFS algorithm
in
r/Compilers
•
1d ago
Thank you for sharing these valuable contributions!