Thanks for the update! It is *very cool* to see the optimization PRs getting merged. I am a big fan of "faster"! :)
On Thu, Jun 24, 2021 at 08:14:04PM +0530, Abhinav Anand wrote: > Hey everyone, > > This is supposed to be an update on what has been done in my Gsoc project > till now. Currently, I am going well ahead of my proposed plan as I already > started working on my project from the community bonding period. Here are > the list of PR's that have been made till now towards the project: > > *Merged:* > 1. faster forward pass of mean pool layer > <https://t.mailpgn.com/l/?u=9ed49a9e-df94-420f-92c7-311167782bb0&fl=https%3A%2F%2Fgithub.com%2Fmlpack%2Fmlpack%2Fpull%2F2956> > 2. improved speed of mean_backward under certain condition > <https://t.mailpgn.com/l/?u=eaa77d81-5bdf-4e59-8af6-fafd4d31f4fb&fl=https%3A%2F%2Fgithub.com%2Fmlpack%2Fmlpack%2Fpull%2F2957> > 3. Improved speed of lp forward pass > <https://t.mailpgn.com/l/?u=4bb26082-2fa5-40d0-9fd2-c961bb1af6ad&fl=https%3A%2F%2Fgithub.com%2Fmlpack%2Fmlpack%2Fpull%2F2989> > > *Open:* > 1. implemented channel shuffle > <https://t.mailpgn.com/l/?u=36f39a62-c67f-493a-bb4c-c25d5e560e58&fl=https%3A%2F%2Fgithub.com%2Fmlpack%2Fmlpack%2Fpull%2F2959> > (Done. > It has been approved to merge.) > 2. Nearest Interpolation(new layer) and Bilinear Interpolation(Fix) > <https://t.mailpgn.com/l/?u=4e7ecd04-c0a7-473c-b414-ad9299e19db5&fl=https%3A%2F%2Fgithub.com%2Fmlpack%2Fmlpack%2Fpull%2F2951> > > *Brief explanation:* > (1) For faster forward pass of *mean_pool* and *lp_pool*, I am using an > idea of prefix sums. I will briefly explain for *mean_pool* and it is > similar for *lp_pool* also: > > The most time consuming part of forward pass is the getting average of a > kernel. Using brute force it takes *k*k *additions. And if there are > *N *kernels then > the total steps will be *N*k*k *additions. Using some pre computations we > can significantly reduce this number. Steps Involved: > * Take a copy on Input called *C* > * Do prefix sum over columns on this copy > * Do prefix sum over rows on this copy > Let's say a kernel's coordinates are *C(span(i, i + k), span(j, j + k).* Not > the sum of this kernel will be *C(i + k - 1, j + k - 1) + C(i - 1, j - 1) - > C(i - 1, j + k - 1) - C(i + k - 1, j - 1). * > So we can do this in just *3 operations.* This gives the speed boost to > forward_pass. Also note that the precomputation cost is of order *N*N*. But > if we use armadillo functions then this cost becomes negligible. We have > confirmed this from the experiments. > > A detailed explanation can be viewed in approach 4 in the given link > <https://t.mailpgn.com/l/?u=7987fd0b-794b-4ff2-bab8-2d7a544c515e&fl=https%3A%2F%2Fleetcode.com%2Fproblems%2Frange-sum-query-2d-immutable%2Fsolution%2F> > > > (2) For Backward Pass: > I have given a detailed explanation in the comments. If interested you can > take a look there. A 1-D approach can be viewed here > <https://t.mailpgn.com/l/?u=fdd77a1a-6123-4709-8bd4-09eb276f5f0c&fl=https%3A%2F%2Fwww.geeksforgeeks.org%2Fconstant-time-range-add-operation-array%2F>. > I have extended it to a 2-D matrix. > > *Current Blockers:* > The nearest interpolation is working fine and the bilinear layer is also > working fine after the fix. They match the output from the Pytorch. But for > some reason one test in GANS is failing due to changes in bilinear > interpolation layer. I haven't been able to figure thit out till now. I > will have to take a closer look. > . > *My thoughts and further plans for the project:* > Till now this has been an amazing experience. It feels great to see my > contribution will be used by many people around the world. As I am well > ahead in my project, now I will be mostly contributing over the weekends. > The next part of the project will be to implement *bicubic interpolation* and > to debug the *bilinear interpolation *to find what is causing the error in > the GANS testcase. > Also I will be posting my updates via mail. > > Best regards, > Abhinav Anand > _______________________________________________ > mlpack mailing list > mlpack@lists.mlpack.org > http://knife.lugatgt.org/cgi-bin/mailman/listinfo/mlpack -- Ryan Curtin | "I am." r...@ratml.org | - Joe _______________________________________________ mlpack mailing list mlpack@lists.mlpack.org http://knife.lugatgt.org/cgi-bin/mailman/listinfo/mlpack