<div dir="ltr">Hi Konstantin,<div><br></div><div>First of all, I'm glad that my response helped! And also that you're still into this project. Don't hesitate to ask any other questions.</div><div><br></div><div>Again, not really a ML expert here, but I just saw the reference to LoopRotate. You probably refer to this: <a href="https://github.com/llvm/llvm-project/blob/main/llvm/lib/Transforms/Scalar/LoopRotation.cpp#L52">https://github.com/llvm/llvm-project/blob/main/llvm/lib/Transforms/Scalar/LoopRotation.cpp#L52</a></div><div>I just wanted to mention that although I have not done any benchmarks, I speculate that you won't get any substantial benefit from working on this. Waiting on others' opinions too but I think your time will</div><div>be better spent elsewhere.</div><div>(Btw, if it's not clear what is this header duplication thing referenced there, let me know)</div><div><br></div><div>Good luck in your GSoC application and project!</div><div><br></div><div>Best,</div><div>Stefanos</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Στις Σάβ, 6 Φεβ 2021 στις 12:35 μ.μ., ο/η Сидоров , Константин Сергеевич via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> έγραψε:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Dear all,<br><br>I would like to continue the discussion of the GSoC project I mentioned in the previous email. Now, when I know my way around the LLVM codebase, I would like to propose the first draft of the plan:<br><br>* Improving heuristics for existing passes – to start the discussion, I propose to start the project by working on `MLInlineAdvisor` (as far as I understand, in this class the ML infrastructure is already developed, and thus it seems to be a good idea to start there) and after that switching to the other passes (e.g., `LoopVectorizationPlanner` seems to be a good candidate for such an approach, and `LoopRotate` class contains a profitability heuristic which could also be studied deeper).<br>* Machine learning models to select the optimizations – to the best of my understanding, the key concept here is the pass manager, but here I don't quite understand the technical details of deciding which optimization to select. For this reason, I would like to discuss this part more thoroughly.<br><br>If the project mentors are reading this mailing list and are interested in the discussion, can we start the discussion here?<br><br>By the way – I would like to thank Stefanos for the comprehensive response to my previous questions that helped me to get started :)<br><br>Looking forward to a further discussion,<br>Konstantin Sidorov<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вт, 19 янв. 2021 г. в 07:04, Сидоров , Константин Сергеевич <<a href="mailto:sidorov.ks@phystech.edu" target="_blank">sidorov.ks@phystech.edu</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Dear all,<br><br>My name is Konstantin Sidorov, and I am a graduate student in Mathematics at Moscow Institute of Physics and Technology.<br><br>I would like to work on a project "Machine learning and compiler optimizations: using inter-procedural analysis to select optimizations" during the Google Summer of Code 2021.<br><br>I have an extensive background relevant to this project - in particular:<br><br>* I have already participated in GSoC before in 2017 with mlpack organization on the project "Augmented RNNs": <a href="https://summerofcode.withgoogle.com/archive/2017/projects/4583913502539776/" target="_blank">https://summerofcode.withgoogle.com/archive/2017/projects/4583913502539776/</a><br>* In 2019 I have graduated from the Yandex School of Data Analysis — a two-year program in Data Analysis by Yandex (the leading Russian search engine); more info on the curriculum could be also found at <a href="https://yandexdataschool.com/" target="_blank">https://yandexdataschool.com/</a>.<br>* I have also been working as a software engineer at Adeptik from July 2018 to date, where I have predominantly worked on projects on applied combinatorial optimization problems, such as vehicle-routing problems or supply chain modeling. In particular, I have had experience with both metaheuristic algorithms (e.g., local search or genetic algorithms) and more "traditional" mathematical modeling (e.g., linear programming or constraint programming).<br><br>I would like to discuss this project in more detail. While it is hard to discuss any kind of exact plan at this stage, I already have two questions concerning this project: <br><br>(1) I have set up an LLVM dev environment, but I am unsure what to do next. Could you advise me on any simple (and, preferably, relevant) tasks to work on?<br>(2) Could you suggest any learning materials to improve the understanding of "low-level" concepts? (E.g., CPU concepts such as caching and SIMD)<br><br>Best regards,<br>Konstantin Sidorov<br></div>
</blockquote></div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>