From Fedora Project Wiki

Revision as of 05:54, 29 June 2022 by Fed500 (talk | contribs) (→‎Tasks)

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.

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 (OpenCL/HIP)

Upstream only officially supports x86_64, but they are open to pcc64le and arm64 patches

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!

This reference might be helpful for those attempting to package: https://gist.github.com/cgmb/edb7b790ab55681fb2ba5385ee02489b

Name Fedora Package EPEL? Upstream package name Upstream URL Notes
roct-thunk-interface hsakmt Yes hsakmt-roct https://github.com/radeonopencompute/roct-thunk-interface
rocr-runtime rocm-runtime Yes hsa-rocr https://github.com/radeonopencompute/rocr-runtime
rocminfo rocminfo Yes rocminfo https://github.com/radeonopencompute/rocminfo
rocm-compilersupport rocm-compilersupport Yes comgr https://github.com/radeonopencompute/rocm-compilersupport
rocm-device-libs rocm-device-libs Yes rocm-device-libs https://github.com/radeonopencompute/rocm-device-libs
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-opencl-runtime In Review rocm-opencl https://github.com/radeonopencompute/rocm-opencl-runtime https://bugzilla.redhat.com/show_bug.cgi?id=2090823
rocm_smi_lib See notes rocm-smi-lib https://github.com/radeonopencompute/rocm_smi_lib The deprecated rocm-smi should be replaced by this
hip hip-[runtime,devel,docs,samples] https://github.com/rocm-developer-tools/HIP Upstream doesn't cleanly separate the cmake logic with hipamd, we should send upstream patches
hipamd rocm-hip-runtime https://github.com/rocm-developer-tools/hipamd Upstream wants to merge this with OpenCL's sources, so it might be worth waiting to package, or adding as a subpackage for rocm-opencl. Testing version in mystro256's COPR: https://copr.fedorainfracloud.org/coprs/mystro256/rocm-hip/ using rocm-hip to avoid amd branding in Fedora package name.
rocm-cmake rocm-cmake https://github.com/radeonopencompute/rocm-cmake Needed by most of the roc* and hip* packages below
hipblas hipblas https://github.com/rocmsoftwareplatform/hipblas
hipsparse hipsparse https://github.com/rocmsoftwareplatform/hipsparse
rocalution rocalutio https://github.com/rocmsoftwareplatform/rocalution
rocblas rocblas https://github.com/rocmsoftwareplatform/rocblas
rocfft rocfft https://github.com/rocmsoftwareplatform/rocfft
rocmvalidationsuite rocm-validation-suite https://github.com/rocm-developer-tools/rocmvalidationsuite
rocprim rocprim https://github.com/rocmsoftwareplatform/rocprim
rocrand rocrand https://github.com/rocmsoftwareplatform/rocrand
rocsolver rocsolver https://github.com/rocmsoftwareplatform/rocsolver
rocsparse rocsparse https://github.com/rocmsoftwareplatform/rocsparse
tensile ? https://github.com/rocmsoftwareplatform/tensile
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
rocprofiler rocprofiler https://github.com/rocm-developer-tools/rocprofiler
roctracer roctracer https://github.com/rocm-developer-tools/roctracer

Installation

Setup

For non-root usage, the user must be added to the vendor group:

   sudo usermod -a -G vendor myusername

To check for rocm support of the running HW, install and run rocminfo:

   sudo dnf install rocminfo
   rocminfo

TODO: Update once rocm-opencl or rocm-hip is added into Fedora/EPEL