From Fedora Project Wiki
m (→‎Members/Packagers/Reviewers: adding my name as an interested party)
(update rocm-opencl/hip info)
Line 30: Line 30:
| '''Name''' || '''Fedora Package''' || '''EPEL?''' || '''Upstream package name''' || '''Upstream URL''' || '''Notes'''  ||
| '''Name''' || '''Fedora Package''' || '''EPEL?''' || '''Upstream package name''' || '''Upstream URL''' || '''Notes'''  ||
|-
|-
| roct-thunk-interface || {{ package|rocm-runtime|hsakmt}} || Yes || hsakmt-roct || https://github.com/radeonopencompute/roct-thunk-interface || ||
| roct-thunk-interface || {{ package|hsakmt|hsakmt}} || Yes || hsakmt-roct || https://github.com/radeonopencompute/roct-thunk-interface || ||
|-
|-
| rocr-runtime || {{ package|rocm-runtime|rocm-runtime}} || Yes || hsa-rocr || https://github.com/radeonopencompute/rocr-runtime || ||
| rocr-runtime || {{ package|rocm-runtime|rocm-runtime}} || Yes || hsa-rocr || https://github.com/radeonopencompute/rocr-runtime || ||
Line 42: Line 42:
| opencl-icd-loader || || || rocm-ocl-icd || https://github.com/KhronosGroup/OpenCL-ICD-Loader || Fedora already has {{ package|ocl-icd|ocl-icd}}, but the khronos version is required for GL-CL interop support ||
| opencl-icd-loader || || || rocm-ocl-icd || https://github.com/KhronosGroup/OpenCL-ICD-Loader || Fedora already has {{ package|ocl-icd|ocl-icd}}, but the khronos version is required for GL-CL interop support ||
|-
|-
| rocm-opencl-runtime || '''In Testing (F36/EL8/EL9)''' || || rocm-opencl || https://github.com/radeonopencompute/rocm-opencl-runtime || F36: https://bodhi.fedoraproject.org/updates/FEDORA-2022-2cee071a16 ||
| rocm-opencl-runtime || {{ package|rocm-opencl|rocm-opencl}} || Yes || rocm-opencl || https://github.com/radeonopencompute/rocm-opencl-runtime || ||
|-
|-
| rocm_smi_lib || '''See notes''' || || rocm-smi-lib || https://github.com/radeonopencompute/rocm_smi_lib || The deprecated {{ package|rocm-smi|rocm-smi}} should be replaced by this
| rocm_smi_lib || '''See notes''' || || rocm-smi-lib || https://github.com/radeonopencompute/rocm_smi_lib || The deprecated {{ package|rocm-smi|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 ||
| hip || ''See notes'' || || hip-[devel,docs,samples] || https://github.com/rocm-developer-tools/HIP || hip-devel is a subpackage of https://bugzilla.redhat.com/show_bug.cgi?id=2209759 ||
|-
|-
| 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. ||
| hipamd || ''In Review'' || || hip-runtime-amd || https://github.com/rocm-developer-tools/hipamd || rocm-hip is a subpackage of https://bugzilla.redhat.com/show_bug.cgi?id=2209759 ||
|-
|-
| rocm-cmake || || || rocm-cmake || https://github.com/radeonopencompute/rocm-cmake || Needed by most of the roc* and hip* packages below ||
| rocm-cmake || || || rocm-cmake || https://github.com/radeonopencompute/rocm-cmake || Needed by most of the roc* and hip* packages below ||
Line 88: Line 88:
The ROCm packages in Fedora are built for all 64bit little endian systems (x86_64, arm64, ppc64le), but official support is for x86_64.
The ROCm packages in Fedora are built for all 64bit little endian systems (x86_64, arm64, ppc64le), but official support is for x86_64.


Most products starting with vega 10 (Radeon RX Vega) should work without configuration, but any pre-vega HW, such as the RX 400's or 500's, will require setting (note this is no longer required for rocm-opencl-5.2.1-2 or later):
HW support is highly dependent on LLVM version included in Fedora, so if you have newer HW, you might need to wait for newer LLVM versions to be introduced to Fedora (usually in the spring and the autumn).
 
    export ROC_ENABLE_PRE_VEGA=1


{{Admon/warning | Note that your millage may vary, as pre vega HW on ROCm is experimental, missing functionality, and not guaranteed to work on all HW }}
{{Admon/warning | Note that your millage may vary, as pre vega HW on ROCm is experimental, missing functionality, and not guaranteed to work on all HW }}
Line 112: Line 110:
=== OpenCL ===
=== OpenCL ===


ROCm OpenCL can be installed with (Fedora 36, EPEL8, and EPEL9 are currently in testing):
ROCm OpenCL can be installed with:


     sudo dnf install rocm-opencl
     sudo dnf install rocm-opencl
Line 123: Line 121:
=== HIP ===
=== HIP ===


TODO
Early packages for Fedora 38/39 are located here:
https://copr.fedorainfracloud.org/coprs/mystro256/rocm-hip/
 
Install with:


Some experimental builds exist here (use at your own risk):
    sudo dnf copr enable mystro256/rocm-hip
https://copr.fedorainfracloud.org/coprs/mystro256/rocm-hip/
    sudo dnf install rocm-hip


= Intel =
= Intel =

Revision as of 18:05, 24 May 2023

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)

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 rocm-opencl Yes rocm-opencl https://github.com/radeonopencompute/rocm-opencl-runtime
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 See notes hip-[devel,docs,samples] https://github.com/rocm-developer-tools/HIP hip-devel is a subpackage of https://bugzilla.redhat.com/show_bug.cgi?id=2209759
hipamd In Review hip-runtime-amd https://github.com/rocm-developer-tools/hipamd rocm-hip is a subpackage of https://bugzilla.redhat.com/show_bug.cgi?id=2209759
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

HW Support

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

The ROCm packages in Fedora are built for all 64bit little endian systems (x86_64, arm64, ppc64le), but official support is for x86_64.

HW support is highly dependent on LLVM version included in Fedora, so if you have newer HW, you might need to wait for newer LLVM versions to be introduced to Fedora (usually in the spring and the autumn).

Note that your millage may vary, as pre vega HW on ROCm is experimental, missing functionality, and not guaranteed to work on all HW

Installation

Setup

To enable access to GPU resources for non-root users, the users must be added to the video or render group. The AMD ROCm Installation Guide (v5.2) and FAQs recommend the video group for all ROCm-supported operating systems.

Note:
The render group is only required for Ubuntu v20.04.

To add the current user to the video group:

   sudo usermod -a -G video $LOGNAME

To check for ROCm support of the running HW, you can install and run rocminfo:

   sudo dnf install rocminfo
   rocminfo

OpenCL

ROCm OpenCL can be installed with:

   sudo dnf install rocm-opencl

As well, rocm-clinfo or clinfo can be installed to verify it is working, e.g.:

   sudo dnf install rocm-clinfo
   rocm-clinfo

HIP

Early packages for Fedora 38/39 are located here: https://copr.fedorainfracloud.org/coprs/mystro256/rocm-hip/

Install with:

   sudo dnf copr enable mystro256/rocm-hip
   sudo dnf install rocm-hip

Intel

TODO: incomplete, take me!