Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor[next]: workflowify PAST -> ITIR toolchain step #1479

Merged
merged 55 commits into from
Mar 14, 2024

Conversation

DropD
Copy link
Contributor

@DropD DropD commented Mar 1, 2024

New:

  • "next.ffront":
    • ".past_to_itir": workflow step PAST -> ITIR
    • ".transform_utils": some utility functions moved from "next.ffront.decorator"

Changed:

  • "Backend":

    • is not a "ProgramProcessor" anymore
    • still passes "is_program_backend" test
    • new attribute ".transformer", a workflow which prepares for the ".executor"
      • currently starts at "stages.PastClosure" (PAST node + args, kwargs) but will evolve into starting from function definition + args, kwargs
  • "ModularExecutor":

    • is now a "ProgramExecutor" (passes "is_processor_kind" test)
  • "program_processor_interface":

    • "is_program_backend" test now checks for existence of an ".executor" attribute, which must pass the executor test
  • "ffront.decorator":

    • several utilities and methods refactored out into the new modules
  • tests: test utils / fixtures refactored to deal with backends which are not executors

@DropD DropD marked this pull request as draft March 1, 2024 13:07
@DropD DropD changed the title C20 workflowefy refactor[next]: workflowify toolchain Mar 1, 2024
@DropD DropD marked this pull request as ready for review March 6, 2024 14:11
Copy link
Contributor

@havogt havogt left a comment

Choose a reason for hiding this comment

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

Looks good. A couple of things that I would move around and I'd split the past_to_func into a separate PR.

src/gt4py/next/otf/transforms/__init__.py Outdated Show resolved Hide resolved
src/gt4py/next/otf/stages.py Show resolved Hide resolved
src/gt4py/next/ffront/transform_utils.py Show resolved Hide resolved
src/gt4py/next/ffront/past_to_itir_wf.py Outdated Show resolved Hide resolved
src/gt4py/next/program_processors/runners/roundtrip.py Outdated Show resolved Hide resolved
src/gt4py/next/type_system/type_info.py Outdated Show resolved Hide resolved
src/gt4py/next/ffront/decorator.py Outdated Show resolved Hide resolved
src/gt4py/next/ffront/past_process_args_wf.py Outdated Show resolved Hide resolved
src/gt4py/next/ffront/past_to_func_wf.py Outdated Show resolved Hide resolved
@DropD DropD mentioned this pull request Mar 8, 2024
4 tasks
Copy link
Contributor

@havogt havogt left a comment

Choose a reason for hiding this comment

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

Good first step! You need to merge with main to get CI green.

@havogt
Copy link
Contributor

havogt commented Mar 13, 2024

Maybe update the title before merge to be a bit more specific as it's only part of the workflowify

@DropD DropD changed the title refactor[next]: workflowify toolchain refactor[next]: workflowify PAST -> ITIR toolchain step Mar 13, 2024
@DropD DropD merged commit 7a980f9 into GridTools:main Mar 14, 2024
51 checks passed
edopao pushed a commit to edopao/gt4py that referenced this pull request Mar 18, 2024
## New:
- "next.ffront":
  - ".past_to_itir": workflow step PAST -> ITIR
- ".transform_utils": some utility functions moved from
"next.ffront.decorator"
 
## Changed:
 - "Backend":
   - is not a "ProgramProcessor" anymore
   - still passes "is_program_backend" test
- new attribute ".transformer", a workflow which prepares for the
".executor"
- currently starts at "stages.PastClosure" (PAST node + args, kwargs)
but will evolve into starting from function definition + args, kwargs
 
 - "ModularExecutor":
   - is now a "ProgramExecutor" (passes "is_processor_kind" test)

 - "program_processor_interface":
- "is_program_backend" test now checks for existence of an ".executor"
attribute, which must pass the executor test
   
 - "ffront.decorator":
   - several utilities and methods refactored out into the new modules

- tests: test utils / fixtures refactored to deal with backends which
are not executors

---------

Co-authored-by: nfarabullini <nicoletta.farabullini@c2sm.ethz.ch>
Co-authored-by: Rico Häuselmann <ricoh@cscs.ch>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants