devito icon indicating copy to clipboard operation
devito copied to clipboard

compiler: Define Iteration bounds through hierarchy-related rules

Open georgebisbas opened this issue 2 years ago • 2 comments

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.

georgebisbas avatar Dec 16 '21 17:12 georgebisbas

Codecov Report

Merging #1811 (5158d17) into master (8ea8d45) will increase coverage by 0.10%. The diff coverage is 98.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.

codecov[bot] avatar Dec 16 '21 18:12 codecov[bot]

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.

georgebisbas avatar Jan 06 '22 13:01 georgebisbas

Pushed branch to georgebisbas/devito.

georgebisbas avatar Oct 13 '22 12:10 georgebisbas