summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorSreenivasa Murthy Kolam <67086238+srekolam@users.noreply.github.com>2023-01-10 08:20:00 +0530
committerGitHub <noreply@github.com>2023-01-09 18:50:00 -0800
commit0d96b0b31178c4fe1b5bf1045e5f89415008a221 (patch)
tree6ecb106fe5003285955ef7fd3ce9a91f4675d17d /var
parentf96f8a99e8504ae584a1cfa41f486c99c7297f40 (diff)
downloadspack-0d96b0b31178c4fe1b5bf1045e5f89415008a221.tar.gz
spack-0d96b0b31178c4fe1b5bf1045e5f89415008a221.tar.bz2
spack-0d96b0b31178c4fe1b5bf1045e5f89415008a221.tar.xz
spack-0d96b0b31178c4fe1b5bf1045e5f89415008a221.zip
rocm packages: Update the version for 5.3.0 release (#33405)
* update the version for 5.3.0 release * update the rocwmma for 5.3.0 release * fix the +hip variant * update the version for rocm-openmp-extras package for 5.3.0 release * update the hipsolver and hipfft as per review comments * address review comments * revert changes to mivisionx with regard to change added for clangrt * fix for the petsc failure
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/hipfft/package.py6
-rw-r--r--var/spack/repos/builtin/packages/hipsolver/package.py19
-rw-r--r--var/spack/repos/builtin/packages/migraphx/package.py5
-rw-r--r--var/spack/repos/builtin/packages/miopen-hip/package.py4
-rw-r--r--var/spack/repos/builtin/packages/miopen-opencl/package.py7
-rw-r--r--var/spack/repos/builtin/packages/miopengemm/package.py6
-rw-r--r--var/spack/repos/builtin/packages/mivisionx/package.py27
-rw-r--r--var/spack/repos/builtin/packages/mlirmiopen/package.py5
-rw-r--r--var/spack/repos/builtin/packages/rdc/package.py6
-rw-r--r--var/spack/repos/builtin/packages/rocm-openmp-extras/package.py17
-rw-r--r--var/spack/repos/builtin/packages/rocprim/fix-device-merge-mismatched-param-5.3.0.patch207
-rw-r--r--var/spack/repos/builtin/packages/rocprim/package.py3
-rw-r--r--var/spack/repos/builtin/packages/rocwmma/package.py6
13 files changed, 300 insertions, 18 deletions
diff --git a/var/spack/repos/builtin/packages/hipfft/package.py b/var/spack/repos/builtin/packages/hipfft/package.py
index d3a5773e9c..6f60276eff 100644
--- a/var/spack/repos/builtin/packages/hipfft/package.py
+++ b/var/spack/repos/builtin/packages/hipfft/package.py
@@ -16,13 +16,14 @@ class Hipfft(CMakePackage):
homepage = "https://github.com/ROCmSoftwarePlatform/hipFFT"
git = "https://github.com/ROCmSoftwarePlatform/hipFFT.git"
- url = "https://github.com/ROCmSoftwarePlatform/hipfft/archive/rocm-5.2.3.tar.gz"
+ url = "https://github.com/ROCmSoftwarePlatform/hipfft/archive/rocm-5.3.0.tar.gz"
tags = ["rocm"]
maintainers = ["renjithravindrankannath", "srekolam"]
version("master", branch="master")
+ version("5.3.0", sha256="ebbe2009b86b688809b6b4d5c3929fc589db455218d54a37790f21339147c5df")
version("5.2.3", sha256="10be731fe91ede5e9f254f6eb3bc00b4dbeab449477f3cac03de358a7d0a6fa1")
version("5.2.1", sha256="6c8fbace2864ca992b2fca9dc8d0bb4488aef62045acdfcf249d53dd005ebd35")
version("5.2.0", sha256="ec37edcd61837281c403802ccc1cb01ec3fa3ba135b5ab16617961b66d4cc3e2")
@@ -92,6 +93,7 @@ class Hipfft(CMakePackage):
"5.2.0",
"5.2.1",
"5.2.3",
+ "5.3.0",
]:
depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver)
depends_on("hip@" + ver, when="@" + ver)
@@ -115,4 +117,6 @@ class Hipfft(CMakePackage):
args.append(self.define("CMAKE_MODULE_PATH", self.spec["hip"].prefix.lib.cmake.hip))
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"))
return args
diff --git a/var/spack/repos/builtin/packages/hipsolver/package.py b/var/spack/repos/builtin/packages/hipsolver/package.py
index 664118a8d7..0d4132caa9 100644
--- a/var/spack/repos/builtin/packages/hipsolver/package.py
+++ b/var/spack/repos/builtin/packages/hipsolver/package.py
@@ -18,7 +18,7 @@ class Hipsolver(CMakePackage):
homepage = "https://github.com/ROCmSoftwarePlatform/hipSOLVER"
git = "https://github.com/ROCmSoftwarePlatform/hipSOLVER.git"
- url = "https://github.com/ROCmSoftwarePlatform/hipSOLVER/archive/rocm-5.2.3.tar.gz"
+ url = "https://github.com/ROCmSoftwarePlatform/hipSOLVER/archive/rocm-5.3.0.tar.gz"
tags = ["rocm"]
maintainers = ["cgmb", "srekolam", "renjithravindrankannath"]
@@ -27,6 +27,7 @@ class Hipsolver(CMakePackage):
version("develop", branch="develop")
version("master", branch="master")
+ version("5.3.0", sha256="6e920a59ddeefd52c9a6d164c33bc097726529e1ede3c417c711697956655b15")
version("5.2.3", sha256="a57d883fdd09c6c7f9856fcfcabee6fa7ff9beed33d2f1a465bf28d38ea6f364")
version("5.2.1", sha256="e000b08cf7bfb5f8f6d65d163ebeeb3274172b9f474228b810bde5e6f87f2b37")
version("5.2.0", sha256="96927410e0a2cc0f50172604ef6437e15d2cf4b62d22b2035f13aae21f43dc82")
@@ -69,8 +70,18 @@ class Hipsolver(CMakePackage):
for ver in ["master", "develop"]:
depends_on("rocblas@" + ver, when="@" + ver)
depends_on("rocsolver@" + ver, when="@" + ver)
-
- for ver in ["4.5.0", "4.5.2", "5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3"]:
+ for ver in [
+ "4.5.0",
+ "4.5.2",
+ "5.0.0",
+ "5.0.2",
+ "5.1.0",
+ "5.1.3",
+ "5.2.0",
+ "5.2.1",
+ "5.2.3",
+ "5.3.0",
+ ]:
depends_on("hip@" + ver, when="@" + ver)
depends_on("rocblas@" + ver, when="@" + ver)
depends_on("rocsolver@" + ver, when="@" + ver)
@@ -104,5 +115,7 @@ class Hipsolver(CMakePackage):
if self.spec.satisfies("@5.2.0:"):
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"))
return args
diff --git a/var/spack/repos/builtin/packages/migraphx/package.py b/var/spack/repos/builtin/packages/migraphx/package.py
index 2cb403f0d8..d4bc430edb 100644
--- a/var/spack/repos/builtin/packages/migraphx/package.py
+++ b/var/spack/repos/builtin/packages/migraphx/package.py
@@ -13,12 +13,13 @@ class Migraphx(CMakePackage):
homepage = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX"
git = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX.git"
- url = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/archive/rocm-5.2.3.tar.gz"
+ url = "https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/archive/rocm-5.3.0.tar.gz"
tags = ["rocm"]
maintainers = ["srekolam", "renjithravindrankannath"]
libraries = ["libmigraphx"]
+ version("5.3.0", sha256="d0b7283f42e03fb38b612868b8c94f46f27a6e0b019ae95fde5b9086582a1c69")
version("5.2.3", sha256="03f7d49f2efdd2c7a6afcaa5a5db5103edc15047b0ff5e146a775cfb36b36af2")
version("5.2.1", sha256="300d990e1b92ad27c3eba3e94ef34538730ca9556398b8b9f7d61d28bf66c57d")
version("5.2.0", sha256="33afcdf52c6e0e3a2f939fcf30e87f712b8e8ef3633a3dc03a19fea359704925")
@@ -126,6 +127,7 @@ class Migraphx(CMakePackage):
depends_on("python@3.5:", type="build")
depends_on("py-pybind11", type="build", when="@:4.0.0")
depends_on("py-pybind11@2.6:", type="build", when="@4.1.0:")
+ depends_on("pkgconfig", type="build", when="@5.3.0:")
for ver in [
"3.5.0",
@@ -147,6 +149,7 @@ class Migraphx(CMakePackage):
"5.2.0",
"5.2.1",
"5.2.3",
+ "5.3.0",
]:
depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver)
depends_on("hip@" + ver, when="@" + ver)
diff --git a/var/spack/repos/builtin/packages/miopen-hip/package.py b/var/spack/repos/builtin/packages/miopen-hip/package.py
index 6180b7eb40..bc58f38f75 100644
--- a/var/spack/repos/builtin/packages/miopen-hip/package.py
+++ b/var/spack/repos/builtin/packages/miopen-hip/package.py
@@ -20,6 +20,7 @@ class MiopenHip(CMakePackage):
maintainers = ["srekolam", "renjithravindrankannath"]
libraries = ["libMIOpen"]
+ version("5.3.0", sha256="c5819f593d71beeda2eb24b89182912240cc40f83b2b8f9de695a8e230aa4ea6")
version("5.2.3", sha256="28747847446955b3bab24f7fc65c1a6b863a12f12ad3a35e0312072482d38122")
version("5.2.1", sha256="0977a8876d41bbd2fa268341c93892f35878d7efc1711194ad87582f877ff500")
version("5.2.0", sha256="5fda69426e81df9f8fb6658e579176b9c4fcce3516fc8488d3cfd2b6f6f2b3b4")
@@ -138,13 +139,14 @@ class MiopenHip(CMakePackage):
"5.2.0",
"5.2.1",
"5.2.3",
+ "5.3.0",
]:
depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver)
depends_on("hip@" + ver, when="@" + ver)
depends_on("rocm-clang-ocl@" + ver, when="@" + ver)
depends_on("rocblas@" + ver, when="@" + ver)
- for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3"]:
+ for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3", "5.3.0"]:
depends_on("mlirmiopen@" + ver, when="@" + ver)
def setup_build_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/miopen-opencl/package.py b/var/spack/repos/builtin/packages/miopen-opencl/package.py
index 268e15ad14..7829e36629 100644
--- a/var/spack/repos/builtin/packages/miopen-opencl/package.py
+++ b/var/spack/repos/builtin/packages/miopen-opencl/package.py
@@ -14,12 +14,13 @@ class MiopenOpencl(CMakePackage):
homepage = "https://github.com/ROCmSoftwarePlatform/MIOpen"
git = "https://github.com/ROCmSoftwarePlatform/MIOpen.git"
- url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-5.2.3.tar.gz"
+ url = "https://github.com/ROCmSoftwarePlatform/MIOpen/archive/rocm-5.3.0.tar.gz"
tags = ["rocm"]
maintainers = ["srekolam", "renjithravindrankannath"]
libraries = ["libMIOpen"]
+ version("5.3.0", sha256="c5819f593d71beeda2eb24b89182912240cc40f83b2b8f9de695a8e230aa4ea6")
version("5.2.3", sha256="28747847446955b3bab24f7fc65c1a6b863a12f12ad3a35e0312072482d38122")
version("5.2.1", sha256="0977a8876d41bbd2fa268341c93892f35878d7efc1711194ad87582f877ff500")
version("5.2.0", sha256="5fda69426e81df9f8fb6658e579176b9c4fcce3516fc8488d3cfd2b6f6f2b3b4")
@@ -136,6 +137,7 @@ class MiopenOpencl(CMakePackage):
"5.2.0",
"5.2.1",
"5.2.3",
+ "5.3.0",
]:
depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver)
depends_on("rocm-opencl@" + ver, when="@" + ver)
@@ -158,10 +160,11 @@ class MiopenOpencl(CMakePackage):
"5.1.3",
"5.2.0",
"5.2.3",
+ "5.3.0",
]:
depends_on("miopengemm@" + ver, when="@" + ver)
- for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3"]:
+ for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3", "5.3.0"]:
depends_on("mlirmiopen@" + ver, when="@" + ver)
@classmethod
diff --git a/var/spack/repos/builtin/packages/miopengemm/package.py b/var/spack/repos/builtin/packages/miopengemm/package.py
index 780ac68fb2..0f3e9bc85b 100644
--- a/var/spack/repos/builtin/packages/miopengemm/package.py
+++ b/var/spack/repos/builtin/packages/miopengemm/package.py
@@ -14,10 +14,10 @@ class Miopengemm(CMakePackage):
homepage = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM"
git = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM.git"
- url = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/archive/rocm-5.2.0.tar.gz"
+ url = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/archive/rocm-5.3.0.tar.gz"
tags = ["rocm"]
- maintainers = ["srekolam", "arjun-raj-kuppala", "renjithravindrankannath"]
+ maintainers = ["srekolam", "renjithravindrankannath"]
libraries = ["libmiopengemm"]
def url_for_version(self, version):
@@ -26,6 +26,7 @@ class Miopengemm(CMakePackage):
url = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM/archive/rocm-{0}.tar.gz"
return url.format(version)
+ version("5.3.0", sha256="7e299daaca8e514bdb5b5efd9d9d3fc5cbfda68ad0117fe7cdbbf946b3f842cd")
version("5.2.3", sha256="de9eecf39e6620be1511923e990101e64c63c2f56d8491c8bf9ffd1033709c00")
version("5.2.1", sha256="9cea190ee0a6645b6d3ce3e136a8e7d07cf4044e98014ccc82b5e5f8b468b1c1")
version("5.2.0", sha256="10458fb07b56a7fbe165595d588b7bf5f1300c57bda2f3133c3687c7bae39ea8")
@@ -132,6 +133,7 @@ class Miopengemm(CMakePackage):
"5.2.0",
"5.2.1",
"5.2.3",
+ "5.3.0",
]:
depends_on("rocm-cmake@" + ver, type="build", when="@" + ver)
depends_on("rocm-opencl@" + ver, when="@" + ver)
diff --git a/var/spack/repos/builtin/packages/mivisionx/package.py b/var/spack/repos/builtin/packages/mivisionx/package.py
index 88fda72871..17dfff8370 100644
--- a/var/spack/repos/builtin/packages/mivisionx/package.py
+++ b/var/spack/repos/builtin/packages/mivisionx/package.py
@@ -25,6 +25,7 @@ class Mivisionx(CMakePackage):
url = "https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-{0}.tar.gz"
return url.format(version)
+ version("5.3.0", sha256="58e68f1c78bbe5694e42bf61be177f9e94bfd3e0c113ec6284493c8684836c58")
version("5.2.3", sha256="bbcdb5808d2bc880486dffa89f4111fb4b1d6dfe9b11fcd46fbd17939d057cf0")
version("5.2.1", sha256="201996b31f59a8d5e4cc3f17d17a5b81158a34d2a1c833b65ccc3dceb21d176f")
version("5.2.0", sha256="fee620a1edd3bce18b2cec9ef26ec2afe0a85d6da8a37ed713ab0d1342382503")
@@ -162,6 +163,19 @@ class Mivisionx(CMakePackage):
"amd_openvx_extensions/CMakeLists.txt",
string=True,
)
+ if self.spec.satisfies("@5.3.0: + hip"):
+ filter_file(
+ "${ROCM_PATH}/llvm/bin/clang++",
+ "{0}/bin/clang++".format(self.spec["llvm-amdgpu"].prefix),
+ "amd_openvx/openvx/hipvx/CMakeLists.txt",
+ string=True,
+ )
+ filter_file(
+ "${ROCM_PATH}/llvm/bin/clang++",
+ "{0}/bin/clang++".format(self.spec["llvm-amdgpu"].prefix),
+ "amd_openvx_extensions/amd_nn/nn_hip/CMakeLists.txt",
+ string=True,
+ )
depends_on("cmake@3.5:", type="build")
depends_on("ffmpeg@:4", type="build")
@@ -171,6 +185,14 @@ class Mivisionx(CMakePackage):
"+calib3d+features2d+highgui+imgcodecs+imgproc"
"+video+videoio+flann+photo+objdetect",
type="build",
+ when="@:5.2",
+ )
+ depends_on(
+ "opencv@4.5:"
+ "+calib3d+features2d+highgui+imgcodecs+imgproc"
+ "+video+videoio+flann+photo+objdetect",
+ type="build",
+ when="@5.3:",
)
depends_on("rocm-opencl@3.5.0", when="@1.7+opencl")
depends_on("rocm-cmake@3.5.0", type="build", when="@1.7")
@@ -206,6 +228,7 @@ class Mivisionx(CMakePackage):
"5.2.0",
"5.2.1",
"5.2.3",
+ "5.3.0",
]:
depends_on("rocm-opencl@" + ver, when="@" + ver)
depends_on("miopengemm@" + ver, when="@" + ver)
@@ -221,8 +244,10 @@ class Mivisionx(CMakePackage):
"5.2.0",
"5.2.1",
"5.2.3",
+ "5.3.0",
]:
depends_on("miopen-hip@" + ver, when="@" + ver)
+ depends_on("migraphx@" + ver, when="@" + ver)
def flag_handler(self, name, flags):
spec = self.spec
@@ -244,4 +269,6 @@ class Mivisionx(CMakePackage):
args.append(self.define("BACKEND", "HIP"))
args.append(self.define("HSA_PATH", spec["hsa-rocr-dev"].prefix))
args.append(self.define("HIP_PATH", spec["hip"].prefix))
+ if self.spec.satisfies("~hip~opencl"):
+ args.append(self.define("BACKEND", "CPU"))
return args
diff --git a/var/spack/repos/builtin/packages/mlirmiopen/package.py b/var/spack/repos/builtin/packages/mlirmiopen/package.py
index 2243780978..4d1330e10f 100644
--- a/var/spack/repos/builtin/packages/mlirmiopen/package.py
+++ b/var/spack/repos/builtin/packages/mlirmiopen/package.py
@@ -11,12 +11,13 @@ class Mlirmiopen(CMakePackage):
"""Multi-Level Intermediate Representation for rocm miopen project."""
homepage = "https://github.com/ROCmSoftwarePlatform/llvm-project-mlir"
- url = "https://github.com/ROCmSoftwarePlatform/llvm-project-mlir/archive/refs/tags/rocm-5.2.3.tar.gz"
+ url = "https://github.com/ROCmSoftwarePlatform/llvm-project-mlir/archive/refs/tags/rocm-5.3.0.tar.gz"
git = "https://github.com/ROCmSoftwarePlatform/llvm-project-mlir.git"
tags = ["rocm"]
maintainers = ["srekolam"]
+ version("5.3.0", sha256="e8471a13cb39d33adff34730d3162adaa5d20f9544d61a6a94b39b9b5762ad6d")
version("5.2.3", sha256="29e1c352d203622fa083432d5d368caccb53ba141119fbb7e8d5247d99854625")
version("5.2.1", sha256="9e305e05474076d84c78b7a796bca20b64c70ee3e2caa066c625216c5ee21d95")
version("5.2.0", sha256="546121f203e7787d3501fbaf6673bdbeefbb39e0446b02c480454338362a1f01")
@@ -39,7 +40,7 @@ class Mlirmiopen(CMakePackage):
depends_on("half")
depends_on("pkgconfig", type="build")
- for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3"]:
+ for ver in ["5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3", "5.3.0"]:
depends_on("hip@" + ver, when="@" + ver)
depends_on("llvm-amdgpu@" + ver, when="@" + ver)
depends_on("hsa-rocr-dev@" + ver, when="@" + ver)
diff --git a/var/spack/repos/builtin/packages/rdc/package.py b/var/spack/repos/builtin/packages/rdc/package.py
index c1383a5c28..f8fa207751 100644
--- a/var/spack/repos/builtin/packages/rdc/package.py
+++ b/var/spack/repos/builtin/packages/rdc/package.py
@@ -11,7 +11,7 @@ class Rdc(CMakePackage):
"""ROCm Data Center Tool"""
homepage = "https://github.com/RadeonOpenCompute/rdc"
- url = "https://github.com/RadeonOpenCompute/rdc/archive/rocm-4.3.0.tar.gz"
+ url = "https://github.com/RadeonOpenCompute/rdc/archive/rocm-5.3.0.tar.gz"
tags = ["rocm"]
maintainers = ["srekolam", "renjithravindrankannath"]
@@ -24,6 +24,7 @@ class Rdc(CMakePackage):
url = "https://github.com/RadeonOpenCompute/rdc/archive/rocm-{0}.tar.gz"
return url.format(version)
+ version("5.3.0", sha256="ce9c85dad8e0c0b21e8e5938bf16f86a62dc5f6ded5f453c61acd43666634d6b")
version("5.2.3", sha256="5ba060449bbf5e84979cb4c62eb1dac9b0e3eca45e930d2e20e7beaa87361b39")
version("5.2.1", sha256="84b3c3754b8c9732ee6d00d37881591d3d6876feb8f29746d9eb18faea7ad035")
version("5.2.0", sha256="2f35f74485e783f56ea724a7c69ce825f181fcdbe89de453d97ce6a3d3176ae0")
@@ -121,10 +122,11 @@ class Rdc(CMakePackage):
"5.2.0",
"5.2.1",
"5.2.3",
+ "5.3.0",
]:
depends_on("rocm-smi-lib@" + ver, type=("build", "link"), when="@" + ver)
- for ver in ["5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3"]:
+ for ver in ["5.0.0", "5.0.2", "5.1.0", "5.1.3", "5.2.0", "5.2.1", "5.2.3", "5.3.0"]:
depends_on("hsa-rocr-dev@" + ver, when="@" + ver)
def patch(self):
diff --git a/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py b/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py
index 1f03713aa8..1de8f21820 100644
--- a/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py
+++ b/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py
@@ -31,6 +31,7 @@ aomp = [
"20e21312816272222d1f427ea72a99a9a67077078552f5e2638a40860d161d25",
"c0aa6997e889d6ce0e37cfa6a2e91c5c0b54cda1673abdcabcf34da1ba78ba72",
"4ba1792095427588c484feed01f2f48e66aaad26bc000cbc74a15032551699e7",
+ "371ed037b95b83fac64fb2ff2fc17313fe7d3befc8671f0a08f0e2072393fa5b",
]
devlib = [
@@ -50,6 +51,7 @@ devlib = [
"901674bc941115c72f82c5def61d42f2bebee687aefd30a460905996f838e16c",
"e5855387ce73ed483ed0d03dbfef31f297c6ca66cf816f6816fd5ee373fc8225",
"16b7fc7db4759bd6fb54852e9855fa16ead76c97871d7e1e9392e846381d611a",
+ "f7e1665a1650d3d0481bec68252e8a5e68adc2c867c63c570f6190a1d2fe735c",
]
llvm = [
@@ -69,6 +71,7 @@ llvm = [
"0f892174111b78a02d1a00f8f46d9f80b9abb95513a7af38ecf2a5a0882fe87f",
"3644e927d943d61e22672422591c47a62ff83e3d87ced68439822156d8f79abf",
"1b852711aec3137b568fb65f93606d37fdcd62e06f5da3766f2ffcd4e0c646df",
+ "4e3fcddb5b8ea8dcaa4417e0e31a9c2bbdc9e7d4ac3401635a636df32905c93e",
]
flang = [
@@ -88,6 +91,7 @@ flang = [
"20f48cac9b58496230fa2428eba4e15ec0a6e92d429569b154a328b7a8c5da17",
"012a9c10a7d2a248dc40510e2f5c02a54b5f6bc39961500dc48b6780dac5ad67",
"496f00918721c72eae0bd926a5a8f1f35bd443f6b22bc08e2a42c67e44a4dbaf",
+ "ef1256ddf6cd9de10a1b88df4736dce48295136983a7e31eadd942fb39b156f7",
]
extras = [
@@ -107,6 +111,7 @@ extras = [
"817c2e8975e56a8875ff56f9d1ea34d5e7e50f1b541b7f1236e3e5c8d9eee47f",
"8b738225f0be39f27bba64c014816cfa1b79f2c7cf2d0e31fbc0fffb6c26e429",
"f42ca7d85b0b64e6890502f1cf8309ef97f707829876742da2ea5c2cdf3ad8ac",
+ "b3beee383d9c130666c230595c950bdc2ce4c7a99d728b9ddf1bca3963152223",
]
versions = [
@@ -126,6 +131,7 @@ versions = [
"5.2.0",
"5.2.1",
"5.2.3",
+ "5.3.0",
]
versions_dict = dict() # type: Dict[str,Dict[str,str]]
components = ["aomp", "devlib", "llvm", "flang", "extras"]
@@ -143,10 +149,11 @@ class RocmOpenmpExtras(Package):
"""OpenMP support for ROCm LLVM."""
homepage = tools_url + "/aomp"
- url = tools_url + "/aomp/archive/rocm-5.2.3.tar.gz"
+ url = tools_url + "/aomp/archive/rocm-5.3.0.tar.gz"
tags = ["rocm"]
maintainers = ["srekolam", "renjithravindrankannath", "estewart08"]
+ version("5.3.0", sha256=versions_dict["5.3.0"]["aomp"])
version("5.2.3", sha256=versions_dict["5.2.3"]["aomp"])
version("5.2.1", sha256=versions_dict["5.2.1"]["aomp"])
version("5.2.0", sha256=versions_dict["5.2.0"]["aomp"])
@@ -233,6 +240,7 @@ class RocmOpenmpExtras(Package):
"5.2.0",
"5.2.1",
"5.2.3",
+ "5.3.0",
]:
depends_on("hsakmt-roct@" + ver, when="@" + ver)
depends_on("comgr@" + ver, when="@" + ver)
@@ -289,10 +297,14 @@ class RocmOpenmpExtras(Package):
devlibs_prefix = self.spec["llvm-amdgpu"].prefix
openmp_extras_prefix = self.spec["rocm-openmp-extras"].prefix
llvm_prefix = self.spec["llvm-amdgpu"].prefix
+ hsa_prefix = self.spec["hsa-rocr-dev"].prefix
env.set("AOMP", "{0}".format(llvm_prefix))
env.set("HIP_DEVICE_LIB_PATH", "{0}/amdgcn/bitcode".format(devlibs_prefix))
env.prepend_path("CPATH", "{0}/include".format(openmp_extras_prefix))
env.prepend_path("LIBRARY_PATH", "{0}/lib".format(openmp_extras_prefix))
+ if self.spec.satisfies("@5.3.0:"):
+ env.prepend_path("LD_LIBRARY_PATH", "{0}/lib".format(openmp_extras_prefix))
+ env.prepend_path("LD_LIBRARY_PATH", "{0}/lib".format(hsa_prefix))
if self.spec.version < Version("4.1.0"):
env.set("AOMP_GPU", "`{0}/rocm-bin/mygpu`".format(openmp_extras_prefix))
else:
@@ -531,6 +543,9 @@ class RocmOpenmpExtras(Package):
else:
openmp_common_args += ["-DHSA_INCLUDE={0}/include/hsa".format(hsa_prefix)]
+ if self.spec.satisfies("@5.3.0:"):
+ openmp_common_args += ["-DLIBOMPTARGET_ENABLE_DEBUG=ON"]
+
components["openmp"] = ["../rocm-openmp-extras/llvm-project/openmp"]
components["openmp"] += openmp_common_args
diff --git a/var/spack/repos/builtin/packages/rocprim/fix-device-merge-mismatched-param-5.3.0.patch b/var/spack/repos/builtin/packages/rocprim/fix-device-merge-mismatched-param-5.3.0.patch
new file mode 100644
index 0000000000..e3bfc4049a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rocprim/fix-device-merge-mismatched-param-5.3.0.patch
@@ -0,0 +1,207 @@
+From 05269687a201569eeaa50c03000d75ba923edd90 Mon Sep 17 00:00:00 2001
+From: Gergely Meszaros <gergely@streamhpc.com>
+Date: Fri, 28 Oct 2022 13:41:38 +0200
+Subject: [PATCH 1/2] Fix device_merge when using different types for
+ `keys_input1` and `keys_input2`.
+
+Add a test case for using device_merge with different types for
+`keys_input1` and `keys_input2`.
+---
+ .../rocprim/device/detail/device_merge.hpp | 28 +++---
+ test/rocprim/test_device_merge.cpp | 98 ++++++++++++++++++-
+ 2 files changed, 107 insertions(+), 19 deletions(-)
+
+diff --git a/rocprim/include/rocprim/device/detail/device_merge.hpp b/rocprim/include/rocprim/device/detail/device_merge.hpp
+index 92159810..db7df6af 100644
+--- a/rocprim/include/rocprim/device/detail/device_merge.hpp
++++ b/rocprim/include/rocprim/device/detail/device_merge.hpp
+@@ -72,26 +72,26 @@ range_t compute_range(const unsigned int id,
+ return range_t{p1, p2, diag1 - p1, diag2 - p2};
+ }
+
+-template <class KeysInputIterator, class OffsetT, class BinaryFunction>
+-ROCPRIM_DEVICE ROCPRIM_INLINE
+-OffsetT merge_path(KeysInputIterator keys_input1,
+- KeysInputIterator keys_input2,
+- const OffsetT input1_size,
+- const OffsetT input2_size,
+- const OffsetT diag,
+- BinaryFunction compare_function)
++template<class KeysInputIterator1, class KeysInputIterator2, class OffsetT, class BinaryFunction>
++ROCPRIM_DEVICE ROCPRIM_INLINE OffsetT merge_path(KeysInputIterator1 keys_input1,
++ KeysInputIterator2 keys_input2,
++ const OffsetT input1_size,
++ const OffsetT input2_size,
++ const OffsetT diag,
++ BinaryFunction compare_function)
+ {
+- using key_type = typename std::iterator_traits<KeysInputIterator>::value_type;
++ using key_type_1 = typename std::iterator_traits<KeysInputIterator1>::value_type;
++ using key_type_2 = typename std::iterator_traits<KeysInputIterator2>::value_type;
+
+ OffsetT begin = diag < input2_size ? 0u : diag - input2_size;
+- OffsetT end = min(diag, input1_size);
++ OffsetT end = min(diag, input1_size);
+
+ while(begin < end)
+ {
+- OffsetT a = (begin + end) / 2;
+- OffsetT b = diag - 1 - a;
+- key_type input_a = keys_input1[a];
+- key_type input_b = keys_input2[b];
++ OffsetT a = (begin + end) / 2;
++ OffsetT b = diag - 1 - a;
++ key_type_1 input_a = keys_input1[a];
++ key_type_2 input_b = keys_input2[b];
+ if(!compare_function(input_b, input_a))
+ {
+ begin = a + 1;
+diff --git a/test/rocprim/test_device_merge.cpp b/test/rocprim/test_device_merge.cpp
+index 7e21c65f..d06cafb8 100644
+--- a/test/rocprim/test_device_merge.cpp
++++ b/test/rocprim/test_device_merge.cpp
+@@ -1,6 +1,6 @@
+ // MIT License
+ //
+-// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved.
++// Copyright (c) 2017-2022 Advanced Micro Devices, Inc. All rights reserved.
+ //
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
+ // of this software and associated documentation files (the "Software"), to deal
+@@ -20,14 +20,23 @@
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ // SOFTWARE.
+
+-#include "common_test_header.hpp"
++// required test headers
++#include "../common_test_header.hpp"
++#include "test_utils_types.hpp"
+
+ // required rocprim headers
+-#include <rocprim/functional.hpp>
+ #include <rocprim/device/device_merge.hpp>
++#include <rocprim/functional.hpp>
++#include <rocprim/iterator/counting_iterator.hpp>
++#include <rocprim/iterator/transform_iterator.hpp>
+
+-// required test headers
+-#include "test_utils_types.hpp"
++#include <gtest/gtest.h>
++
++#include <hip/hip_runtime.h>
++
++#include <algorithm>
++#include <numeric>
++#include <vector>
+
+ // Params for tests
+ template<
+@@ -433,3 +442,82 @@ TYPED_TEST(RocprimDeviceMergeTests, MergeKeyValue)
+
+ }
+ }
++
++TEST(RocprimDeviceMergeTests, MergeMismatchedIteratorTypes)
++{
++ const int device_id = test_common_utils::obtain_device_from_ctest();
++ SCOPED_TRACE(testing::Message() << "with device_id = " << device_id);
++ HIP_CHECK(hipSetDevice(device_id));
++
++ std::vector<int> keys_input1(1'024);
++ std::generate(keys_input1.begin(),
++ keys_input1.end(),
++ [n = 0]() mutable
++ {
++ const int temp = n;
++ n += 2;
++ return temp;
++ });
++
++ std::vector<int> expected_keys_output(2 * keys_input1.size());
++ std::iota(expected_keys_output.begin(), expected_keys_output.end(), 0);
++
++ int* d_keys_input1 = nullptr;
++ int* d_keys_output = nullptr;
++ HIP_CHECK(test_common_utils::hipMallocHelper(&d_keys_input1,
++ keys_input1.size() * sizeof(keys_input1[0])));
++ HIP_CHECK(
++ test_common_utils::hipMallocHelper(&d_keys_output,
++ expected_keys_output.size() * sizeof(keys_input1[0])));
++
++ HIP_CHECK(hipMemcpy(d_keys_input1,
++ keys_input1.data(),
++ keys_input1.size() * sizeof(keys_input1[0]),
++ hipMemcpyHostToDevice));
++
++ const auto d_keys_input2 = rocprim::make_transform_iterator(rocprim::make_counting_iterator(0),
++ [] __host__ __device__(int value)
++ { return value * 2 + 1; });
++
++ static constexpr bool debug_synchronous = false;
++
++ size_t temp_storage_size_bytes = 0;
++ HIP_CHECK(rocprim::merge(nullptr,
++ temp_storage_size_bytes,
++ d_keys_input1,
++ d_keys_input2,
++ d_keys_output,
++ keys_input1.size(),
++ keys_input1.size(),
++ rocprim::less<int>{},
++ hipStreamDefault,
++ debug_synchronous));
++
++ ASSERT_GT(temp_storage_size_bytes, 0);
++
++ void* d_temp_storage = nullptr;
++ HIP_CHECK(test_common_utils::hipMallocHelper(&d_temp_storage, temp_storage_size_bytes));
++
++ HIP_CHECK(rocprim::merge(d_temp_storage,
++ temp_storage_size_bytes,
++ d_keys_input1,
++ d_keys_input2,
++ d_keys_output,
++ keys_input1.size(),
++ keys_input1.size(),
++ rocprim::less<int>{},
++ hipStreamDefault,
++ debug_synchronous));
++
++ std::vector<int> keys_output(expected_keys_output.size());
++ HIP_CHECK(hipMemcpy(keys_output.data(),
++ d_keys_output,
++ keys_output.size() * sizeof(keys_output[0]),
++ hipMemcpyDeviceToHost));
++
++ ASSERT_NO_FATAL_FAILURE(test_utils::assert_eq(keys_output, expected_keys_output));
++
++ HIP_CHECK(hipFree(d_temp_storage));
++ HIP_CHECK(hipFree(d_keys_output));
++ HIP_CHECK(hipFree(d_keys_input1));
++}
+
+From 993541c6b21b51b5a1a838eca855cc4efcfbb19b Mon Sep 17 00:00:00 2001
+From: Vince van Heertum <vince@streamhpc.com>
+Date: Fri, 4 Nov 2022 12:56:53 +0100
+Subject: [PATCH 2/2] Update CHANGELOG.md for ROCm 5.3.2
+
+---
+ CHANGELOG.md | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/CHANGELOG.md b/CHANGELOG.md
+index eef6aede..53739ffa 100644
+--- a/CHANGELOG.md
++++ b/CHANGELOG.md
+@@ -2,6 +2,11 @@
+
+ Full documentation for rocPRIM is available at [https://codedocs.xyz/ROCmSoftwarePlatform/rocPRIM/](https://codedocs.xyz/ROCmSoftwarePlatform/rocPRIM/)
+
++## [rocPRIM-2.11.1 for ROCm 5.3.2]
++### Fixed
++- Fix device_merge when using different types for `keys_input1` and `keys_input2`.
++- Added a test case for using device_merge with different types for `keys_input1` and `keys_input2`.
++
+ ## [rocPRIM-2.11.0 for ROCm 5.3.0]
+ ### Added
+ - New functions `subtract_left` and `subtract_right` in `block_adjacent_difference` to apply functions
diff --git a/var/spack/repos/builtin/packages/rocprim/package.py b/var/spack/repos/builtin/packages/rocprim/package.py
index b2f732b47a..7fc7607dd8 100644
--- a/var/spack/repos/builtin/packages/rocprim/package.py
+++ b/var/spack/repos/builtin/packages/rocprim/package.py
@@ -135,6 +135,9 @@ class Rocprim(CMakePackage):
depends_on("llvm-amdgpu@" + ver, when="@" + ver)
depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver)
+ # the patch is meant for 5.3.0 only.this is already in the 5.3.3+ releases
+ patch("fix-device-merge-mismatched-param-5.3.0.patch", when="@5.3.0")
+
def setup_build_environment(self, env):
env.set("CXX", self.spec["hip"].hipcc)
diff --git a/var/spack/repos/builtin/packages/rocwmma/package.py b/var/spack/repos/builtin/packages/rocwmma/package.py
index a0b9d121d5..3b330d246a 100644
--- a/var/spack/repos/builtin/packages/rocwmma/package.py
+++ b/var/spack/repos/builtin/packages/rocwmma/package.py
@@ -21,11 +21,12 @@ class Rocwmma(CMakePackage):
homepage = "https://github.com/ROCmSoftwarePlatform/rocWMMA"
git = "https://github.com/ROCmSoftwarePlatform/rocWMMA.git"
- url = "https://github.com/ROCmSoftwarePlatform/rocWMMA/archive/refs/tags/rocm-5.2.3.tar.gz"
+ url = "https://github.com/ROCmSoftwarePlatform/rocWMMA/archive/refs/tags/rocm-5.3.0.tar.gz"
tags = ["rocm"]
maintainers = ["srekolam", "renjithravindrankannath"]
+ version("5.3.0", sha256="04bac641ba18059118d3faa5f21fe3bf3e285055d40930489ebf27ffc8e5d16e")
version("5.2.3", sha256="7f42e9742eff258f7c09c518c5ea9c71a224574e1c075d7e1c4e464192fc4920")
version("5.2.1", sha256="73adb6a0ae99051493459a9902ad718b0452d6d819583a58d713ce52fa813f21")
version("5.2.0", sha256="257ccd1cf2bc1d8064e72e78d276ef7446b2cb7e2dec05ff8331bb44eff2b7cb")
@@ -48,12 +49,11 @@ class Rocwmma(CMakePackage):
depends_on("googletest@1.10.0:", type="test")
- for ver in ["5.2.0", "5.2.1", "5.2.3"]:
+ for ver in ["5.2.0", "5.2.1", "5.2.3", "5.3.0"]:
depends_on("rocm-cmake@%s:" % ver, type="build", when="@" + ver)
depends_on("llvm-amdgpu@" + ver, type="build", when="@" + ver)
depends_on("hip@" + ver, when="@" + ver)
depends_on("rocblas@" + ver, type="build", when="@" + ver)
-
depends_on("rocm-openmp-extras@" + ver, type="build", when="@" + ver)
for tgt in itertools.chain(["auto"], amdgpu_targets):