summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorHarmen Stoppels <harmenstoppels@gmail.com>2020-08-20 21:55:02 +0200
committerGitHub <noreply@github.com>2020-08-20 14:55:02 -0500
commitebe5a5652cbc50aced28f19cdf8a5476fd111e55 (patch)
tree0055c17f706dad84fd45c1b8b1944feb4862dd94 /var
parentad9cd2528543b588e2a6c2585e10bc54b24c6302 (diff)
downloadspack-ebe5a5652cbc50aced28f19cdf8a5476fd111e55.tar.gz
spack-ebe5a5652cbc50aced28f19cdf8a5476fd111e55.tar.bz2
spack-ebe5a5652cbc50aced28f19cdf8a5476fd111e55.tar.xz
spack-ebe5a5652cbc50aced28f19cdf8a5476fd111e55.zip
Add rocSPARSE, rocSOLVER, hipSPARSE and hipBLAS (#18108)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/hipblas/package.py35
-rw-r--r--var/spack/repos/builtin/packages/hipsparse/530047af4a0f437dafc02f76b3a17e3b1536c7ec.patch93
-rw-r--r--var/spack/repos/builtin/packages/hipsparse/e79985dccde22d826aceb3badfc643a3227979d2.patch93
-rw-r--r--var/spack/repos/builtin/packages/hipsparse/package.py40
-rw-r--r--var/spack/repos/builtin/packages/rocprim/package.py6
-rw-r--r--var/spack/repos/builtin/packages/rocsolver/package.py35
-rw-r--r--var/spack/repos/builtin/packages/rocsparse/package.py8
7 files changed, 304 insertions, 6 deletions
diff --git a/var/spack/repos/builtin/packages/hipblas/package.py b/var/spack/repos/builtin/packages/hipblas/package.py
new file mode 100644
index 0000000000..ab45133edc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hipblas/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Hipblas(CMakePackage):
+ """hipBLAS is a BLAS marshalling library, with multiple
+ supported backends"""
+
+ homepage = "https://github.com/ROCmSoftwarePlatform/hipBLAS"
+ git = "https://github.com/ROCmSoftwarePlatform/hipBLAS.git"
+ url = "https://github.com/ROCmSoftwarePlatform/hipBLAS/archive/rocm-3.5.0.tar.gz"
+
+ maintainers = ['haampie']
+
+ depends_on('hip')
+ depends_on('rocsolver')
+ depends_on('rocblas')
+ depends_on('rocm-device-libs', type='build')
+ depends_on('comgr', type='build')
+
+ version('3.5.0', sha256='d451da80beb048767da71a090afceed2e111d01b3e95a7044deada5054d6e7b1')
+
+ def cmake_args(self):
+ args = [
+ '-DBUILD_CLIENTS_SAMPLES=OFF',
+ '-DBUILD_CLIENTS_TESTS=OFF'
+ ]
+ return args
+
+ def setup_build_environment(self, env):
+ env.set('CXX', self.spec['hip'].hipcc)
diff --git a/var/spack/repos/builtin/packages/hipsparse/530047af4a0f437dafc02f76b3a17e3b1536c7ec.patch b/var/spack/repos/builtin/packages/hipsparse/530047af4a0f437dafc02f76b3a17e3b1536c7ec.patch
new file mode 100644
index 0000000000..afd14bdbb0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hipsparse/530047af4a0f437dafc02f76b3a17e3b1536c7ec.patch
@@ -0,0 +1,93 @@
+From 530047af4a0f437dafc02f76b3a17e3b1536c7ec Mon Sep 17 00:00:00 2001
+From: Nico Trost <nico.trost@amd.com>
+Date: Sun, 21 Jun 2020 20:54:09 +0200
+Subject: [PATCH] fix for csr2csr_compress and nnz_compress
+
+---
+ library/src/nvcc_detail/hipsparse.cpp | 24 ++++--------------------
+ 1 file changed, 4 insertions(+), 20 deletions(-)
+
+diff --git a/library/src/nvcc_detail/hipsparse.cpp b/library/src/nvcc_detail/hipsparse.cpp
+index 0883351..d7cbb8c 100644
+--- a/library/src/nvcc_detail/hipsparse.cpp
++++ b/library/src/nvcc_detail/hipsparse.cpp
+@@ -5213,10 +5213,6 @@ hipsparseStatus_t hipsparseCnnz_compress(hipsparseHandle_t handle,
+ int* nnzC,
+ hipComplex tol)
+ {
+- cuComplex cutol;
+- cutol.x = tol.x;
+- cutol.y = tol.y;
+-
+ return hipCUSPARSEStatusToHIPStatus(cusparseCnnz_compress((cusparseHandle_t)handle,
+ m,
+ (const cusparseMatDescr_t)descrA,
+@@ -5224,7 +5220,7 @@ hipsparseStatus_t hipsparseCnnz_compress(hipsparseHandle_t handle,
+ csrRowPtrA,
+ nnzPerRow,
+ nnzC,
+- cutol));
++ {cuCrealf(tol), cuCimagf(tol)}));
+ }
+
+ hipsparseStatus_t hipsparseZnnz_compress(hipsparseHandle_t handle,
+@@ -5236,10 +5232,6 @@ hipsparseStatus_t hipsparseZnnz_compress(hipsparseHandle_t handle,
+ int* nnzC,
+ hipDoubleComplex tol)
+ {
+- cuDoubleComplex cutol;
+- cutol.x = tol.x;
+- cutol.y = tol.y;
+-
+ return hipCUSPARSEStatusToHIPStatus(cusparseZnnz_compress((cusparseHandle_t)handle,
+ m,
+ (const cusparseMatDescr_t)descrA,
+@@ -5247,7 +5239,7 @@ hipsparseStatus_t hipsparseZnnz_compress(hipsparseHandle_t handle,
+ csrRowPtrA,
+ nnzPerRow,
+ nnzC,
+- cutol));
++ {cuCreal(tol), cuCimag(tol)}));
+ }
+
+ hipsparseStatus_t hipsparseXcsr2coo(hipsparseHandle_t handle,
+@@ -5773,10 +5765,6 @@ hipsparseStatus_t hipsparseCcsr2csr_compress(hipsparseHandle_t handle,
+ int* csrRowPtrC,
+ hipComplex tol)
+ {
+- cuComplex cutol;
+- cutol.x = tol.x;
+- cutol.y = tol.y;
+-
+ return hipCUSPARSEStatusToHIPStatus(cusparseCcsr2csr_compress((cusparseHandle_t)handle,
+ m,
+ n,
+@@ -5789,7 +5777,7 @@ hipsparseStatus_t hipsparseCcsr2csr_compress(hipsparseHandle_t handle,
+ (cuComplex*)csrValC,
+ csrColIndC,
+ csrRowPtrC,
+- cutol));
++ {cuCrealf(tol), cuCimagf(tol)}));
+ }
+
+ hipsparseStatus_t hipsparseZcsr2csr_compress(hipsparseHandle_t handle,
+@@ -5806,10 +5794,6 @@ hipsparseStatus_t hipsparseZcsr2csr_compress(hipsparseHandle_t handle,
+ int* csrRowPtrC,
+ hipDoubleComplex tol)
+ {
+- cuDoubleComplex cutol;
+- cutol.x = tol.x;
+- cutol.y = tol.y;
+-
+ return hipCUSPARSEStatusToHIPStatus(cusparseZcsr2csr_compress((cusparseHandle_t)handle,
+ m,
+ n,
+@@ -5822,7 +5806,7 @@ hipsparseStatus_t hipsparseZcsr2csr_compress(hipsparseHandle_t handle,
+ (cuDoubleComplex*)csrValC,
+ csrColIndC,
+ csrRowPtrC,
+- cutol));
++ {cuCreal(tol), cuCimag(tol)}));
+ }
+
+ hipsparseStatus_t hipsparseShyb2csr(hipsparseHandle_t handle,
diff --git a/var/spack/repos/builtin/packages/hipsparse/e79985dccde22d826aceb3badfc643a3227979d2.patch b/var/spack/repos/builtin/packages/hipsparse/e79985dccde22d826aceb3badfc643a3227979d2.patch
new file mode 100644
index 0000000000..03ef1d222c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hipsparse/e79985dccde22d826aceb3badfc643a3227979d2.patch
@@ -0,0 +1,93 @@
+From e79985dccde22d826aceb3badfc643a3227979d2 Mon Sep 17 00:00:00 2001
+From: Nico Trost <nico.trost@amd.com>
+Date: Sun, 21 Jun 2020 20:48:22 +0200
+Subject: [PATCH] fix for csr2csr_compress and nnz_compress
+
+---
+ library/src/hcc_detail/hipsparse.cpp | 24 ++++--------------------
+ 1 file changed, 4 insertions(+), 20 deletions(-)
+
+diff --git a/library/src/hcc_detail/hipsparse.cpp b/library/src/hcc_detail/hipsparse.cpp
+index 7786d6e..5cf0ad6 100644
+--- a/library/src/hcc_detail/hipsparse.cpp
++++ b/library/src/hcc_detail/hipsparse.cpp
+@@ -6284,10 +6284,6 @@ hipsparseStatus_t hipsparseCcsr2csr_compress(hipsparseHandle_t handle,
+ int* csrRowPtrC,
+ hipComplex tol)
+ {
+- rocsparse_float_complex rtol;
+- rtol.x = tol.x;
+- rtol.y = tol.y;
+-
+ return rocSPARSEStatusToHIPStatus(
+ rocsparse_ccsr2csr_compress((rocsparse_handle)handle,
+ m,
+@@ -6301,7 +6297,7 @@ hipsparseStatus_t hipsparseCcsr2csr_compress(hipsparseHandle_t handle,
+ (rocsparse_float_complex*)csrValC,
+ csrRowPtrC,
+ csrColIndC,
+- rtol));
++ {hipCrealf(tol), hipCimagf(tol)}));
+ }
+
+ hipsparseStatus_t hipsparseZcsr2csr_compress(hipsparseHandle_t handle,
+@@ -6318,10 +6314,6 @@ hipsparseStatus_t hipsparseZcsr2csr_compress(hipsparseHandle_t handle,
+ int* csrRowPtrC,
+ hipDoubleComplex tol)
+ {
+- rocsparse_double_complex rtol;
+- rtol.x = tol.x;
+- rtol.y = tol.y;
+-
+ return rocSPARSEStatusToHIPStatus(
+ rocsparse_zcsr2csr_compress((rocsparse_handle)handle,
+ m,
+@@ -6335,7 +6327,7 @@ hipsparseStatus_t hipsparseZcsr2csr_compress(hipsparseHandle_t handle,
+ (rocsparse_double_complex*)csrValC,
+ csrRowPtrC,
+ csrColIndC,
+- rtol));
++ {hipCreal(tol), hipCimag(tol)}));
+ }
+
+ hipsparseStatus_t hipsparseShyb2csr(hipsparseHandle_t handle,
+@@ -7006,10 +6998,6 @@ hipsparseStatus_t hipsparseCnnz_compress(hipsparseHandle_t handle,
+ int* nnzC,
+ hipComplex tol)
+ {
+- rocsparse_float_complex rtol;
+- rtol.x = tol.x;
+- rtol.y = tol.y;
+-
+ RETURN_IF_ROCSPARSE_ERROR(rocsparse_cnnz_compress((rocsparse_handle)handle,
+ m,
+ (const rocsparse_mat_descr)descrA,
+@@ -7017,7 +7005,7 @@ hipsparseStatus_t hipsparseCnnz_compress(hipsparseHandle_t handle,
+ csrRowPtrA,
+ nnzPerRow,
+ nnzC,
+- rtol));
++ {hipCrealf(tol), hipCimagf(tol)}));
+ return HIPSPARSE_STATUS_SUCCESS;
+ }
+
+@@ -7030,10 +7018,6 @@ hipsparseStatus_t hipsparseZnnz_compress(hipsparseHandle_t handle,
+ int* nnzC,
+ hipDoubleComplex tol)
+ {
+- rocsparse_double_complex rtol;
+- rtol.x = tol.x;
+- rtol.y = tol.y;
+-
+ RETURN_IF_ROCSPARSE_ERROR(rocsparse_znnz_compress((rocsparse_handle)handle,
+ m,
+ (const rocsparse_mat_descr)descrA,
+@@ -7041,7 +7025,7 @@ hipsparseStatus_t hipsparseZnnz_compress(hipsparseHandle_t handle,
+ csrRowPtrA,
+ nnzPerRow,
+ nnzC,
+- rtol));
++ {hipCreal(tol), hipCimag(tol)}));
+ return HIPSPARSE_STATUS_SUCCESS;
+ }
+
diff --git a/var/spack/repos/builtin/packages/hipsparse/package.py b/var/spack/repos/builtin/packages/hipsparse/package.py
new file mode 100644
index 0000000000..1123291e79
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hipsparse/package.py
@@ -0,0 +1,40 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Hipsparse(CMakePackage):
+ """hipSPARSE is a SPARSE marshalling library, with
+ multiple supported backends"""
+
+ homepage = "https://github.com/ROCmSoftwarePlatform/hipSPARSE"
+ git = "https://github.com/ROCmSoftwarePlatform/hipSPARSE.git"
+ url = "https://github.com/ROCmSoftwarePlatform/hipSPARSE/archive/rocm-3.5.0.tar.gz"
+
+ maintainers = ['haampie']
+
+ version('3.5.0', sha256='fa16b2a307a5d9716066c2876febcbc1cef855bf0c96d235d2d8f2206a0fb69d')
+
+ depends_on('hip')
+ depends_on('rocsparse')
+ depends_on('rocm-device-libs', type='build')
+ depends_on('hsa-rocr-dev')
+ depends_on('comgr', type='build')
+ depends_on('git', type='build')
+
+ patch('e79985dccde22d826aceb3badfc643a3227979d2.patch')
+ patch('530047af4a0f437dafc02f76b3a17e3b1536c7ec.patch')
+
+ def cmake_args(self):
+ args = [
+ '-DCMAKE_CXX_STANDARD=14',
+ '-DBUILD_CLIENTS_SAMPLES=OFF',
+ '-DBUILD_CLIENTS_TESTS=OFF',
+ ]
+ return args
+
+ def setup_build_environment(self, env):
+ env.set('CXX', self.spec['hip'].hipcc)
diff --git a/var/spack/repos/builtin/packages/rocprim/package.py b/var/spack/repos/builtin/packages/rocprim/package.py
index 213e23b748..f6097c6f5d 100644
--- a/var/spack/repos/builtin/packages/rocprim/package.py
+++ b/var/spack/repos/builtin/packages/rocprim/package.py
@@ -32,7 +32,11 @@ class Rocprim(CMakePackage):
spec = self.spec
args = [
- '-DCMAKE_MODULE_PATH={0}/cmake'.format(spec['hip'].prefix)
+ '-DCMAKE_MODULE_PATH={0}/cmake'.format(spec['hip'].prefix),
+ '-DONLY_INSTALL=ON',
+ '-DBUILD_TEST=OFF',
+ '-DBUILD_BENCHMARK=OFF',
+ '-DBUILD_EXAMPLE=OFF'
]
return args
diff --git a/var/spack/repos/builtin/packages/rocsolver/package.py b/var/spack/repos/builtin/packages/rocsolver/package.py
new file mode 100644
index 0000000000..65fc146936
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rocsolver/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Rocsolver(CMakePackage):
+ """rocSOLVER is a work-in-progress implementation of a
+ subset of LAPACK functionality on the ROCm platform."""
+
+ homepage = "https://github.com/ROCmSoftwarePlatform/rocSOLVER"
+ git = "https://github.com/ROCmSoftwarePlatform/rocSOLVER.git"
+ url = "https://github.com/ROCmSoftwarePlatform/rocSOLVER/archive/rocm-3.5.0.tar.gz"
+
+ maintainers = ['haampie']
+
+ depends_on('hip')
+ depends_on('rocblas')
+ depends_on('rocm-device-libs', type='build')
+ depends_on('comgr', type='build')
+
+ version('3.5.0', sha256='d655e8c762fb9e123b9fd7200b4258512ceef69973de4d0588c815bc666cb358')
+
+ def cmake_args(self):
+ args = [
+ '-DBUILD_CLIENTS_SAMPLES=OFF',
+ '-DBUILD_CLIENTS_TESTS=OFF',
+ '-DBUILD_CLIENTS_BENCHMARKS=OFF'
+ ]
+ return args
+
+ def setup_build_environment(self, env):
+ env.set('CXX', self.spec['hip'].hipcc)
diff --git a/var/spack/repos/builtin/packages/rocsparse/package.py b/var/spack/repos/builtin/packages/rocsparse/package.py
index b5516f841b..3d9347bc95 100644
--- a/var/spack/repos/builtin/packages/rocsparse/package.py
+++ b/var/spack/repos/builtin/packages/rocsparse/package.py
@@ -21,15 +21,13 @@ class Rocsparse(CMakePackage):
version('3.5.0', sha256='9ca6bae7da78abbb47143c3d77ff4a8cd7d63979875fc7ebc46b400769fd9cb5')
depends_on('cmake@3:', type='build')
- depends_on('boost', type='build')
for ver in ['3.5.0']:
- depends_on('hip@' + ver, type='build', when='@' + ver)
+ depends_on('hip@' + ver, when='@' + ver)
depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
depends_on('comgr@' + ver, type='build', when='@' + ver)
depends_on('rocprim@' + ver, type='build', when='@' + ver)
- depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver)
- depends_on('rocminfo@' + ver, type='build', when='@' + ver)
- depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
+ depends_on('hsakmt-roct@' + ver, type='link', when='@' + ver)
+ depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver)
def setup_build_environment(self, env):
env.set('CXX', self.spec['hip'].hipcc)