devito
devito copied to clipboard
compiler: Define Iteration bounds through hierarchy-related rules
Definitely needs some improvement in terms of presenting better the theoretic background of it.
Main concept : This is a system of rules to handle iteration bounds in a parametric way based upon known assumptions of their relations.
Clearly there are more lines of code, and considering that devito supports only one type of blocking shapes this may seem an overkill. However this opens up space for new blocking scheme implementations where more complex iteration bounds are needed.
Opening now, to get reviewers familiar with the reasoning and the code.
Codecov Report
Merging #1811 (5158d17) into master (8ea8d45) will increase coverage by
0.10%
. The diff coverage is98.98%
.
:exclamation: Current head 5158d17 differs from pull request most recent head b76b677. Consider uploading reports for the commit b76b677 to get more accurate results
@@ Coverage Diff @@
## master #1811 +/- ##
==========================================
+ Coverage 87.77% 87.88% +0.10%
==========================================
Files 214 214
Lines 36984 36833 -151
Branches 5570 5570
==========================================
- Hits 32464 32371 -93
+ Misses 4001 3941 -60
- Partials 519 521 +2
Impacted Files | Coverage Δ | |
---|---|---|
devito/types/relational.py | 100.00% <ø> (ø) |
|
devito/passes/iet/misc.py | 91.20% <97.56%> (+7.28%) |
:arrow_up: |
devito/core/cpu.py | 100.00% <100.00%> (ø) |
|
devito/core/gpu.py | 75.37% <100.00%> (+1.48%) |
:arrow_up: |
devito/symbolics/manipulation.py | 93.29% <100.00%> (-0.04%) |
:arrow_down: |
tests/test_skewing.py | 99.33% <100.00%> (+0.25%) |
:arrow_up: |
tests/test_symbolics.py | 100.00% <100.00%> (ø) |
|
devito/passes/iet/engine.py | 91.01% <0.00%> (-2.95%) |
:arrow_down: |
devito/passes/iet/languages/openacc.py | 62.69% <0.00%> (-2.85%) |
:arrow_down: |
devito/ir/support/symregistry.py | 84.61% <0.00%> (-2.49%) |
:arrow_down: |
... and 36 more |
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.
IOW we need to add that if a > c, b > d then a+b>c+d.
I realised that there is a bit of redundant codegen in some subdimension code (no tests or tutorials catch it). The above addition will fix it. Focusing on this.
Pushed branch to georgebisbas/devito.