-
Notifications
You must be signed in to change notification settings - Fork 262
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
LAGraph: looking for GraphBLAS; CHOLMOD: merge cuda, vertcat/horzcat; ParU: enable_cuda; GraphBLAS testing #550
Conversation
That is needed when using the root CMakeLists.txt.
LAGraph: Also look for GraphBLAS import target in common build tree
…E_CUDA in ParU/CMakeLists as well
…et ENABLE_CUDA in ParU/CMakeLists as well" This reverts commit eb28091.
CHOLMOD: Automatically import CUDA targets if needed.
LAGraph: Remove hardcoded include directory
There seem to be two issues in CI. Both are related to how LAGraph imports GraphBLAS and its version number:
For the first issue, we could change that line to For the second issue, we could either change the variable names in GraphBLASConfig.cmake or in FindGraphBLAS.cmake so that they match (and use them when creating LAGraphConfig.cmake). What would you prefer? |
I would rather change the variable names. Keep the ones I use in GraphBLAS, with For find_package: yes, the range is fine. In fact, 7.1.0...9.0.1 should work too. I have a draft of 9.0.0 and 9.0.1 that can't be released yet but it would be useful to be able to use it with LAGraph as-is. |
…GraphBLAS version
I changed the find_package from 7.1.0 to 7.1.0...9.0.1. I also changed the name of the LAGraph project from lagraph to LAGraph. This seems to be required when running test_coverage, which is not done in SuiteSparse but it is done in the build.yaml in the LAGraph repo. This line: SuiteSparse/LAGraph/CMakeLists.txt Line 107 in d189df3
fails on Linux, it seems, because the target "lagraph" (lower case) isn't found. It worked before but not now. Lower case works on the mac (which is case insensitive for file names). If I change the project name to LAGraph (upper case): SuiteSparse/LAGraph/CMakeLists.txt Line 55 in d189df3
from its original "lagraph" then the test_coverage works. This doesn't affect SuiteSparse since we don't run the test_coverage there. It does affect the LAGraph test coverge in the LAGraph repo. I'm not sure where the name change of |
Hmm, cmake doesn't like the I get this error in the CI, and on my local machine when building LAGraph:
I don't know how to fix that. |
Actually, there is a much better option: (1) the version range can be enabled by adding HANLDLE_VERSION_RANGE, but it's limited. It can only do things like 3.4.0...3.4.9. The major and minor numbers must match. That's useless for LAGraph + GraphBLAS, which needs 7.10...9.0.1, for example (2) LAGraph can rely on any GraphBLAS library and the version number of that library would be arbitrary. (3) If using SuiteSparse::GrapBLAS, the best solution is for LAGraph.h to detect if SuiteSparse is in use, and if so, the header file LAGraph.h can raise an #error if the version number is not OK. This makes the version checking in FindGraphBLAS.cmake irrelevant, so LAGraph can just do:
|
That sounds reasonable. We probably don't even need that guard on the header. It might be nice to be able to build the LAGraph in SuiteSparse with a different GraphBLAS, too. We would probably still need to have the (correct) version number of GraphBLAS that was used to build it in LAGraphConfig.cmake. Currently it checks for matching major and minor version for ABI/API compatibility. Is that correct? |
CHOLMOD: merge cholmod_cuda library into main cholmod library. Fix A and B dtype checks in horzcat and vertcat.
ParU: enable_cuda (to match KLU, UMFPACK)
LAGraph: look for GraphBLAS in build tree first, so we don't get an old SuiteSparse GraphBLAS in /usr/local/include.
GraphBLAS: testing