From ae8d241241f8bff590f11a0ab58165bf9737dbfc Mon Sep 17 00:00:00 2001 From: Pieter Ghysels Date: Fri, 23 Jun 2023 09:49:01 -0700 Subject: [PATCH] Upgrade CMake for HIP --- CMakeLists.txt | 62 +++++++++---------- src/dense/CMakeLists.txt | 1 + .../{HIPWrapper.hip.cpp => HIPWrapper.hip} | 0 src/sparse/fronts/CMakeLists.txt | 1 + ...MatrixHIP.hip.cpp => FrontalMatrixHIP.hip} | 0 5 files changed, 31 insertions(+), 33 deletions(-) rename src/dense/{HIPWrapper.hip.cpp => HIPWrapper.hip} (100%) rename src/sparse/fronts/{FrontalMatrixHIP.hip.cpp => FrontalMatrixHIP.hip} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index be51635c..1834acca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.17) +cmake_minimum_required(VERSION 3.21) project(STRUMPACK VERSION 7.1.3 LANGUAGES CXX C Fortran) cmake_policy(SET CMP0074 NEW) @@ -112,20 +112,14 @@ if(STRUMPACK_USE_HIP) " proceeding with CUDA support instead of HIP.") set(STRUMPACK_USE_HIP OFF) else() - find_package(HIP MODULE) - if(HIP_FOUND) - set(STRUMPACK_HIP_PLATFORM_HCC ON) - find_package(hipblas REQUIRED) - find_package(hipsparse REQUIRED) - find_package(rocsolver REQUIRED) - find_package(rocblas REQUIRED) - find_package(rocprim REQUIRED) - find_package(rocthrust REQUIRED) - else() - message(WARNING "HIP compiler not found," - " proceeding without HIP support.") - set(STRUMPACK_USE_HIP OFF) - endif() + enable_language(HIP) + find_package(hip REQUIRED) + find_package(hipblas REQUIRED) + find_package(hipsparse REQUIRED) + find_package(rocsolver REQUIRED) + find_package(rocblas REQUIRED) + find_package(rocprim REQUIRED) + find_package(rocthrust REQUIRED) endif() endif() @@ -520,24 +514,26 @@ if(TPL_ENABLE_COMBBLAS) endif() endif() -if(STRUMPACK_USE_HIP) - set_source_files_properties( - src/sparse/fronts/FrontalMatrixHIP.hip.cpp - src/dense/HIPWrapper.hip.cpp - PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1) - if(BUILD_SHARED_LIBS) - set(STATIC_OR_SHARED SHARED) - else() - set(STATIC_OR_SHARED STATIC) - endif() - hip_add_library( - strumpack - src/sparse/fronts/FrontalMatrixHIP.hip.cpp - src/dense/HIPWrapper.hip.cpp - ${STATIC_OR_SHARED}) -else() - add_library(strumpack "") -endif() +# if(STRUMPACK_USE_HIP) +# set_source_files_properties( +# src/sparse/fronts/FrontalMatrixHIP.hip.cpp +# src/dense/HIPWrapper.hip.cpp +# PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1) +# if(BUILD_SHARED_LIBS) +# set(STATIC_OR_SHARED SHARED) +# else() +# set(STATIC_OR_SHARED STATIC) +# endif() +# hip_add_library( +# strumpack +# src/sparse/fronts/FrontalMatrixHIP.hip.cpp +# src/dense/HIPWrapper.hip.cpp +# ${STATIC_OR_SHARED}) +# else() +# add_library(strumpack "") +# endif() + +add_library(strumpack "") # this is to fix a link issue for the fortran example when compiling # with clang diff --git a/src/dense/CMakeLists.txt b/src/dense/CMakeLists.txt index a1e7a733..272f713e 100644 --- a/src/dense/CMakeLists.txt +++ b/src/dense/CMakeLists.txt @@ -1,5 +1,6 @@ target_sources(strumpack PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/HIPWrapper.hip ${CMAKE_CURRENT_LIST_DIR}/BLASLAPACKWrapper.cpp ${CMAKE_CURRENT_LIST_DIR}/BLASLAPACKOpenMPTask.cpp ${CMAKE_CURRENT_LIST_DIR}/ACA.hpp diff --git a/src/dense/HIPWrapper.hip.cpp b/src/dense/HIPWrapper.hip similarity index 100% rename from src/dense/HIPWrapper.hip.cpp rename to src/dense/HIPWrapper.hip diff --git a/src/sparse/fronts/CMakeLists.txt b/src/sparse/fronts/CMakeLists.txt index 53120b56..a8e04fb8 100644 --- a/src/sparse/fronts/CMakeLists.txt +++ b/src/sparse/fronts/CMakeLists.txt @@ -1,5 +1,6 @@ target_sources(strumpack PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/FrontalMatrixHIP.hip ${CMAKE_CURRENT_LIST_DIR}/FrontFactory.cpp ${CMAKE_CURRENT_LIST_DIR}/FrontalMatrix.cpp ${CMAKE_CURRENT_LIST_DIR}/FrontalMatrixDense.cpp diff --git a/src/sparse/fronts/FrontalMatrixHIP.hip.cpp b/src/sparse/fronts/FrontalMatrixHIP.hip similarity index 100% rename from src/sparse/fronts/FrontalMatrixHIP.hip.cpp rename to src/sparse/fronts/FrontalMatrixHIP.hip