Skip to content

Commit e3e301d

Browse files
committed
compiler: Move opt_pows/fact next to unevaluation
1 parent ad447a3 commit e3e301d

3 files changed

Lines changed: 9 additions & 8 deletions

File tree

devito/core/cpu.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
from devito.operator.operator import rcompile
66
from devito.passes import stream_dimensions
77
from devito.passes.equations import collect_derivatives
8-
from devito.passes.clusters import (Lift, blocking, buffering, cire, cse,
9-
factorize, fission, fuse, optimize_pows,
10-
optimize_hyperplanes)
8+
from devito.passes.clusters import (
9+
Lift, blocking, buffering, cire, cse, fission, fuse, optimize_hyperplanes
10+
)
1111
from devito.passes.iet import (CTarget, CXXTarget, COmpTarget, CXXOmpTarget,
1212
avoid_denormals, linearize,
1313
mpiize, hoist_prodders, relax_incr_dimensions,
@@ -176,8 +176,6 @@ def _specialize_clusters(cls, clusters, **kwargs):
176176

177177
# Reduce flops
178178
clusters = cire(clusters, 'sops', sregistry, options, platform)
179-
clusters = factorize(clusters, **kwargs)
180-
clusters = optimize_pows(clusters)
181179

182180
# The previous passes may have created fusion opportunities
183181
clusters = fuse(clusters)

devito/core/gpu.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,6 @@ def _specialize_clusters(cls, clusters, **kwargs):
217217

218218
# Reduce flops
219219
clusters = cire(clusters, 'sops', sregistry, options, platform)
220-
clusters = factorize(clusters, **kwargs)
221-
clusters = optimize_pows(clusters)
222220

223221
# The previous passes may have created fusion opportunities
224222
clusters = fuse(clusters)

devito/operator/operator.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
from devito.parameters import configuration
3030
from devito.passes import (
3131
Graph, lower_index_derivatives, generate_implicit, generate_macros,
32-
minimize_symbols, unevaluate, error_mapper, is_on_device, lower_dtypes
32+
minimize_symbols, factorize, optimize_pows, unevaluate, error_mapper,
33+
is_on_device, lower_dtypes
3334
)
3435
from devito.symbolics import estimate_cost, subs_op_args
3536
from devito.tools import (DAG, OrderedSet, Signer, ReducerMap, as_mapper, as_tuple,
@@ -409,6 +410,10 @@ def _lower_clusters(cls, expressions, profiler=None, **kwargs):
409410
# Lower all remaining high order symbolic objects
410411
clusters = lower_index_derivatives(clusters, **kwargs)
411412

413+
# Reduce flops w/ structural changes
414+
clusters = factorize(clusters, **kwargs)
415+
clusters = optimize_pows(clusters)
416+
412417
# Make sure no reconstructions can unpick any of the symbolic
413418
# optimizations performed so far
414419
clusters = unevaluate(clusters)

0 commit comments

Comments
 (0)