<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">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>