Skip to content

optimization_config

OptimizationConfig dataclass

Configuration for running the full-program optimization

gpu = field(default_factory=GPU) class-attribute instance-attribute

GPU-only optimization options

hint = OptimizationHint.PARALLEL class-attribute instance-attribute

Hint for all optimizations passes

stree = field(default_factory=Tree) class-attribute instance-attribute

Schedule Tree optimization options

GPU dataclass

Optimization dedicated for GPU

common_gpu_xforms = False class-attribute instance-attribute

DaCe common xforms bundled in apply_gpu_transformations

Tree dataclass

Optimization using the Schedule Tree IR

enabled = os.getenv('NDSL_STREE_OPT', 'False').lower() == 'true' class-attribute instance-attribute

Enable Schedule Tree transformations.

inline_K_loops_size_one = False class-attribute instance-attribute

"Remove serial for loops of size one in the K-axis.

kernelize = OptimizationOption.AUTO class-attribute instance-attribute

Enable maximizing 3-axis kernelization by duplicating maps (GPU only).

merger = field(default_factory=Merger) class-attribute instance-attribute

Configuration object for cartesian axis merging.

refine_transients = True class-attribute instance-attribute

Reduce dimensionality of transient arrays based on their usage.

Merger dataclass

enabled = True class-attribute instance-attribute

Enable cartesian axis merging.

order = 'default' class-attribute instance-attribute

Allows to manually override the merging order (e.g. KJI will merge K, then J, then I). The default follows loop order of the backend given to CartesianMerge.

overcompute = os.getenv('NDSL_STREE_OVERCOMPUTE_MERGE', 'True').lower() == 'true' class-attribute instance-attribute

When merging allow maps of different sizes to merge by inserting an if guard.

OptimizationHint

Bases: Enum

Hint for the configuration system that will drive the OptimizationOption.AUTO value

PARALLEL = enum.auto() class-attribute instance-attribute

Suitable for GPU or many-thread (parallelization) CPU strategy.

SERIAL = enum.auto() class-attribute instance-attribute

Suitable for many-cores (serial) CPU strategy.

OptimizationOption

Bases: Enum

Options for configuration element. AUTO will rely on the best guess default

APPLY = enum.auto() class-attribute instance-attribute

Pass will always be applied

AUTO = enum.auto() class-attribute instance-attribute

Best guess relying on the OptimizationHint

DO_NOT_APPLY = enum.auto() class-attribute instance-attribute

Pass will never be applied