Skip to content

Commit

Permalink
feat[dace]: Updated DaCe Transformations (#1639)
Browse files Browse the repository at this point in the history
The [initial version](#1594) of
the optimization pipeline only contained a rough draft.
Currently this PR contains a copy of the map fusion transformations from
DaCe that are currently under
[review](spcl/dace#1629). As soon as that PR is
merged and DaCe was updated in GT4Py these files will be deleted.

This PR collects some general improvements:
- [x] More liberal `LoopBlocking` transformation (with tests).
- [x] Incorporate `MapFusionParallel` 
- [x] Using of `can_be_applied_to()` as soon as DaCe is updated
(`TrivialGPUMapElimination`, `SerialMapPromoter`).
- [x] Looking at strides that the Lowering generates. (Partly done)

However, it still uses MapFusion implementation that ships with GT4Py
and not the one in DaCe.


Note:
Because of commit 60e4226 this PR must be merged after
[PR1768](#1768).
  • Loading branch information
philip-paul-mueller authored Dec 4, 2024
1 parent ea61659 commit 33c5ba3
Show file tree
Hide file tree
Showing 28 changed files with 6,118 additions and 1,597 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,32 +12,56 @@
that explains the general structure and requirements on the SDFGs.
"""

from .auto_opt import (
from .auto_optimize import gt_auto_optimize
from .gpu_utils import (
GPUSetBlockSize,
gt_gpu_transform_non_standard_memlet,
gt_gpu_transformation,
gt_set_gpu_blocksize,
)
from .local_double_buffering import gt_create_local_double_buffering
from .loop_blocking import LoopBlocking
from .map_fusion_parallel import MapFusionParallel
from .map_fusion_serial import MapFusionSerial
from .map_orderer import MapIterationOrder, gt_set_iteration_order
from .map_promoter import SerialMapPromoter
from .simplify import (
GT_SIMPLIFY_DEFAULT_SKIP_SET,
gt_auto_optimize,
GT4PyGlobalSelfCopyElimination,
GT4PyMapBufferElimination,
GT4PyMoveTaskletIntoMap,
gt_inline_nested_sdfg,
gt_set_iteration_order,
gt_reduce_distributed_buffering,
gt_simplify,
gt_substitute_compiletime_symbols,
)
from .gpu_utils import GPUSetBlockSize, gt_gpu_transformation, gt_set_gpu_blocksize
from .loop_blocking import LoopBlocking
from .map_orderer import MapIterationOrder
from .map_promoter import SerialMapPromoter
from .map_serial_fusion import SerialMapFusion
from .strides import gt_change_transient_strides
from .util import gt_find_constant_arguments, gt_make_transients_persistent


__all__ = [
"GT_SIMPLIFY_DEFAULT_SKIP_SET",
"GPUSetBlockSize",
"GT4PyGlobalSelfCopyElimination",
"GT4PyMoveTaskletIntoMap",
"GT4PyMapBufferElimination",
"LoopBlocking",
"MapIterationOrder",
"SerialMapFusion",
"MapFusionParallel",
"MapFusionSerial",
"SerialMapPromoter",
"SerialMapPromoterGPU",
"gt_auto_optimize",
"gt_change_transient_strides",
"gt_create_local_double_buffering",
"gt_gpu_transformation",
"gt_inline_nested_sdfg",
"gt_set_iteration_order",
"gt_set_gpu_blocksize",
"gt_simplify",
"gt_make_transients_persistent",
"gt_reduce_distributed_buffering",
"gt_find_constant_arguments",
"gt_substitute_compiletime_symbols",
"gt_gpu_transform_non_standard_memlet",
]
Loading

0 comments on commit 33c5ba3

Please sign in to comment.