Kaushik Kulkarni
Kaushik Kulkarni
Slightly related: https://github.com/inducer/loopy/pull/372 relaxes some of the branching constraints on the domains.
Takes roughly 8 seconds to process each instruction on a [Xeon 2680v2](https://github.com/illinois-scicomp/machine-shop-maintenance/wiki/Machine-Inventory#tripelcsillinoisedu). `vmprof` profile: ``` 100.0% parallelize 100.0% /home/kgk2/temp/reproduce_big_loopy_program.py:27 38.9%|. chunk_iname 38.9% loopy/loopy/transform/iname.py:367 4.3%|.|. wrapper 11.1% pytools/__init__.py:690 4.3%|.|.|. get_iname_bounds 100.0%...
@isuruf: Yep, LoopKernel has a very huge `domains` list and we traverse it every `LoopKernel.__init__`. Rough breakdown of costs in terms of disjoint high level operations: | Routine name |...
Found an MWE: ```python knl = lp.make_kernel( ["{[i]: 1
I'll unassign myself from this to avoid gatekeeping someone else from fixing this. I can fix this in late August. (need to cross off certain items from the graduation checklist)
No it doesn't support negative loop increments, but the index inames could be manipulated to mimic the accesses as negative increments. ```python knl = lp.make_kernel( "{[i]: 0 [rev_i]: rev_i =...
> Where can I find out about the scheduling algorithm used by loopy? AFAIK, there isn't a concrete document that outlines this. (cc @inducer?) The only constraint that loopy's scheduler...
> So for example, the domain {[i, j] : 0
> Is there a reason loopy went with a customized scheduling algorithm instead of something like Pluto? Loopy intends to solve slightly different problems. It is a transformation engine that...
> But there is still an implicitly assumed schedule by loopy? When a kernel is under-constrained, then the code is generated for one of the possible schedules. This was taken...