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

missing file : clients/rocFFT/shared/arithmetic.h #83

Closed
trixirt opened this issue Dec 21, 2023 · 8 comments
Closed

missing file : clients/rocFFT/shared/arithmetic.h #83

trixirt opened this issue Dec 21, 2023 · 8 comments

Comments

@trixirt
Copy link
Contributor

trixirt commented Dec 21, 2023

What is the expected behavior

  • to build default cmake

What actually happens

  • make
    [ 50%] Building CXX object library/CMakeFiles/hipfft.dir/src/amd_detail/hipfft.cpp.o
    /home/trix/rocm/hipFFT/library/src/amd_detail/hipfft.cpp:30:10: fatal error: ../../../clients/rocFFT/shared/arithmetic.h: No such file or directory
    30 | #include "../../../clients/rocFFT/shared/arithmetic.h"
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make[2]: *** [library/CMakeFiles/hipfft.dir/build.make:76: library/CMakeFiles/hipfft.dir/src/amd_detail/hipfft.cpp.o] Error 1

How to reproduce

git checkout rocm-6.0.0
cmake
make

Environment

Hardware description
GPU device string
CPU device string
Software version
ROCK v0.0
ROCR v0.0
HCC v0.0
Library v0.0
@evetsso
Copy link
Contributor

evetsso commented Dec 21, 2023

Hi @trixirt - hipFFT has rocFFT as a submodule (in clients/rocFFT). The hipFFT rocm-6.0.0 tag should have d1c91135da99acd2c690e9aae619642ab57b0914 as the rocFFT commit, in which that file should be present.

Can you confirm that this is the rocFFT commit you have checked out for the submodule? Does git submodule update --init fix anything for you?

@trixirt
Copy link
Contributor Author

trixirt commented Dec 22, 2023

It should be buildable, it was earlier in 5.7.1

@trixirt
Copy link
Contributor Author

trixirt commented Dec 22, 2023

More context.
To be packaged in fedora, it must be buildable from the tarball.
rocfft is built seperately as its own package.

@evetsso
Copy link
Contributor

evetsso commented Dec 22, 2023

One thing that changed between 5.7.1 and 6.0.0 is that the core library started using header files from the submodule. So this same situation would have occurred, if the hipFFT client programs were packaged in 5.7.1.

You mentioned git checkout rocm-6.0.0, but you also mentioned the tarball. Can I confirm that you're talking about the tarball downloadable from GitHub (i.e. https://github.com/ROCm/hipFFT/releases/tag/rocm-6.0.0)?

Builds from a git clone will need to have submodules initialized. It seems that the submodule was not included in the files in the release tarball.

@cgmb
Copy link
Contributor

cgmb commented Dec 24, 2023

This is an issue for Debian packaging, too. It can be worked around, but it's a bit troublesome.

My preference would be to either include the specific files shared between the repos directly in each repository (e.g., using git subrepo or git subtree), or for rocfft to create a small library package that contains the files needed for hipfft. If it's just a few files, the duplication caused by subrepo is fine, but the more shared code there is, the greater the preference for creating a proper library package.

this same situation would have occurred, if the hipFFT client programs were packaged in 5.7.1.

This is why hipfft from ROCm 5.5.1 is packaged for Debian, but the tests are not.

It seems that the submodule was not included in the files in the release tarball.

Embedding the full source to rocFFT in the hipFFT tarball is not ideal. I'm not sure Debian would use it, as that is against the recommendations on embedded copies.

@trixirt
Copy link
Contributor Author

trixirt commented Jan 6, 2024

Sorry for the fedora-ism.. here is the spec file
hipfft.spec

The tarball is created from the url on line 28.
The build is from a tarball, created from the tag mentioned above.
Using git to fetch an active repo is not possible because the fedora (and rhel) build system is disconnected from the network.

hipfft is built against an already built and installed rocfft.

Likewise for fedora, embedding the full source of rocFFT would not work.

@trixirt
Copy link
Contributor Author

trixirt commented Jan 6, 2024

The wip workaround is Use rocfft shared headers

But this requires hacking the rocfft install .

@evetsso
Copy link
Contributor

evetsso commented Jan 17, 2024

This issue is fixed in ROCm 6.0.1 with 18c75d8 and in develop with cb35b9f.

@evetsso evetsso closed this as completed Jan 17, 2024
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

No branches or pull requests

3 participants