making suite-sparse library path generic in hipsolver (#44473)

* suite-sparse library path can be lib or lib64
* fixing style check error
* Adding the missing import os
* Style check error fix
* Updating patch for 6.1.0 with correct lib path
This commit is contained in:
renjithravindrankannath 2024-06-11 14:41:42 -07:00 committed by GitHub
parent 990e77c55f
commit b156a62a44
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 25 deletions

View File

@ -1,7 +1,7 @@
From 4bea73ab74deb313030a1abb135fd668f7f5b96a Mon Sep 17 00:00:00 2001
From: sreenivasa murthy kolam <sreenivasamurthy.kolam@amd.com>
Date: Tue, 21 May 2024 06:52:30 +0000
Subject: [PATCH] add SUITE_SPARSE_PATH to the CMakeLists.txt
From 329ee96fa7004c6fb0a8f93375e9081ef717fbab Mon Sep 17 00:00:00 2001
From: Renjith Ravindran <Renjith.RavindranKannath@amd.com>
Date: Fri, 31 May 2024 19:51:49 +0000
Subject: [PATCH] suite-sparse include and library path 6.1.1
---
CMakeLists.txt | 1 +
@ -21,7 +21,7 @@ index 52a059a..fddda0b 100644
set ( VERSION_STRING "2.1.1" )
rocm_setup_version( VERSION ${VERSION_STRING} )
diff --git a/library/src/CMakeLists.txt b/library/src/CMakeLists.txt
index ec708df..224e5a5 100644
index ec708df..7b0e414 100644
--- a/library/src/CMakeLists.txt
+++ b/library/src/CMakeLists.txt
@@ -135,7 +135,7 @@ if( NOT USE_CUDA )
@ -29,10 +29,10 @@ index ec708df..224e5a5 100644
endif( )
- target_link_libraries( hipsolver PRIVATE roc::rocsparse suitesparseconfig cholmod )
+ target_link_libraries( hipsolver PRIVATE roc::rocsparse ${SUITE_SPARSE_PATH}/lib64/libsuitesparseconfig.so ${SUITE_SPARSE_PATH}/lib64/libcholmod.so )
+ target_link_libraries( hipsolver PRIVATE roc::rocsparse ${SUITE_SPARSE_LIBDIR}/libsuitesparseconfig.so ${SUITE_SPARSE_LIBDIR}/libcholmod.so )
set_source_files_properties(${hipsolver_source}
PROPERTIES
COMPILE_DEFINITIONS HAVE_ROCSPARSE
--
2.39.3
2.17.1

View File

@ -1,7 +1,7 @@
From 9adfbf77cff336a0fa01b15e74e4c812302698e8 Mon Sep 17 00:00:00 2001
From 90c1913a29f6ee097aea18a66deb0a4fb0bc0066 Mon Sep 17 00:00:00 2001
From: Renjith Ravindran <Renjith.RavindranKannath@amd.com>
Date: Mon, 6 May 2024 18:39:02 +0000
Subject: [PATCH] suite-sparse include and library path
Date: Sat, 8 Jun 2024 00:46:22 +0000
Subject: [PATCH] add SUITE_SPARSE_PATH to the CMakeLists.txt
---
CMakeLists.txt | 1 +
@ -9,19 +9,19 @@ Subject: [PATCH] suite-sparse include and library path
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 95a2393..5dd88bb 100644
index 95a2393..b403f57 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -88,6 +88,7 @@ include( ROCMPackageConfigHelpers )
include( ROCMInstallSymlinks )
include( ROCMClients )
include( ROCMHeaderWrapper )
+include_directories(${SUITE_SPARSE_PATH}/include)
+include_directories(${SUITE_SPARSE_PATH}/include/suitesparse)
set ( VERSION_STRING "2.1.0" )
rocm_setup_version( VERSION ${VERSION_STRING} )
diff --git a/library/src/CMakeLists.txt b/library/src/CMakeLists.txt
index ab448f4..a0f877d 100644
index ab448f4..f3d759e 100644
--- a/library/src/CMakeLists.txt
+++ b/library/src/CMakeLists.txt
@@ -135,7 +135,7 @@ if( NOT USE_CUDA )
@ -29,10 +29,10 @@ index ab448f4..a0f877d 100644
endif( )
- target_link_libraries( hipsolver PRIVATE roc::rocsparse suitesparseconfig cholmod )
+ target_link_libraries( hipsolver PRIVATE roc::rocsparse ${SUITE_SPARSE_PATH}/lib64/libsuitesparseconfig.so ${SUITE_SPARSE_PATH}/lib64/libcholmod.so )
+ target_link_libraries( hipsolver PRIVATE roc::rocsparse ${SUITE_SPARSE_LIBDIR}/libsuitesparseconfig.so ${SUITE_SPARSE_LIBDIR}/libcholmod.so )
target_include_directories( hipsolver
SYSTEM PRIVATE
$<BUILD_INTERFACE:/usr/include/suitesparse/>
--
2.31.1
2.27.0

View File

@ -3,6 +3,7 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
import re
from spack.package import *
@ -107,15 +108,6 @@ class Hipsolver(CMakePackage, CudaPackage, ROCmPackage):
patch("001-suite-sparse-include-path.patch", when="@6.1.0")
patch("0001-suite-sparse-include-path-6.1.1.patch", when="@6.1.1:")
def patch(self):
if self.spec.satisfies("@6.1.1 +rocm"):
with working_dir("library/src/amd_detail"):
filter_file(
"^#include <suitesparse/cholmod.h>",
"#include <cholmod.h>",
"hipsolver_sparse.cpp",
)
def check(self):
exe = join_path(self.build_directory, "clients", "staging", "hipsolver-test")
self.run_test(exe, options=["--gtest_filter=-*known_bug*"])
@ -156,5 +148,8 @@ def cmake_args(self):
args.append(self.define("BUILD_FILE_REORG_BACKWARD_COMPATIBILITY", True))
if self.spec.satisfies("@5.3.0:"):
args.append(self.define("CMAKE_INSTALL_LIBDIR", "lib"))
libloc = self.spec["suite-sparse"].prefix.lib64
if not os.path.isdir(libloc):
libloc = self.spec["suite-sparse"].prefix.lib
args.append(self.define("SUITE_SPARSE_LIBDIR", libloc))
return args