From 409611a47950cdf2a593c1c66eb59bb0a9ec2eb0 Mon Sep 17 00:00:00 2001 From: afzpatel <122491982+afzpatel@users.noreply.github.com> Date: Mon, 3 Feb 2025 16:11:42 -0500 Subject: [PATCH] rocm-examples and rocjpeg: new packages (#47695) * new package: rocm-examples * add new package rocjpeg and update rocm-examples for 6.3.0 * fix licenses * add versions 6.3.1 * change homepage and git * add f-string --- .../repos/builtin/packages/rocjpeg/package.py | 42 ++++++++++++ .../builtin/packages/rocm-examples/package.py | 65 +++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 var/spack/repos/builtin/packages/rocjpeg/package.py create mode 100644 var/spack/repos/builtin/packages/rocm-examples/package.py diff --git a/var/spack/repos/builtin/packages/rocjpeg/package.py b/var/spack/repos/builtin/packages/rocjpeg/package.py new file mode 100644 index 00000000000..42668fcef1b --- /dev/null +++ b/var/spack/repos/builtin/packages/rocjpeg/package.py @@ -0,0 +1,42 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class Rocjpeg(CMakePackage): + """rocJPEG is a high-performance jpeg decode SDK for decoding jpeg images + using a hardware-accelerated jpeg decoder on AMD's GPUs.""" + + homepage = "https://github.com/ROCm/rocJPEG" + git = "https://github.com/ROCm/rocJPEG.git" + url = "https://github.com/ROCm/rocJPEG/archive/refs/tags/rocm-6.3.0.tar.gz" + + maintainers("afzpatel", "srekolam", "renjithravindrankannath") + + license("MIT") + + version("6.3.1", sha256="f4913cbc63e11b9b418d33b0f9ba0fec0aa00b23285090acfd435e1ba1c21e42") + version("6.3.0", sha256="2623b8f8bb61cb418d00c695e8ff0bc5979e1bb2d61d6c327a27d676c89e89cb") + + depends_on("cxx", type="build") + + for ver in ["6.3.0", "6.3.1"]: + depends_on(f"llvm-amdgpu@{ver}", when=f"@{ver}") + depends_on(f"hip@{ver}", when=f"@{ver}") + + depends_on("libva", type="build", when="@6.2:") + + def patch(self): + filter_file( + r"${ROCM_PATH}/lib/llvm/bin/clang++", + "{0}/bin/clang++".format(self.spec["llvm-amdgpu"].prefix), + "CMakeLists.txt", + string=True, + ) + + def cmake_args(self): + args = [self.define("LIBVA_INCLUDE_DIR", self.spec["libva"].prefix.include)] + return args diff --git a/var/spack/repos/builtin/packages/rocm-examples/package.py b/var/spack/repos/builtin/packages/rocm-examples/package.py new file mode 100644 index 00000000000..84043aa77d8 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocm-examples/package.py @@ -0,0 +1,65 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class RocmExamples(CMakePackage): + """A collection of examples for the ROCm software stack""" + + homepage = "https://github.com/ROCm/rocm-examples" + url = "https://github.com/ROCm/rocm-examples/archive/refs/tags/rocm-6.2.1.tar.gz" + + tags = ["rocm"] + + maintainers("srekolam", "renjithravindrankannath", "afzpatel") + + license("MIT") + + version("6.3.1", sha256="c5093cd6641de478b940d2e36d6723f7ef1ccad3f4f96caf0394def2e6c7e325") + version("6.3.0", sha256="809b5212d86d182586d676752b192967aee3bde6df8bbbe67558b221d63f5c7c") + version("6.2.4", sha256="510931103e4a40b272123b5c731d2ea795215c6171810beb1d5335d73bcc9b03") + version("6.2.1", sha256="2e426572aa5f5b44c7893ea256945c8733b79db39cca84754380f40c8b44a563") + version("6.2.0", sha256="6fb1f954ed32b5c4085c7f071058d278c2e1e8b7b71118ee5e85cf9bbc024df0") + + depends_on("cxx", type="build") + + depends_on("glfw", type="build") + + for ver in ["6.3.1", "6.3.0", "6.2.4", "6.2.1", "6.2.0"]: + depends_on(f"hip@{ver}", when=f"@{ver}") + depends_on(f"hipify-clang@{ver}", when=f"@{ver}") + depends_on(f"hipcub@{ver}", when=f"@{ver}") + depends_on(f"hiprand@{ver}", when=f"@{ver}") + depends_on(f"hipsolver@{ver}", when=f"@{ver}") + depends_on(f"rocblas@{ver}", when=f"@{ver}") + depends_on(f"rocthrust@{ver}", when=f"@{ver}") + depends_on(f"hipblas@{ver}", when=f"@{ver}") + depends_on(f"rocsparse@{ver}", when=f"@{ver}") + depends_on(f"rocsolver@{ver}", when=f"@{ver}") + + def patch(self): + filter_file( + r"${ROCM_ROOT}/bin/hipify-perl", + f"{self.spec['hipify-clang'].prefix}/bin/hipify-perl", + "HIP-Basic/hipify/CMakeLists.txt", + string=True, + ) + + def cmake_args(self): + args = [] + args.append( + self.define( + "OFFLOAD_BUNDLER_COMMAND", + f"{self.spec['llvm-amdgpu'].prefix}/bin/clang-offload-bundler", + ) + ) + args.append( + self.define("LLVM_MC_COMMAND", f"{self.spec['llvm-amdgpu'].prefix}/bin/llvm-mc") + ) + args.append( + self.define("LLVM_DIS_COMMAND", f"{self.spec['llvm-amdgpu'].prefix}/bin/llvm-dis") + ) + return args