-
Notifications
You must be signed in to change notification settings - Fork 42
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
Static CUDA build failure #567
Comments
Thanks for reporting and for the suggestion, Veselin. Interesting that it fails on lassen. We run the CI on lassen and everything looks fine. We'll look into it. @nychiang : can you replicate this on Lassen? @cameronrutherford any chance this is spack-related? |
https://cmake.org/cmake/help/latest/module/FindCUDAToolkit.html#culibos The documentation suggests that this is only a static library, and that it shouldn't be touched by consumers. I'm not sure where this dependency is being pulled in, but we could link to the target directly, or link against some of the static libraries mentioned when building shared. EDIT: Don't think this is a spack issue FWIW |
@v-dobrev, could you try to build HiOp with CUDA without Spack? If so could you provide output when you |
The error
@v-dobrev, what is the CMake version you are using? @cameronrutherford, are you sure we have minimum CMake version correctly specified in Spack and HiOp? I built HiOp with v3.21.3. |
@pelesh CMake version is 3.18 and consistent across CMake and Spack configuration. It's possible we need to bump to 3.20. We should probably always test with minimum versions in CI, so perhaps we should also start enforcing that. |
I have no problem to build hiop on lassen, with cmake/3.20.2. gcc/8.3.1 and cuda/11.7. |
I rebuilt from scratch on Power9/V100 using CMake 3.18 this time and everything still works just fine. I agree with @cameronrutherford, it is unlikely this is a Spack issue -- we use spack builds on all CI pipelines. |
In Spack, I have I'm also using Note that the Spack spec I used results in a pure static build, i.e. the cmake config line has (among other flags): I'll try a similar build outside of Spack and I'll report back. |
I was able to reproduce the issue outside of Spack on Lassen using following steps: Load the following modules:
resulting in the following loaded modules:
Then clone HiOp and run:
And finally run make:
The error happens when linking the first test:
|
I can reproduce this on develop. Changing two options though, can make compiling successful. They are: |
@v-dobrev
|
I also think this issue is related to Lassen's CUDA libs. But will merge the PR, it seems to be harmless (time will tell). |
I was trying to build HiOp through Spack and noticed that the command
fails on LLNL's Lassen machine. The errors look like this:
It looks like HiOp needs to link to
libculibos.a
in this case -- probably by adding it in this list:hiop/cmake/FindHiopCudaLibraries.cmake
Lines 21 to 29 in 2164bb6
As a workaround I was able to build HiOp by adding the
+shared
variant in Spack. In that case bothlibcurand.so
andlibcurand_static.a
are present at the command line and linking works fine.The text was updated successfully, but these errors were encountered: