Skip to content

Commit 754021c

Browse files
committed
added option CUPDLP_FIND_CUDA
1 parent e0e87bc commit 754021c

File tree

2 files changed

+47
-17
lines changed

2 files changed

+47
-17
lines changed

CMakeLists.txt

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,13 @@ set(DEBUG_MEMORY "Off" CACHE STRING "Sanitizers")
114114
# emscripten
115115
option(EMSCRIPTEN_HTML "Emscripten HTML output" OFF)
116116

117-
# option(CUPDLP_GPU "Build pdlp with CPU" ON)
118-
# message(STATUS "Build pdlp with CPU: ${CUPDLP_CPU}")
119117

120118
option(CUPDLP_GPU "Build pdlp with GPU" OFF)
121-
122119
message(STATUS "Build pdlp with GPU: ${CUPDLP_GPU}")
123120

121+
option(CUPDLP_FIND_CUDA "Build pdlp with GPU" OFF)
122+
message(STATUS "Use FindCUDAConf: ${CUPDLP_FIND_CUDA}")
123+
124124
# if (NOT LINUX)
125125
# set (CUPDLP_GPU OFF)
126126
# message(STATUS "CUPLDP with Nvidia is only supported on Linux at the moment. Using CPU version.")
@@ -132,22 +132,21 @@ if (CUPDLP_GPU)
132132
endif()
133133

134134
set (CUPDLP_CPU OFF)
135+
message(NOTICE "Set build cuPDLP with CUDA")
135136

136-
enable_language(CUDA)
137-
138-
# With FindCUDAConf.cmake
139-
# default cuda_home on linux
140-
# set(CUDA_HOME "/usr/local/cuda" CACHE STRING "Cuda path to install")
141-
# message(NOTICE "Set build cuPDLP with CUDA")
142-
# list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
143-
# include(FindCUDAConf.cmake)
144-
145-
# With deleted FindCUDAConf.cmake
146-
find_package(CUDAToolkit REQUIRED)
147-
set(CUDA_LIBRARY-NOTFOUND, OFF)
148-
set(CUDA_LIBRARY CUDA::cudart CUDA::cublas CUDA::cusparse)
137+
if (CUPDLP_FIND_CUDA)
138+
# With FindCUDAConf.cmake
139+
# Need to have the CUDA_HOME environment variable set.
140+
include(FindCUDAConf.cmake)
141+
else()
142+
# Without FindCUDAConf.cmake
143+
enable_language(CUDA)
144+
find_package(CUDAToolkit REQUIRED)
145+
146+
set(CUDA_LIBRARY-NOTFOUND, OFF)
147+
set(CUDA_LIBRARY CUDA::cudart CUDA::cublas CUDA::cusparse)
148+
endif()
149149

150-
message(NOTICE "Set build cuPDLP with CUDA")
151150
else()
152151
set (CUPDLP_CPU ON)
153152
set(CUDA_LIBRARY-NOTFOUND true)

cmake/FindCUDAConf.cmake

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
set(CUDA_LIBRARY-NOTFOUND, OFF)
2+
message(NOTICE "Finding CUDA environment")
3+
message(NOTICE " - CUDA Home detected at $ENV{CUDA_HOME}")
4+
set(CMAKE_CUDA_ARCHITECTURES "all")
5+
set(CMAKE_CUDA_PATH "$ENV{CUDA_HOME}")
6+
set(CMAKE_CUDA_COMPILER "${CMAKE_CUDA_PATH}/bin/nvcc")
7+
8+
enable_language(CUDA)
9+
10+
find_library(CUDA_LIBRARY_ART
11+
NAMES cudart
12+
HINTS "${CMAKE_CUDA_PATH}/lib64/"
13+
REQUIRED
14+
)
15+
find_library(CUDA_LIBRARY_SPS
16+
NAMES cusparse
17+
HINTS "${CMAKE_CUDA_PATH}/lib64/"
18+
REQUIRED
19+
)
20+
find_library(CUDA_LIBRARY_BLS
21+
NAMES cublas
22+
HINTS "${CMAKE_CUDA_PATH}/lib64/"
23+
REQUIRED
24+
)
25+
if (${CUDA_LIBRARY-NOTFOUND})
26+
message(WARNING " - CUDA Libraries not detected at $ENV{CUDA_HOME}")
27+
else ()
28+
message(NOTICE " - CUDA Libraries detected at $ENV{CUDA_HOME}")
29+
set(CUDA_LIBRARY ${CUDA_LIBRARY_ART} ${CUDA_LIBRARY_SPS} ${CUDA_LIBRARY_BLS})
30+
message(NOTICE " - :${CUDA_LIBRARY}")
31+
endif ()

0 commit comments

Comments
 (0)