Skip to content

Commit

Permalink
Merge pull request #982 from e10harvey/issue713
Browse files Browse the repository at this point in the history
cmake: Add MAGMA TPL support
  • Loading branch information
e10harvey authored May 21, 2021
2 parents 9b5695e + 152e20c commit 9c5bbf9
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 3 deletions.
33 changes: 33 additions & 0 deletions cmake/Modules/FindTPLMAGMA.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
IF (MAGMA_LIBRARY_DIRS AND MAGMA_LIBRARIES)
KOKKOSKERNELS_FIND_IMPORTED(MAGMA INTERFACE LIBRARIES ${MAGMA_LIBRARIES} LIBRARY_PATHS ${MAGMA_LIBRARY_DIRS})
ELSEIF (MAGMA_LIBRARIES)
KOKKOSKERNELS_FIND_IMPORTED(MAGMA INTERFACE LIBRARIES ${MAGMA_LIBRARIES})
ELSEIF (MAGMA_LIBRARY_DIRS)
KOKKOSKERNELS_FIND_IMPORTED(MAGMA INTERFACE LIBRARIES amath ${MAGMA_LIB} LIBRARY_PATHS ${MAGMA_LIBRARY_DIRS})
ELSEIF (KokkosKernels_MAGMA_ROOT)
SET(MAGMA_ROOT ${KokkosKernels_MAGMA_ROOT})
KOKKOSKERNELS_FIND_IMPORTED(MAGMA INTERFACE
LIBRARIES
magma
magma_sparse
LIBRARY_PATHS
${MAGMA_ROOT}/lib
HEADERS
magmablas.h
HEADER_PATHS
${MAGMA_ROOT}/include
)
ELSE()
FIND_PACKAGE(MAGMA REQUIRED)
KOKKOSKERNELS_CREATE_IMPORTED_TPL(MAGMA INTERFACE LINK_LIBRARIES ${MAGMA_LIBRARIES})
ENDIF()

TRY_COMPILE(KOKKOSKERNELS_TRY_COMPILE_MAGMA
${KOKKOSKERNELS_TOP_BUILD_DIR}/tpl_tests
${KOKKOSKERNELS_TOP_SOURCE_DIR}/cmake/compile_tests/magma.cpp
CMAKE_FLAGS -DINCLUDE_DIRECTORIES=${MAGMA_ROOT}/include
LINK_LIBRARIES -L${MAGMA_ROOT}/lib -lmagma -lmagma_sparse
OUTPUT_VARIABLE KOKKOSKERNELS_TRY_COMPILE_MAGMA_OUT)
IF(NOT KOKKOSKERNELS_TRY_COMPILE_MAGMA)
MESSAGE(FATAL_ERROR "KOKKOSKERNELS_TRY_COMPILE_MAGMA_OUT=${KOKKOSKERNELS_TRY_COMPILE_MAGMA_OUT}")
ENDIF()
8 changes: 8 additions & 0 deletions cmake/compile_tests/magma.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#include <magma_v2.h>
#include <magmablas.h>
#include <magmasparse.h>
#include <magma_batched.h>

int main(void) {
return 0;
}
4 changes: 1 addition & 3 deletions cmake/kokkoskernels_tpls.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -460,8 +460,6 @@ IF (KOKKOSKERNELS_ENABLE_TPL_MAGMA)
ELSE ()
MESSAGE(FATAL_ERROR "F77_BLAS_MANGLE ${F77_BLAS_MANGLE} detected while MAGMA only accepts Fortran mangling that is one of single underscore (-DADD_), uppercase (-DUPCASE), and no change (-DNOCHANGE)")
ENDIF()
ELSE()
MESSAGE(FATAL_ERROR "KokkosKernels does not currently support MAGMA in standalone mode")
ENDIF()
LIST(APPEND TPL_LIST "MAGMA")
ENDIF()
Expand All @@ -483,11 +481,11 @@ IF (NOT KOKKOSKERNELS_HAS_TRILINOS)
KOKKOSKERNELS_IMPORT_TPL(SUPERLU)
KOKKOSKERNELS_IMPORT_TPL(METIS)
KOKKOSKERNELS_IMPORT_TPL(ARMPL)
KOKKOSKERNELS_IMPORT_TPL(MAGMA)
ENDIF()

#Convert list to newlines (which CMake doesn't always like in cache variables)
STRING(REPLACE ";" "\n" KOKKOSKERNELS_TPL_EXPORT_TEMP "${KOKKOSKERNELS_TPL_EXPORTS}")
#Convert to a regular variable
UNSET(KOKKOSKERNELS_TPL_EXPORTS CACHE)
SET(KOKKOSKERNELS_TPL_EXPORTS ${KOKKOSKERNELS_TPL_EXPORT_TEMP})

1 change: 1 addition & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -438,4 +438,5 @@ KOKKOSKERNELS_LINK_TPL(kokkoskernels PUBLIC CUBLAS)
KOKKOSKERNELS_LINK_TPL(kokkoskernels PUBLIC CUSPARSE)
KOKKOSKERNELS_LINK_TPL(kokkoskernels PUBLIC METIS)
KOKKOSKERNELS_LINK_TPL(kokkoskernels PUBLIC ARMPL)
KOKKOSKERNELS_LINK_TPL(kokkoskernels PUBLIC MAGMA)
# Not yet here KOKKOSKERNELS_LINK_TPL(kokkoskernels PUBLIC MAGMA)

0 comments on commit 9c5bbf9

Please sign in to comment.