From Fedora Project Wiki

Heterogeneous Computing Special Interest Group

Mission

To encourage the packaging and accessibility of heterogeneous computing projects in Fedora and EPEL. This includes machine learning, OpenCL, and scientific computing.

Communication

While separate from the AI/ML SIG, we do share communication channels for now. If you're interested, please join us on:

Members/Packagers/Reviewers

Please add your name above if you want to help.

Tasks

  • Package and make HC related projects more accessible to users (such as OpenCL, AMD's ROCm HIP, Intel oneAPI, SYCL, Vulkan, OpenGL, etc.)
  • Document installation, packages, and general use cases
  • Translation of wiki pages and documentation (if applicable)

AMD's ROCm (HIP,OpenCL)

Package status

Below is a list of ROCm packages with their status. If something isn't packaged in Fedora or EPEL, feel free to take it!


Name Fedora Package EPEL? Upstream package name Upstream URL Notes
amdsmi amdsmi Yes amdsmi https://github.com/ROCm/amdsmi
composable_kernel composable_kernel composable_kernel https://github.com/ROCmSoftwarePlatform/composable_kernel
hipamd rocm-hip Yes hip-runtime-amd https://github.com/rocm-developer-tools/hipamd rocm-hip is a subpackage of rocclr
hipblas hipblas Yes hipblas https://github.com/rocmsoftwareplatform/hipblas
hipblaslt hipblaslt hipblaslt https://github.com/ROCm/hipBLASLt
hipcub hipcub Yes hipcub https://github.com/ROCm/hipcub
hipfft hipfft Yes hipfft https://github.com/ROCm/hipfft
hipify hipify hipify https://github.com/ROCm-Developer-Tools/HIPIFY
hiprand hiprand Yes hipRAND https://github.com/ROCm/hipRAND
hsakmt hsakmt roct-thunk-interface https://github.com/radeonopencompute/roct-thunk-interface obsolete after ROCm 6.2
hipsparse hipsparse Yes hipsparse https://github.com/ROCm/hipsparse
hipsparselt hipsparselt hipsparse https://github.com/ROCm/hipsparselt
migraphx migrahx amdmigraphx https://github.com/ROCm/AMDMIGraphX
miopen miopen miopen https://github.com/ROCm/miopen
mivisionx mivisionx mivisionx https://github.com/ROCm/mivisionx
rccl rccl Yes rccl https://github.com/ROCm/rccl
rccl-tests rccl-tests rccl https://github.com/ROCm/rccl-tests
rocalution rocalution Yes rocalution https://github.com/ROCm/rocalution
rocblas rocblas Yes rocblas https://github.com/ROCm/rocblas
rocclr rocclr Yes clr https://github.com/ROCm/clr
rocdecode rocdecode rocDECODE https://github.com/ROCm/rocDECODE
rocfft rocfft Yes rocfft https://github.com/rocmsoftwareplatform/rocfft
rocm-compilersupport rocm-compilersupport Yes llvm-project https://github.com/ROCm/llvm-project
rocm-core rocm-core rocm-core https://github.com/ROCm/rocm-core
rocm-omp rocm-omp llvm-project https://github.com/ROCm/llvm-project
rocm-origami rocm-origami https://github.com/ROCm/rocm-libraries
rocm-rpp rocm-rpp RPP https://github.com/ROCm/RPP
rocminfo rocminfo Yes rocminfo https://github.com/ROCm/rocminfo
rocr-runtime rocm-runtime Yes ROCR-Runtime https://github.com/ROCm/ROCR-Runtime
opencl-icd-loader rocm-ocl-icd https://github.com/KhronosGroup/OpenCL-ICD-Loader Fedora already has ocl-icd, but the khronos version is required for GL-CL interop support
rocm-device-libs rocm-device-libs Yes rocm-device-libs https://github.com/radeonopencompute/rocm-device-libs obsolete after ROCm 6.2
rocm-cmake rocm-cmake Yes rocm-cmake https://github.com/ROCm/rocm-cmake
rocm_smi_lib rocm-smi Yes rocm-smi-lib https://github.com/ROCm/rocm_smi_lib
rocmvalidationsuite rocm-validation-suite rocm-validation-suite https://github.com/rocm-developer-tools/rocmvalidationsuite
rocprim rocprim Yes rocprim https://github.com/ROCm/rocprim
rocrand rocrand Yes rocrand https://github.com/ROCm/rocrand
rocsolver rocsolver Yes rocsolver https://github.com/ROCm/rocsolver
rocsparse rocsparse Yes rocsparse https://github.com/ROCm/rocsparse
rocthrust rocthrust Yes rocthrust https://github.com/ROCm/rocthrust
rocdbgapi rocdbgapi rocm-dbgapi https://github.com/rocm-developer-tools/rocdbgapi
rocgdb rocm-gdb https://github.com/rocm-developer-tools/rocgdb A fork of gdb with ROCm related addons, Requires rocdbgapi
rocjpeg rocjpeg rocJPEG https://github.com/ROCm/rocJPEG
rocal rocal rocal https://github.com/ROCm/RocAL
rocm rocm For getting all the ROCm package
rocm-examples rocm-examples rocm-examples https://github.com/ROCm/rocm-examples
roctracer roctracer roctracer https://github.com/rocm-developer-tools/roctracer
tensile python-tensile Tensile https://github.com/rocmsoftwareplatform/tensile

Update Policy

Upstream

ROCm's upstream release documentation is https://github.com/ROCm/ROCm/releases

ROCm follows a Major.Minor.Patchset release version. Changes to the Major version indicate that this is an ABI breaking change. These typically happen only once every year or two. Minor version indicate an improvement in basic functionally such as to support new hardware, these typically happen every 3-6 months. Finally Patchset releases happen as-needed to address problems with the current minor release and usually happen every 3-6 weeks.

Fedora Rawhide

Rawhide will follow all the public releases of ROCm except for

  • Freezing rawhide before a release branch
  • Individual package update has technical problems ex/ new build requirements.

The health of ROCm and its dependents are tracked with these COPRs

To determine if your package should be added to the COPRs, do this reverse dependency check against the ROCm runtime.

   repoquery --recursive --whatrequires rocm-runtime | grep <package-to-check>

Fedora Releases

The Fedora Release of ROCm will be taken naturally from the branching of Rawhide. The rocm-packagers-sig will use their judgement to use the most stable ROCm release available within the 2-6 weeks before the branch date. The Fedora Release will be locked to the Major.Minor release. Only the Patchset version may change.

These COPR's are used to track the health of ROCm and its dependencies

EPEL

The EPEL release of ROCm happens by explicitly merging Rawhide to the development EPEL branch ex/ epel10. The rocm-packages-sig will use their judgement to use a stable ROCm release within minor branches of EPEL. The minor branches for EPEL ex/ epel10.3 will be locked to a Major.Minor release. Only the Patchset version may change.

These COPR's are used to track the health of ROCm and its dependencies.

  • EPEL10
  • EPEL 9 and earlier has no support

Updates

10.2
10.1
  • Initial enablement to 6.4.2.
  • No Patchset updates

OpenSUSE/SUSE

Fedora shares the ROCm packages with OpenSUSE, here is the OpenSUSE development project. https://build.opensuse.org/project/show/science:GPU:ROCm

HW Support

To determine if your hardware is supported, run rocminfo

    rocminfo

And review the lines, looking for output like

    Name:                    gfx1201

And consulting the lists below. If you are unable to run rocminfo, consult Wiki: AMD GPUs. If your GPU is not listed and you would like it to be supported, file a feature request for the Fedora 'rocm' component.

Fedora 44, EPEL 10.2

gfx900 gfx906 gfx908 gfx90a gfx942 gfx950

gfx1010 gfx1012 gfx1030 gfx1031 gfx1035 gfx1036

gfx1100 gfx1101 gfx1102 gfx1103 gfx1150 gfx1151 gfx1152 gfx1153

gfx1200 gfx1201

Packages with limited gpu support

composable kernel : gfx11-generic gfx12-generic

hip-tests : gfx1100 gfx1101 gfx1102 gfx1151 gfx1200 gfx1201

hipblaslt : gfx90a gfx1100 gfx1101 gfx1103 gfx1150 gfx1151 gfx1200 gfx1201

hipsparselt : gfx90a gfx1100 gfx1101 gfx1200 gfx1201

rccl : gfx906 gfx908 gfx90a gfx942 gfx950 gfx1100 gfx1101 gfx1102 gfx1200 gfx1201

Fedora 43, EPEL 10.1

gfx900 gfx906 gfx908 gfx90a gfx942 gfx950

gfx1010 gfx1012 gfx1030 gfx1031 gfx1035

gfx1100 gfx1101 gfx1102 gfx1103 gfx1150 gfx1151 gfx1152 gfx1153

gfx1200 gfx1201

Fedora 42

gfx900 gfx906 gfx908 gfx90a gfx942

gfx1010 gfx1012 gfx1030 gfx1031 gfx1035

gfx1100 gfx1101 gfx1102 gfx1103 gfx1150 gfx1151 gfx1152

gfx1200 gfx1201

Fedora 41

gfx900 gfx906 gfx908 gfx90a gfx942

gfx1010 gfx1012 gfx1030 gfx1031

gfx1100 gfx1101 gfx1102

Installation

The official installation instructions can be found online from AMD here AMD ROCm installation for Linux

Quick Start

The official quick start is AMD Quick start installation guide . The drivers are built with the kernel so there is no need to check your kernel version. The GPU listed in the AMD documentation are a subset of those listed above. The latest Fedora should support the latest GPU or APU.

ROCm installation

Similar to the AMD documentation, for Fedora do

   sudo usermod -a -G render,video $LOGNAME
   sudo dnf install rocm

Optionally for developers, do

   sudo dnf install rocm-devel

AMDGPU driver installation

The AMDGPU driver is not required.

Verifying installation

To verify ROCm has been installed do

   rocminfo

And the results should be similar to

   ROCk module is loaded
   =====================    
   HSA System Attributes    
   =====================    
   Runtime Version:         1.1
   Runtime Ext Version:     1.7
   ...
   *******                  
   Agent 2                  
   *******                  
      Name:                    gfx1201                            
      Uuid:                    GPU-7b2a57bc7a036a5f               
      Marketing Name:          AMD Radeon Graphics                
      Vendor Name:             AMD  
   ...

To verify OpenCL has been installed do

   rocm-clinfo

And the results should be similar to

   Number of platforms:				 1
     Platform Profile:				 FULL_PROFILE
     Platform Version:				 OpenCL 2.1 AMD-APP (3649.0)
     Platform Name:				 AMD Accelerated Parallel  Processing
     Platform Vendor:				 Advanced Micro Devices, Inc.
     Platform Extensions:				 cl_khr_icd cl_amd_event_callback 
   
     Platform Name:				 AMD Accelerated Parallel   Processing
   Number of devices:				 1
     Device Type:					 CL_DEVICE_TYPE_GPU

Intel

TODO: incomplete, take me!

Packages

Packages that use HC

Blender

Build with:

   rpmbuild --with rocm