XSPARSE Week - 14
bharath2438
Published: 09/22/2022
The past week was the most fruitful in terms of the implementation that we wanted to achieve in the end. The week was spent on providing the finishing touches to the existing co_iteration class and making sure that everything was done for the next steps to go on smoothly.
What I did this week
I was able to finish the operator overloads with regards to the iterator and make sure that things fell in place for easy iteration through structured bindings. I also started working on the == and the != operators. It took me a while to understand how to use the constexpr function in this context and I had a meeting with my mentor to clear a few things up.
What is coming up next
Before getting the PR merged, I would think it is better to work on writing some tests and cleanup some parts of the code so that it is ready to aid in codegen.
Did I get stuck anywhere
I did not get stuck anywhere during this week.
View Blog Post
XSPARSE Week - 13
bharath2438
Published: 09/13/2022
This week, I worked extensively on the solution for merge lattices and even got some reviews from my mentor based on the code submitted.
What I did this week
I wrote co_iteration.hpp, which helps in iterating over n - levels when there is an input of n levels. It returns an iterator.
What is coming up next
I should be able to get this PR merged by this week and start working on the next codegen in the subsequent weeks.
Did I get stuck anywhere
I did not get stuck anywhere during this week.
View Blog Post
XSPARSE Week - 12
bharath2438
Published: 09/05/2022
The 12th week was significant as I was able to narrow down on what exactly needed to be done to achieve co-iteration. I had an additional meeting with my mentor, and we established that we were just going to focus on iterating over n-levels i.e take in n levels and output an iterator that goes over all the levels simultaneously. We also applied for an extension because that little bit of extra time was required to achieve the objectives.
What I did this week
I read the paper thoroughly and discussed with my mentor about the implementation details and the metaprogram that was needed to output the iterator. I also began working seriously towards getting the code part done because this had already taken about 3 weeks...
What is coming up next
In the next week, I should be able to finish the merge lattice part with coiteration and start working on the iteration graph. I will also try working on presenting the approach for coiteration in the next TACO conference, if possible.
Did I get stuck anywhere
I did get stuck in many places and asked my questions to my mentor through github, gitter and also google meet. Eventually, I was able to get a clear picture of what had to be done.
View Blog Post
XSPARSE Week - 11
bharath2438
Published: 08/29/2022
During the 11th week, I worked on the API for constructing merges.
What I did this week
The API for constructing merges was worked upon and my mentor and I were able to narrow down on the required codegen to construct union and intersection merges.
What is coming up next
I would focus on getting the level iterator merge API done by this week so that we can focus on the code generation algorithm from the next week.
Did I get stuck anywhere
I did get stuck while trying to understand how this could be figured out but we had an intermediate meeting to sort some things out.
View Blog Post
XSPARSE Week - 10
bharath2438
Published: 08/22/2022
The 10th week was dedicated to reading and understanding about co-iteration and implementing the API for merge lattices and emit intersection and union merges.
What I did this week
I spent the first half of the week reading and understanding iteration graphs and merge lattices so that I can implement codegen for emitting loops to iterate over the joint iteration space of two or more levels. I also created a PR so that I could communicate efficiently with my mentor on the details. I also got the tensor algebra compiler paper from my mentor so that I have all the details to work with AND and OR operators for an intersection and union merge respectively.
What is coming up next
I aim to complete the co-iteration API using the inputs given by my mentor and get it merged in the next week. It will be an important week as the codegen algorithm largely depends on the efficiency of the co-iter API. This has also been one of the hardest phases of the project for me as I need a thorough understanding of the concept to implement in C++.
Did I get stuck anywhere
I did get stuck in the middle of the week as I felt I couldn't proceed further without clearly understanding the concept of merge lattices. Therefore, it was necessary to set up an impromptu meet with my mentor to clear a few things up before I could proceed.
View Blog Post