%global upstreamname rocm-examples %global rocm_release 6.3 %global rocm_patch 3 %global rocm_version %{rocm_release}.%{rocm_patch} %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/' ) %bcond_with debug %if %{with debug} %global build_type DEBUG %else %global build_type RelWithDebInfo %endif # To test install the rocm-examples on a machine with an AMD gpu and run them manually # Compression type and level for source/binary package payloads. # "w7T0.xzdio" xz level 7 using %%{getncpus} threads # Multithreading the compress reduces the build time. %global _source_payload w7T0.xzdio %global _binary_payload w7T0.xzdio Name: rocm-examples Version: %{rocm_version} Release: 1%{?dist} Summary: A collection of examples for the ROCm software stack Url: https://github.com/ROCm/%{upstreamname} License: MIT AND Apache-2.0 # The main license is MIT # A couple of assembly/llvm ir files that are Apache-2.0 # HIP-Basic/assembly_to_executable/hip_obj_gen.mcin # HIP-Basic/assembly_to_executable/hip_obj_gen_win.mcin # HIP-Basic/llvm_ir_to_executable/hip_obj_gen.mcin # HIP-Basic/llvm_ir_to_executable/hip_obj_gen_win.mcin Source0: %{url}/archive/rocm-%{version}.tar.gz#/%{upstreamname}-%{version}.tar.gz BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: google-benchmark-devel BuildRequires: gtest-devel 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: rocblas-devel BuildRequires: rocfft-devel BuildRequires: rocsolver-devel BuildRequires: rocsparse-devel BuildRequires: rocthrust-devel # Only x86_64 works right now: ExclusiveArch: x86_64 %description This repository is a collection of examples to enable new users to start using ROCm, as well as provide more advanced examples for experienced users. The examples are structured in several categories: * HIP-Basic showcases some basic functionality without any additional dependencies * Libraries contains examples for ROCm-libraries, that provide higher-level functionality * Applications showcases some common applications, using HIP to accelerate them * AI contains instructions on how to use ROCm for AI * Tutorials contains the code accompanying the HIP Tutorials that can be found in the HIP documentation. * For a full overview over the examples see the section repository contents. %prep %autosetup -p1 -n %{upstreamname}-rocm-%{version} # 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/ # https://github.com/ROCm/rocm-examples/issues/217 for f in `find . -name 'CMakeLists.txt'`; do sed -i -e 's@opt/rocm@usr@' $f done for f in `find . -name 'Makefile'`; do sed -i -e 's@opt/rocm@usr@' $f done %build %cmake \ -DCMAKE_CXX_COMPILER=hipcc \ -DCMAKE_HIP_ARCHITECTURES=%{rocm_gpu_list_default} \ -DAMDGPU_TARGETS=%{rocm_gpu_list_default} \ -DCMAKE_BUILD_TYPE=%{build_type} \ -DHIP_PLATFORM=amd %cmake_build %install %cmake_install %files %license LICENSE.md %doc README.md %{_bindir}/* %changelog * Fri Mar 21 2025 Tom Rix <Tom.Rix@amd.com> - 6.3.3-1 - Initial package