Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 6 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ option(COSMA_WITH_BENCHMARKS "Generate the benchmark targets." ${MASTER_PROJECT}
option(COSMA_WITH_INSTALL "Enable installation." ${MASTER_PROJECT})
option(COSMA_WITH_PROFILING "Enable profiling." OFF)

set(COSMA_BLAS "MKL" CACHE STRING
set(COSMA_BLAS "MKL" CACHE STRING
"Blas backend. Can be MKL, OPENBLAS, CRAY_LIBSCI, CUSTOM, CUDA or ROCM.")
set_property(CACHE COSMA_BLAS PROPERTY STRINGS
set_property(CACHE COSMA_BLAS PROPERTY STRINGS
"MKL" "OPENBLAS" "CRAY_LIBSCI" "CUSTOM" "CUDA" "ROCM")

set(COSMA_SCALAPACK "OFF" CACHE STRING
Expand Down Expand Up @@ -81,17 +81,13 @@ if (${COSMA_BLAS} STREQUAL "MKL")
set(BLAS_TARGET "mkl::blas_32bit_omp")
set(BLAS_DEF "COSMA_WITH_MKL_BLAS")
elseif (${COSMA_BLAS} STREQUAL "CUDA" OR ${COSMA_BLAS} STREQUAL "ROCM")
option(TILEDMM_WITH_INSTALL "" ${COSMA_WITH_INSTALL})
option(TILEDMM_WITH_INSTALL "" ${COSMA_WITH_INSTALL})
set(TILEMM_GPU_BACKEND ${COSMA_BLAS} CACHE STRING FORCE "")
add_subdirectory(libs/Tiled-MM)
set(BLAS_TARGET "Tiled-MM")
set(BLAS_DEF "COSMA_HAVE_GPU")
elseif (${COSMA_BLAS} STREQUAL "OPENBLAS")
find_package(OpenBLAS REQUIRED)
add_library(openblas STATIC IMPORTED)
set_target_properties(openblas PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${OpenBLAS_INCLUDE_DIRS}"
IMPORTED_LOCATION "${OpenBLAS_LIBRARIES}")
set(BLAS_TARGET "openblas")
set(BLAS_DEF "COSMA_WITH_BLAS")
elseif (${COSMA_BLAS} STREQUAL "CRAY_LIBSCI")
Expand All @@ -104,7 +100,7 @@ elseif (${COSMA_BLAS} STREQUAL "CUSTOM")
set(BLAS_DEF "COSMA_WITH_BLAS")
endif ()

# (optional) ScaLAPACK providers
# (optional) ScaLAPACK providers
#
set(ScaLAPACK_TARGET "")
if (${COSMA_SCALAPACK} STREQUAL "MKL")
Expand All @@ -128,9 +124,9 @@ if(COSMA_WITH_INSTALL)
include(CMakePackageConfigHelpers)
include(GNUInstallDirs)

install(DIRECTORY "${cosma_SOURCE_DIR}/src/cosma"
install(DIRECTORY "${cosma_SOURCE_DIR}/src/cosma"
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
FILES_MATCHING
FILES_MATCHING
PATTERN "*.hpp")

write_basic_package_version_file(
Expand Down
29 changes: 29 additions & 0 deletions cmake/FindOpenBLAS.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# find OpenBLAS
# workaround for missing openblas cmake config file in fedora

include(FindPackageHandleStandardArgs)

find_path(OPENBLAS_INCLUDE_DIR
NAMES lapack.h
PATH_SUFFIXES include
HINTS
ENV OPENBLAS_DIR
ENV OPENBLASROOT
DOC "openblas include directory")

find_library(OPENBLAS_LIBRARIES
NAMES openblas
PATH_SUFFIXES lib lib64
HINTS
ENV OPENBLAS_DIR
ENV OPENBLASROOT
DOC "openblas libraries list")

find_package_handle_standard_args(OpenBLAS DEFAULT_MSG OPENBLAS_LIBRARIES OPENBLAS_INCLUDE_DIR)

if(OpenBLAS_FOUND AND NOT TARGET openblas)
add_library(openblas INTERFACE IMPORTED)
set_target_properties(openblas PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${OPENBLAS_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES "${OPENBLAS_LIBRARIES}")
endif()