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

rocBLAS: Add an option to disable tensile #28846

Closed
wants to merge 4 commits into from

Conversation

teonnik
Copy link
Contributor

@teonnik teonnik commented Feb 9, 2022

  • Tensile takes a lot of time to compile, add an option to disable it
  • Change variant name to be consistent with rocsolver
  • Change default variant value to be consistent with rocsolver

Ideally Tensile should be a separate package but that can be handled in a different PR.

- Change variant name to be consistent with rocsolver
- Change default variant value to be consistent with rocsolver
@srekolam
Copy link
Contributor

@cgmb ,can you please review it

@cgmb
Copy link
Contributor

cgmb commented Feb 10, 2022

Does rocSOLVER build with rocblas~tensile? IIRC, there used to be missing symbols if you tried to do that.

@teonnik
Copy link
Contributor Author

teonnik commented Feb 10, 2022

@cgmb

Does rocSOLVER build with rocblas~tensile? IIRC, there used to be missing symbols if you tried to do that.

The package builds fine. However, I checked for missing symbols and indeed gemms are missing. I thought that rocblas would have those even without tensile, I guess I was wrong. :/

@haampie
Copy link
Member

haampie commented Feb 11, 2022

@cgmb do you think rocblas could have a fallback gemm that's quick to build?

@cgmb
Copy link
Contributor

cgmb commented Feb 11, 2022

That's been on my personal wishlist for a while... but I have a rather long wishlist. My suggestion would be to open an issue requesting the feature from rocBLAS.

@cgmb
Copy link
Contributor

cgmb commented Feb 11, 2022

I haven't actually tested it, but I like this change aside from the default amdgpu_target.

@cgmb
Copy link
Contributor

cgmb commented Feb 12, 2022

There will be some minor merge conflicts to resolve if #27436 is merged first, but they should be pretty easy to deal with.

Copy link
Contributor

@cgmb cgmb left a comment

Choose a reason for hiding this comment

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

The defaults on the variants are not appropriate. This should not be merged until they're changed.

By the way, there are build speed improvements coming for Tensile in ROCm 5.0/5.1, so you do have something to look forward to.

@teonnik
Copy link
Contributor Author

teonnik commented Feb 14, 2022

I addressed the comments regarding the default variant and copied the changes for the variant from #28907 for rocblas. This now has the same changes for rocblas as in #28907 except that the default for tensile is set to True. If merging this PR before #28907 is preferable, then this can be merged, if not, then this PR can be closed and only #28907 can be merged (after the default value is changed there).

Copy link
Contributor

@cgmb cgmb left a comment

Choose a reason for hiding this comment

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

This change still needs testing to verify it doesn't break anything, but the code looks good.

@cgmb
Copy link
Contributor

cgmb commented Feb 28, 2022

There will be some minor merge conflicts to resolve if #27436 is merged first, but they should be pretty easy to deal with.

It has been merged, so the conflicts will need to be resolved.

@teonnik teonnik closed this Mar 29, 2022
@cgmb
Copy link
Contributor

cgmb commented Apr 1, 2022

This PR was closed because it was subsumed into #28907.

I talked with the rocBLAS team about this and they were receptive to fleshing out the BUILD_WITH_TENSILE=OFF variant into something more usable by third-parties. The optimized Tensile kernels are important for achieving peak performance with rocblas, but they do introduce build-time and run-time complexity that's not always needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants