Skip to content

Commit

Permalink
move the additional library after cudart
Browse files Browse the repository at this point in the history
  • Loading branch information
yhmtsai committed Sep 24, 2019
1 parent 22bcfc0 commit 469cc37
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions cuda/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS}" PARENT_SCOPE)
set(CMAKE_CUDA_COMPILER_VERSION ${CMAKE_CUDA_COMPILER_VERSION} PARENT_SCOPE)
set(CUDA_INCLUDE_DIRS ${CUDA_INCLUDE_DIRS} PARENT_SCOPE)

add_library(ginkgo_cuda $<TARGET_OBJECTS:ginkgo_cuda_device> "")

# nvcc uses static cudartlibrary by default
# add `-cudart shared` or `-cudart=shared` according system into CMAKE_CUDA_FLAGS/GINKGO_CUDA_COMPILER_FLAGS
Expand All @@ -42,20 +41,23 @@ find_library(CUDA_RUNTIME_LIBS_DYNAMIC cudart
HINT ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
find_library(CUDA_RUNTIME_LIBS_STATIC cudart_static
HINT ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
add_library(cudart INTERFACE IMPORTED)
if("${CMAKE_CUDA_FLAGS}" MATCHES "-cudart(=| )shared" OR "${GINKGO_CUDA_COMPILER_FLAGS}" MATCHES "-cudart(=| )shared")
set(CUDA_RUNTIME_LIBS "${CUDA_RUNTIME_LIBS_DYNAMIC}" CACHE STRING "Path to a library" FORCE)
target_link_libraries(cudart INTERFACE ${CUDA_RUNTIME_LIBS})
else()
set(CUDA_RUNTIME_LIBS "${CUDA_RUNTIME_LIBS_STATIC}" CACHE STRING "Path to a library" FORCE)
if(NOT MSVC)
# link cudart_static need rt, pthread, and dl
target_link_libraries(ginkgo_cuda INTERFACE rt pthread -Wl,--no-as-needed dl)
target_link_libraries(cudart INTERFACE ${CUDA_RUNTIME_LIBS} rt pthread -Wl,--no-as-needed dl)
endif()
endif()
find_library(CUBLAS cublas
HINT ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
find_library(CUSPARSE cusparse
HINT ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})

add_library(ginkgo_cuda $<TARGET_OBJECTS:ginkgo_cuda_device> "")
target_sources(ginkgo_cuda
PRIVATE
base/exception.cpp
Expand Down Expand Up @@ -103,7 +105,7 @@ target_compile_options(ginkgo_cuda PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${GINKGO_CO
ginkgo_compile_features(ginkgo_cuda)
target_include_directories(ginkgo_cuda
SYSTEM PRIVATE ${CUDA_INCLUDE_DIRS})
target_link_libraries(ginkgo_cuda PRIVATE ${CUDA_RUNTIME_LIBS} ${CUBLAS} ${CUSPARSE})
target_link_libraries(ginkgo_cuda PRIVATE cudart ${CUBLAS} ${CUSPARSE})

cas_target_cuda_architectures(ginkgo_cuda
ARCHITECTURES ${GINKGO_CUDA_ARCHITECTURES}
Expand Down

0 comments on commit 469cc37

Please sign in to comment.