diff --git a/.gitignore b/.gitignore index bdfc5dc..3ac48e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,7 @@ /rocm-examples-6.3.3.tar.gz /rocm-examples-6.4.0.tar.gz /rocm-examples-6.4.1.tar.gz -/rocm-examples-6.3.1.tar.gz +/rocm-examples-6.4.2.tar.gz +/rocm-examples-7.0.1.tar.gz +/rocm-examples-7.0.2.tar.gz +/rocm-examples-7.1.0.tar.gz diff --git a/rocm-examples.spec b/rocm-examples.spec index d5a7700..1278ae5 100644 --- a/rocm-examples.spec +++ b/rocm-examples.spec @@ -1,15 +1,46 @@ +# +# Copyright Fedora Project Authors. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# %global upstreamname rocm-examples -%global rocm_release 6.3 -%global rocm_patch 1 +%global rocm_release 7.1 +%global rocm_patch 0 %global rocm_version %{rocm_release}.%{rocm_patch} +%bcond_with compat +%if %{with compat} +%global pkg_libdir lib +%global pkg_prefix %{_prefix}/lib64/rocm/rocm-%{rocm_release} +%global pkg_suffix -%{rocm_release} +%global pkg_module rocm%{pkg_suffix} +%else +%global pkg_libdir %{_lib} +%global pkg_prefix %{_prefix} +%global pkg_suffix %{nil} +%global pkg_module default +%endif + %global toolchain rocm # hipcc does not support some clang flags -%global build_cxxflags %(echo %{optflags} | sed -e 's/-fstack-protector-strong/-Xarch_host -fstack-protector-strong/' -e 's/-fcf-protection/-Xarch_host -fcf-protection/' ) - -# $gpu will be evaluated in the loops below -%global _vpath_builddir %{_vendor}-%{_target_os}-build-${gpu} +%global build_cxxflags %(echo %{optflags} | sed -e 's/-fstack-protector-strong/-Xarch_host -fstack-protector-strong/' -e 's/-fcf-protection/-Xarch_host -fcf-protection/' -e 's/-mtls-dialect=gnu2//') %bcond_with debug %if %{with debug} @@ -26,9 +57,14 @@ %global _source_payload w7T0.xzdio %global _binary_payload w7T0.xzdio -Name: rocm-examples +# some example cmake's do not like :xnack suffix +# reduce the default list +%global gpu_list %rocm_gpu_list_test +%global _gpu_list gfx1100 + +Name: rocm-examples%{pkg_suffix} Version: %{rocm_version} -Release: 1%{?dist} +Release: 2%{?dist} Summary: A collection of examples for the ROCm software stack Url: https://github.com/ROCm/%{upstreamname} License: MIT AND Apache-2.0 @@ -42,22 +78,22 @@ Source0: %{url}/archive/rocm-%{version}.tar.gz#/%{upstreamname}-%{version BuildRequires: cmake BuildRequires: gcc-c++ -BuildRequires: hipblas-devel -BuildRequires: hipcub-devel -BuildRequires: hipfft-devel -BuildRequires: hipify -BuildRequires: hiprand-devel -BuildRequires: hipsolver-devel -BuildRequires: rocm-comgr-devel -BuildRequires: rocm-hip-devel -BuildRequires: rocm-runtime-devel -BuildRequires: rocm-rpm-macros -BuildRequires: rocm-rpm-macros-modules -BuildRequires: rocblas-devel -BuildRequires: rocfft-devel -BuildRequires: rocsolver-devel -BuildRequires: rocsparse-devel -BuildRequires: rocthrust-devel +BuildRequires: hipblas%{pkg_suffix}-devel +BuildRequires: hipcub%{pkg_suffix}-devel +BuildRequires: hipfft%{pkg_suffix}-devel +BuildRequires: hipify%{pkg_suffix} +BuildRequires: hiprand%{pkg_suffix}-devel +BuildRequires: hipsolver%{pkg_suffix}-devel +BuildRequires: rocm-comgr%{pkg_suffix}-devel +BuildRequires: rocm-compilersupport%{pkg_suffix}-macros +BuildRequires: rocm-hip%{pkg_suffix}-devel +BuildRequires: rocm-runtime%{pkg_suffix}-devel +BuildRequires: rocm-rpm-macros%{pkg_suffix} +BuildRequires: rocblas%{pkg_suffix}-devel +BuildRequires: rocfft%{pkg_suffix}-devel +BuildRequires: rocsolver%{pkg_suffix}-devel +BuildRequires: rocsparse%{pkg_suffix}-devel +BuildRequires: rocthrust%{pkg_suffix}-devel %if 0%{?suse_version} BuildRequires: benchmark-devel @@ -67,8 +103,6 @@ BuildRequires: google-benchmark-devel BuildRequires: gtest-devel %endif -Requires: rocm-rpm-macros-modules - # Only x86_64 works right now: ExclusiveArch: x86_64 @@ -100,14 +134,16 @@ The examples are structured in several categories: # No External, not going to bundle things outside of this project. # Not having glfw-devel turns off building examples that use External/glad -rm -rf External/ +# +# Need to keep CmdParser +rm -rf External/{glad,KHR} # https://github.com/ROCm/rocm-examples/issues/217 for f in `find . -name 'CMakeLists.txt'`; do - sed -i -e 's@opt/rocm@usr@' $f + sed -i -e 's@/opt/rocm@%{pkg_prefix}@' $f done for f in `find . -name 'Makefile'`; do - sed -i -e 's@opt/rocm@usr@' $f + sed -i -e 's@/opt/rocm@%{pkg_prefix}@' $f done # On SLE 15.6 @@ -120,38 +156,61 @@ sed -i -e 's@add_subdirectory(module_api)@message("no module_api")@' HIP-Basi %endif %endif +# Some custom commands need to use hip_flags +sed -i -e 's@${CMAKE_HIP_COMPILER}@${CMAKE_HIP_COMPILER} -I%{pkg_prefix}/include@' HIP-Basic/llvm_ir_to_executable/CMakeLists.txt + %build -for gpu in %{rocm_gpu_list} -do - module load rocm/$gpu - %cmake \ - -DCMAKE_CXX_COMPILER=hipcc \ - -DAMDGPU_TARGETS=${ROCM_GPUS} \ - -DCMAKE_INSTALL_LIBDIR=$ROCM_LIB \ - -DCMAKE_INSTALL_BINDIR=$ROCM_BIN \ + +export ROCM_ROOT=%{pkg_prefix} + +%cmake \ + -DCMAKE_C_COMPILER=%rocmllvm_bindir/amdclang \ + -DCMAKE_CXX_COMPILER=%rocmllvm_bindir/amdclang++ \ + -DCMAKE_CXX_FLAGS="-I %{pkg_prefix}/include" \ + -DCMAKE_INSTALL_LIBDIR=%{pkg_libdir} \ + -DCMAKE_INSTALL_PREFIX=%{pkg_prefix} \ + -DCMAKE_HIP_ARCHITECTURES=%{gpu_list} \ + -DCMAKE_HIP_COMPILER=%rocmllvm_bindir/amdclang++ \ + -DCMAKE_HIP_COMPILER_ROCM_ROOT=%{pkg_prefix} \ + -DCMAKE_HIP_FLAGS="-I %{pkg_prefix}/include" \ + -DGPU_TARGETS=%{gpu_list} \ -DCMAKE_BUILD_TYPE=%{build_type} \ -DHIP_PLATFORM=amd - %cmake_build - module purge -done - %cmake_build %install -for gpu in %{rocm_gpu_list} -do - %cmake_install -done +%cmake_install %files %license LICENSE.md %doc README.md -%{_bindir}/* +%{pkg_prefix}/bin/* %changelog -* Thu Jul 31 2025 Tom Rix - 6.3.1-1 -- Backport to f42 +* Wed Dec 24 2025 Tom Rix - 7.1.0-2 +- Add --with compat + +* Fri Oct 31 2025 Tom Rix - 7.1.0-1 +- Update to 7.1.0 + +* Sat Oct 11 2025 Tom Rix - 7.0.2-1 +- Update to 7.0.2 + +* Sun Sep 21 2025 Tom Rix - 7.0.1-1 +- Update to 7.0.1 + +* Thu Aug 28 2025 Tom Rix - 6.4.2-3 +- Add Fedora copyright + +* Wed Jul 30 2025 Tom Rix - 6.4.2-2 +- Remove -mtls-dialect cflag + +* Fri Jul 25 2025 Jeremy Newton - 6.4.2-1 +- Update to 6.4.2 + +* Fri Jul 25 2025 Fedora Release Engineering - 6.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild * Sun Jun 1 2025 Tom Rix - 6.4.1-1 - Update to 6.4.1 diff --git a/sources b/sources index e0c5cba..f97ee77 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (rocm-examples-6.3.1.tar.gz) = 5c25e617a0494ccb9ad6f47f8ea2f172a4d8c0145d63ab1d856f4294db6fbce4ccbc5bf16fd1ea96408ff1364cbeea861cc5210fca853fdc35c9976f64b5d05b +SHA512 (rocm-examples-7.1.0.tar.gz) = 905261202d04896a737730f69b383f7d44557d287c90f36144ac8a421ebd104a7d884cce607058e735da80f7ce2a2509eaec0c84d9ca513de6ca18424e049a71