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

Fix some precompute transformation algorithm bugs that arose #480

Merged
merged 4 commits into from
Jul 3, 2021

Conversation

weiya711
Copy link
Contributor

@weiya711 weiya711 commented Jul 2, 2021

Fix a bug in the algorithm so that the precompute transformation can only occur on cascaded ForallNodes without any WhereNodes inside the forall->stmt. The current test DISABLED_tile_dotProduct_1 tests this case but is currently disabled because of the issue stated in the test's comments/FIXME.

Also fix a minor bug where expected and A were flipped in test/tests-workspaces.cpp when calling ASSERT_TENSOR_EQ(expected, A).

Also added in some disabled precompute tests that should work but currently do not due to certain new bugs found in the algorithm. I would like to add these tests in to the regression disabled and track re-enabling them using Git issues.

@weiya711 weiya711 requested a review from stephenchouca July 2, 2021 07:17
@weiya711
Copy link
Contributor Author

weiya711 commented Jul 2, 2021

Run on GPU is pending, will link to a passing Action

@stephenchouca
Copy link
Contributor

Do you know why exactly the arguments to ASSERT_TENSOR_EQ needed to be flipped? Isn't that function supposed to be commutative since it's just checking for equality?

@weiya711
Copy link
Contributor Author

weiya711 commented Jul 3, 2021

Do you know why exactly the arguments to ASSERT_TENSOR_EQ needed to be flipped? Isn't that function supposed to be commutative since it's just checking for equality?
@stephenchouca

Although functionally they are equivalent and the code is still correct, when there is an error message and expected and A are switched, something like this gets printed:

Value of: equals(expected, actual)
  Actual: false
Expected: true
Google Test trace:
/Users/oliviahsu/Files/research/taco2/taco/test/test.cpp:37:   actual: expected () (; ):
[3.5739e+08]
/Users/oliviahsu/Files/research/taco2/taco/test/test.cpp:36: expected: A () (; ):
[3.24845e+07]

which I found super annoying and confusing so I decided to bulk switch them just for the test file that I was working on. Mainly it's the mismatch between actual: expected and expected: A

@stephenchouca
Copy link
Contributor

Do you know why exactly the arguments to ASSERT_TENSOR_EQ needed to be flipped? Isn't that function supposed to be commutative since it's just checking for equality?
@stephenchouca

Although functionally they are equivalent and the code is still correct, when there is an error message and expected and A are switched, something like this gets printed:

Value of: equals(expected, actual)
  Actual: false
Expected: true
Google Test trace:
/Users/oliviahsu/Files/research/taco2/taco/test/test.cpp:37:   actual: expected () (; ):
[3.5739e+08]
/Users/oliviahsu/Files/research/taco2/taco/test/test.cpp:36: expected: A () (; ):
[3.24845e+07]

which I found super annoying and confusing so I decided to bulk switch them just for the test file that I was working on. Mainly it's the mismatch between actual: expected and expected: A

Ah I see, that makes sense.

@stephenchouca stephenchouca merged commit ee8c22a into master Jul 3, 2021
@weiya711 weiya711 deleted the multidim-workspace branch June 25, 2022 00:01
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.

2 participants