Skip to content

Commit 393fa92

Browse files
shakedregevpelesh
andauthored
This fixes cmake for permutation in HyKKT (#209)
* added new permutation kernels * edited cmake * added Hello world tests * added Hello world tests * resolved conflict * hykkt hello world working, working on linking for permutation * resolved conflict * Ignore files in resolve/hybrid dir. * Remove cpu subdirectory in hykkt dir. * hykkt lib builds. * Fix issues in CMake related to HyKKT build. * resolved conflict * HyKKT permutation test works. * modifications for CUDA * removed extraneous tests * reformatted according to contributing guidelines * fixed straggling old names * stash * fixed capitalization for selectionSort2 * fixed capitalization for selectionSort2 * doesn't add hykkt if not using suitesparse * doesn't add hykkt if not using suitesparse * added namespaces and capitalized enums * fixed naming * function alignment * namespace fixes, const where possible * Fix issue with linking workspace to HyKKT. (#211) * Coding style suggestions (#213) * Coding style suggestions. * added param in/out * Style suggestions for permutation tests. * Some more doxygen formatting. --------- Co-authored-by: shakedregev <shakedvregev@gmail.com> * added requested changes * addressed Doxygen comment issues --------- Co-authored-by: Slaven Peles <peless@ornl.gov>
1 parent 571d13b commit 393fa92

File tree

12 files changed

+978
-5
lines changed

12 files changed

+978
-5
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ spack-configure-*
1515
docs/dox.warnings
1616
docs/@dox_output_dir@axom.tag
1717
docs/html
18+

cmake/FindSuiteSparse.cmake

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ find_library(SUITESPARSE_LIBRARY
2222
${SUITESPARSE_DIR} $ENV{SUITESPARSE_DIR} ${SUITESPARSE_ROOT_DIR}
2323
ENV LD_LIBRARY_PATH ENV DYLD_LIBRARY_PATH
2424
PATH_SUFFIXES
25-
lib64 lib)
25+
lib/x86_64-linux-gnu lib64 lib)
2626

2727
if(SUITESPARSE_LIBRARY)
28-
set(SUITESPARSE_LIBRARY CACHE FILEPATH "Path to Suitesparse library")
28+
set(SUITESPARSE_LIBRARY CACHE FILEPATH "File path to Suitesparse library")
2929
get_filename_component(SUITESPARSE_LIBRARY_DIR ${SUITESPARSE_LIBRARY} DIRECTORY CACHE "Suitesparse library directory")
3030
message(STATUS "Found Suitesparse libraries in: " ${SUITESPARSE_LIBRARY_DIR})
3131
mark_as_advanced(SUITESPARSE_LIBRARY SUITESPARSE_LIBRARY_DIR)
@@ -44,7 +44,7 @@ find_path(SUITESPARSE_INCLUDE_DIR
4444
PATHS
4545
${SUITESPARSE_DIR} $ENV{SUITESPARSE_DIR} ${SUITESPARSE_ROOT_DIR} ${SUITESPARSE_LIBRARY_DIR}/..
4646
PATH_SUFFIXES
47-
include)
47+
include include/suitesparse)
4848

4949
if(SUITESPARSE_LIBRARY)
5050
message(STATUS "Found Suitesparse include: ${SUITESPARSE_INCLUDE_DIR}")
@@ -75,6 +75,6 @@ else()
7575
message(STATUS "Suitesparse library not found! Please provide correct filepath.")
7676
endif()
7777
if(SUITESPARSE_ROOT_DIR AND NOT SUITESPARSE_INCLUDE_DIR)
78-
message(STATUS "Suitesparse include dir not found! Please provide correct filepath.")
78+
message(STATUS "Suitesparse include dir not found! Please provide correct path.")
7979
endif()
80-
endif()
80+
endif()

resolve/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ set(ReSolve_LUSOL_SRC
2929
LinSolverDirectLUSOL.cpp
3030
)
3131

32+
3233
# C++ code that links to CUDA SDK libraries
3334
set(ReSolve_CUDASDK_SRC
3435
LinSolverDirectCuSolverGLU.cpp
@@ -113,6 +114,7 @@ if(RESOLVE_USE_LUSOL)
113114
list(APPEND ReSolve_Targets_List lusol_lib)
114115
endif()
115116

117+
116118
# If no GPU support is enabled, link to dummy device backend
117119
if(NOT RESOLVE_USE_GPU)
118120
add_subdirectory(cpu)
@@ -137,6 +139,14 @@ if(RESOLVE_USE_HIP)
137139
list(APPEND ReSolve_HEADER_INSTALL ${ReSolve_ROCM_HEADER_INSTALL})
138140
endif()
139141

142+
# Add HyKKT solver
143+
if(RESOLVE_USE_KLU)
144+
add_subdirectory(hykkt)
145+
endif()
146+
#list(APPEND ReSolve_Targets_List resolve_hykkt)
147+
148+
149+
140150
# Set installable targets
141151
install(TARGETS ${ReSolve_Targets_List} EXPORT ReSolveTargets)
142152

resolve/hykkt/CMakeLists.txt

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#[[
2+
3+
@brief Build ReSolve matrix module
4+
5+
@author Slaven Peles <peless@ornl.gov>
6+
7+
]]
8+
9+
# C++ code
10+
set(HyKKT_SRC
11+
Permutation.cpp
12+
cpuPermutationKernels.cpp
13+
)
14+
15+
# C++ code that depends on CUDA SDK libraries
16+
set(HyKKT_CUDASDK_SRC
17+
)
18+
19+
# and on HIP
20+
set(HyKKT_ROCM_SRC
21+
)
22+
23+
# Header files to be installed
24+
set(HyKKT_HEADER_INSTALL
25+
Permutation.hpp
26+
cpuPermutationKernels.hpp
27+
)
28+
29+
# Build shared library ReSolve::matrix
30+
add_library(resolve_hykkt SHARED ${HyKKT_SRC})
31+
target_link_libraries(resolve_hykkt PUBLIC resolve_logger resolve_vector ${suitesparse_amd})
32+
target_include_directories(resolve_hykkt PUBLIC ${SUITESPARSE_INCLUDE_DIR})
33+
34+
# Link to CUDA ReSolve backend if CUDA is support enabled
35+
if (RESOLVE_USE_CUDA)
36+
target_sources(resolve_hykkt PRIVATE ${HyKKT_CUDASDK_SRC})
37+
target_link_libraries(resolve_hykkt PUBLIC resolve_backend_cuda)
38+
endif()
39+
40+
if (RESOLVE_USE_HIP)
41+
target_sources(resolve_hykkt PRIVATE ${HyKKT_ROCM_SRC})
42+
target_link_libraries(resolve_hykkt PUBLIC resolve_backend_hip)
43+
endif()
44+
45+
# Link to dummy device backend if GPU support is not enabled
46+
if (NOT RESOLVE_USE_GPU)
47+
target_link_libraries(resolve_hykkt PUBLIC resolve_backend_cpu)
48+
endif()
49+
50+
target_link_libraries(resolve_hykkt PUBLIC resolve_workspace)
51+
52+
target_include_directories(resolve_hykkt INTERFACE
53+
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}>
54+
$<INSTALL_INTERFACE:include>
55+
)
56+
57+
install(FILES ${HyKKT_HEADER_INSTALL} DESTINATION include/resolve/hykkt)

0 commit comments

Comments
 (0)