Skip to content
Snippets Groups Projects
Commit 677b9f2a authored by Dominic Kempf's avatar Dominic Kempf
Browse files

Disable performance bug for non-production work

parent f3e2b46e
No related branches found
No related tags found
No related merge requests found
""" A helper transformation that makes all groups conflicting """ """ A helper transformation that makes all groups conflicting """
from dune.perftool.options import get_option
def make_groups_conflicting(knl): def make_groups_conflicting(knl):
groups = frozenset().union(*tuple(i.groups for i in knl.instructions)) # As this transformation introduces a performance bug that basically
return knl.copy(instructions=[i.copy(conflicts_with_groups=groups - i.groups) for i in knl.instructions]) # kills our CI, we only apply it if really needed - meaning in production.
if get_option("assure_statement_ordering"):
groups = frozenset().union(*tuple(i.groups for i in knl.instructions))
return knl.copy(instructions=[i.copy(conflicts_with_groups=groups - i.groups) for i in knl.instructions])
else:
return knl
...@@ -64,6 +64,7 @@ class PerftoolOptionsArray(ImmutableRecord): ...@@ -64,6 +64,7 @@ class PerftoolOptionsArray(ImmutableRecord):
architecture = PerftoolOption(default="haswell", helpstr="The architecture to optimize for. Possible values: haswell|knl") architecture = PerftoolOption(default="haswell", helpstr="The architecture to optimize for. Possible values: haswell|knl")
grid_offset = PerftoolOption(default=False, helpstr="Set to true if you want a yasp grid where the lower left corner is not in the origin.") grid_offset = PerftoolOption(default=False, helpstr="Set to true if you want a yasp grid where the lower left corner is not in the origin.")
simplify = PerftoolOption(default=True, helpstr="Whether to simplify expressions using sympy") simplify = PerftoolOption(default=True, helpstr="Whether to simplify expressions using sympy")
assure_statement_ordering = PerftoolOption(default=False, helpstr="Whether special care should be taken for a good statement ordering in sumfact kernels, runs into a loopy scheduler performance bug, but is necessary for production.")
# Arguments that are mainly to be set by logic depending on other options # Arguments that are mainly to be set by logic depending on other options
max_vector_width = PerftoolOption(default=256, helpstr=None) max_vector_width = PerftoolOption(default=256, helpstr=None)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment