Skip to content

[Unity][CUTLASS] Fix circular import bug in relax cutlass backend#15001

Merged
masahi merged 4 commits intoapache:unityfrom
digital-nomad-cheng:unity
Jun 1, 2023
Merged

[Unity][CUTLASS] Fix circular import bug in relax cutlass backend#15001
masahi merged 4 commits intoapache:unityfrom
digital-nomad-cheng:unity

Conversation

@digital-nomad-cheng
Copy link
Contributor

@digital-nomad-cheng digital-nomad-cheng commented May 31, 2023

There exists circular import bug in tvm/python/tvm/relax/backend/contrib/cutlass.py

Code to reproduce:

from tvm.contrib.cutlass import (
    has_cutlass,
    num_cutlass_partitions,
    finalize_modules
)

Error:

File "/home/work/tmp/test.py", line 1, in <module>
    from tvm.contrib.cutlass import (
  File "/home/tvm/python/tvm/contrib/cutlass/__init__.py", line 18, in <module>
    from .build import has_cutlass, num_cutlass_partitions, finalize_modules, finalize_modules_vm
  File "/home/tvm/python/tvm/contrib/cutlass/build.py", line 28, in <module>
    from tvm import relax, relay, runtime
  File "/home/tvm/python/tvm/relax/__init__.py", line 90, in <module>
    from . import backend
  File "/home/tvm/python/tvm/relax/backend/__init__.py", line 19, in <module>
    from . import contrib
  File "/home/tvm/python/tvm/relax/backend/contrib/__init__.py", line 20, in <module>
    from .cutlass import partition_for_cutlass
  File "/home/tvm/python/tvm/relax/backend/contrib/cutlass.py", line 24, in <module>
    from tvm.contrib.cutlass.build import is_shape_valid_for_cutlass_matmul
ImportError: cannot import name 'is_shape_valid_for_cutlass_matmul' from partially initialized module 'tvm.contrib.cutlass.build' (most likely due to a circular import) (/home/tvm/python/tvm/contrib/cutlass/build.py)

@tvm-bot
Copy link
Collaborator

tvm-bot commented May 31, 2023

Thanks for contributing to TVM! Please refer to the contributing guidelines https://tvm.apache.org/docs/contribute/ for useful information and tips. Please request code reviews from Reviewers by @-ing them in a comment.

Generated by tvm-bot

@digital-nomad-cheng digital-nomad-cheng changed the title [Unity][CUTLASS] Fix bug [Unity][CUTLASS] Fix circular import bug in relax cutlass backend May 31, 2023
@masahi
Copy link
Member

masahi commented May 31, 2023

I think it is better to remove from .cutlass import partition_for_cutlass from backend/contrib/__init__.py since doing import relax shouldn't cause contrib/cutlass/build.py to depend on contrib/cutlass.py. cc @yelite

@digital-nomad-cheng
Copy link
Contributor Author

Import removed from __init__

@@ -17,4 +17,3 @@

"""External backend codegen modules for Relax."""

Copy link
Member

Choose a reason for hiding this comment

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

You can remove this file now that it is not used at all.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the feedback, file removed.

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