Skip to content

Conversation

FabioLuporini
Copy link
Contributor

So far, this isn't enabled by default. More experimentation required

This PR also adds a new compiler flag to GNUCompiler when running on Skylake and later processors. I've tested it in a few places, and it seems to generally improve things. I'd like people to reproduce it. Note that you need to ensure DEVITO_PLATFORM is properly set to skx, clk, ... the autodetection mechanism, with the recent proliferation of intel architectures, doesn't seem to be as good as it was.

@codecov
Copy link

codecov bot commented Apr 19, 2023

Codecov Report

❌ Patch coverage is 23.50230% with 166 lines in your changes missing coverage. Please review.
✅ Project coverage is 61.96%. Comparing base (39af05b) to head (6ef0b41).
⚠️ Report is 2045 commits behind head on main.

Files with missing lines Patch % Lines
tests/test_fission.py 11.42% 93 Missing ⚠️
devito/passes/clusters/fission.py 17.64% 67 Missing and 3 partials ⚠️
devito/arch/compiler.py 50.00% 2 Missing and 1 partial ⚠️

❗ There is a different number of reports uploaded between BASE (39af05b) and HEAD (6ef0b41). Click for more details.

HEAD has 6 uploads less than BASE
Flag BASE (39af05b) HEAD (6ef0b41)
16 10
Additional details and impacted files
@@             Coverage Diff             @@
##             main    #2114       +/-   ##
===========================================
- Coverage   87.77%   61.96%   -25.81%     
===========================================
  Files         221      222        +1     
  Lines       39003    39107      +104     
  Branches     5067     5081       +14     
===========================================
- Hits        34233    24232    -10001     
- Misses       4208    14163     +9955     
- Partials      562      712      +150     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

continue

# At this point we know we want to fission. But can we?
for dep in c.scope.d_flow.independent():
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not check this first and avoid all the retrieve/sets/...

ns = len(functions_shared)

if not ns:
ns = .001
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess safe to assume we won't have over 1k function

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add some comment for this, even though not really necessary? Just to justify this option

ispace = c.ispace.lift(d)
processed.append(c.rebuild(exprs=g1, ispace=ispace))

break
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So at most one fission? Could check the remainder g can be split too not sure of what would want

processed.append(c.rebuild(exprs=g0))
processed.append(fission_for_pressure(c.rebuild(exprs=g1, ispace=ispace)))

pass


class IntelGoldenCode(Intel64):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GoldenCove?

ns = len(functions_shared)

if not ns:
ns = .001
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add some comment for this, even though not really necessary? Just to justify this option

t = grid.stepping_dim
def test_nofission_as_unprofitable(self):
"""
Test there's no fission if not gonna increase number of collapsable loops.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"gonna" -> "going to"?

assert_structure(op, ['t,x,y', 't,x,y'], 't,x,y,y')
def test_fission_partial(self):
"""
Test there's no fission if not gonna increase number of collapsable loops.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See previous comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants