(→Package status: adding rocgdb dependency, adding review link for rocprim, marking rocfft as in progress) |
|||
(46 intermediate revisions by 5 users not shown) | |||
Line 3: | Line 3: | ||
== Mission == | == Mission == | ||
To encourage the packaging and accessibility of heterogeneous computing projects in Fedora and EPEL. This includes machine learning, OpenCL, and scientific computing. | 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 [[SIGs/AI-ML|AI/ML SIG]], we do share communication channels for now. If you're interested, please join us on: | |||
* [https://matrix.to/#/#ai-ml:fedoraproject.org #ai-ml@fedoraproject.org Matrix room] | |||
* #fedora-ai-ml on [https://libera.chat libera.chat IRC] ('''NOTE:''' With [https://discussion.fedoraproject.org/t/matrix-to-libera-chat-irc-bridge-unavailable/87081 the recent Matrix/IRC bridge issues], there may not be much activity on IRC. More conversation happens in the Matrix room) | |||
* [https://discussion.fedoraproject.org/tags/c/project/7/ai-ml-sig #ai-ml-sig on Fedora's Discourse instance] | |||
== Members/Packagers/Reviewers == | == Members/Packagers/Reviewers == | ||
Line 9: | Line 16: | ||
* Benson Muite | * Benson Muite | ||
* [[User:mhough|Morgan Hough]] (Intel related while testing SODECL on Intel NUCs) | * [[User:mhough|Morgan Hough]] (Intel related while testing SODECL on Intel NUCs) | ||
* [[User:trix|Tom Rix]] ( | * [[User:trix|Tom Rix]] (ROCm) | ||
* [[User:Tflink|Tim Flink]] | * [[User:Tflink|Tim Flink]] | ||
* [[User:Greencappuccino|Brian Lu]] | * [[User:Greencappuccino|Brian Lu]] | ||
* [[User:jsteffan|Jonathan Steffan]] | |||
* [[User:davdunc| David DUncan]] (currently working on Fedora Cloud Edition and want to build Deep Learning Images for public cloud) | |||
Please add your name above if you want to help. | Please add your name above if you want to help. | ||
Line 20: | Line 29: | ||
* Translation of wiki pages and documentation (if applicable) | * Translation of wiki pages and documentation (if applicable) | ||
= AMD's ROCm (OpenCL | = AMD's ROCm (HIP,OpenCL) = | ||
== Package status == | == Package status == | ||
Below is a list of ROCm packages with their 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! | If something isn't packaged in Fedora or EPEL, feel free to take it! | ||
{| border="1" | {| border="1" | ||
| '''Name''' || '''Fedora Package''' || '''EPEL?''' || '''Upstream package name''' || '''Upstream URL''' || '''Notes''' || | | '''Name''' || '''Fedora Package''' || '''EPEL?''' || '''Upstream package name''' || '''Upstream URL''' || '''Notes''' || | ||
|- | |- | ||
| | | rocm-compilersupport || {{ package|rocm-compilersupport|rocm-compilersupport}} || Yes || comgr || https://github.com/radeonopencompute/rocm-compilersupport || || | ||
|- | |||
| rocclr || {{ package|rocclr}} || Yes || clr || https://github.com/ROCm/clr || || | |||
|- | |||
| hsakmt || {{ package|hsakmt|hsakmt}} || Yes || roct-thunk-interface || https://github.com/radeonopencompute/roct-thunk-interface || || | |||
|- | |- | ||
| rocr-runtime || {{ package|rocm-runtime|rocm-runtime}} || Yes || | | rocr-runtime || {{ package|rocm-runtime|rocm-runtime}} || Yes || ROCR-Runtime || https://github.com/ROCm/ROCR-Runtime || || | ||
|- | |- | ||
| rocminfo || {{ package|rocminfo|rocminfo}} || Yes || rocminfo || https://github.com/radeonopencompute/rocminfo || || | | rocminfo || {{ package|rocminfo|rocminfo}} || Yes || rocminfo || https://github.com/radeonopencompute/rocminfo || || | ||
|- | |- | ||
| rocm-device-libs || {{ package|rocm-device-libs|rocm-device-libs}} || Yes || rocm-device-libs || https://github.com/radeonopencompute/rocm-device-libs || || | | rocm-device-libs || {{ package|rocm-device-libs|rocm-device-libs}} || Yes || rocm-device-libs || https://github.com/radeonopencompute/rocm-device-libs || || | ||
Line 43: | Line 52: | ||
| 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 || {{ package|rocclr|rocm-opencl}} | | rocm-opencl-runtime || {{ package|rocclr|rocm-opencl}} || Yes || rocm-opencl || https://github.com/radeonopencompute/rocm-opencl-runtime || rocm-opencl is now a sub-package of {{ package|rocclr}} in Fedora 38+ || | ||
|- | |- | ||
| rocm_smi_lib || | | rocm_smi_lib || {{ package|rocm-smi}} || || rocm-smi-lib || https://github.com/radeonopencompute/rocm_smi_lib || | ||
|- | |- | ||
| | | amdsmi || {{ package|amdsmi}} || || amdsmi || https://github.com/ROCm/amdsmi || | ||
|- | |- | ||
| | | hipamd || {{ package|rocclr|rocm-hip}} || || hip-runtime-amd || https://github.com/rocm-developer-tools/hipamd || rocm-hip is a subpackage of {{ package|rocclr}} || | ||
|- | |- | ||
| hip-samples || || || hip-samples || https://github.com/ROCm-Developer-Tools/HIP-Examples | || | | hipcc || {{ package|rocclr|hipcc}} || || hip-[devel,docs] || https://github.com/rocm-developer-tools/HIP || hipcc is a subpackage of {{ package|rocclr}} || | ||
|- | |||
| hip-samples || || || hip-samples || https://github.com/ROCm-Developer-Tools/HIP-Examples | requires better cmake infra from upstream || | |||
|- | |- | ||
| rocm-cmake || {{ package|rocm-cmake}} || || rocm-cmake || https://github.com/radeonopencompute/rocm-cmake || Needed by most of the roc* and hip* packages below || | | rocm-cmake || {{ package|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 | | hipblas || {{ package|hipblas}} || || hipblas || https://github.com/rocmsoftwareplatform/hipblas || | ||
|- | |- | ||
| hipsparse || || || hipsparse || https://github.com/rocmsoftwareplatform/hipsparse | | hipsparse || {{ package|hipsparse}} || || hipsparse || https://github.com/rocmsoftwareplatform/hipsparse || | ||
|- | |- | ||
| rocalution || || || | | rocalution || {{ package|rocalution}} || || rocalution || https://github.com/rocmsoftwareplatform/rocalution || | ||
|- | |- | ||
| rocblas || || || rocblas || https://github.com/rocmsoftwareplatform/rocblas || | | rocblas || {{ package|rocblas}} || || rocblas || https://github.com/rocmsoftwareplatform/rocblas || || | ||
|- | |- | ||
| rocfft || || || rocfft || https://github.com/rocmsoftwareplatform/rocfft || | | rocfft || {{ package|rocfft}} || || rocfft || https://github.com/rocmsoftwareplatform/rocfft || || | ||
|- | |- | ||
| hipfft || || || | | hipfft || {{ package|hipfft}} || || hipfft || https://github.com/rocmsoftwareplatform/hipfft || || | ||
|- | |- | ||
| rocmvalidationsuite || || || rocm-validation-suite || https://github.com/rocm-developer-tools/rocmvalidationsuite || || | | rocmvalidationsuite || || || rocm-validation-suite || https://github.com/rocm-developer-tools/rocmvalidationsuite || '''requires rocblas, rocm_smi_lib''' || | ||
|- | |- | ||
| rocprim || | | rocprim || {{ package|rocprim }} || || rocprim || https://github.com/rocmsoftwareplatform/rocprim || || | ||
|- | |- | ||
| rocrand ||{{ package|rocrand}} || || rocrand || https://github.com/rocmsoftwareplatform/rocrand || | | rocrand ||{{ package|rocrand}} || || rocrand || https://github.com/rocmsoftwareplatform/rocrand || || | ||
|- | |- | ||
| | | hiprand ||{{ package|hiprand}} || || rocrand || https://github.com/rocmsoftwareplatform/rocrand || Used to be a subpackage of {{ package|rocrand}} || | ||
|- | |- | ||
| | | rocsolver || {{ package|rocsolver}} || || rocsolver || https://github.com/rocmsoftwareplatform/rocsolver || || | ||
|- | |- | ||
| | | rocsparse || {{ package|rocsparse}} || || rocsparse || https://github.com/rocmsoftwareplatform/rocsparse || || | ||
|- | |- | ||
| | | rocthrust || {{ package|rocthrust }} || || rocthrust || https://github.com/rocmsoftwareplatform/rocthrust || || | ||
|- | |- | ||
| | | hipcub || {{ package|hipcub}} || || hipcub || https://github.com/rocmsoftwareplatform/hipcub || || | ||
|- | |- | ||
| | | rccl || {{ package|rccl}} || || rccl || https://github.com/rocmsoftwareplatform/rccl || no gfx10,gfx1103 support || | ||
|- | |- | ||
| | | miopen || {{ package|miopen}} || || miopen || https://github.com/rocmsoftwareplatform/miopen || || | ||
|- | |- | ||
| | | tensile || {{ package|python-tensile }} || || ? || https://github.com/rocmsoftwareplatform/tensile || || | ||
|- | |- | ||
| | | rocdbgapi || '''In Review || || rocm-dbgapi || https://github.com/rocm-developer-tools/rocdbgapi || [https://bugzilla.redhat.com/show_bug.cgi?id=2246661 Review Link] || | ||
|- | |- | ||
| | | rocgdb || '''In Review''' || || rocm-gdb || https://github.com/rocm-developer-tools/rocgdb || A fork of {{ package|gdb|gdb}} with ROCm related addons, '''Requires rocdbgapi''' [https://bugzilla.redhat.com/show_bug.cgi?id=2246670 Review Link] || | ||
|- | |- | ||
| roctracer || || || roctracer || https://github.com/rocm-developer-tools/roctracer || || | | rocprofiler || || || rocprofiler || https://github.com/rocm-developer-tools/rocprofiler || BLOCKED - requires hsa-amd-aqlprofile, a closed source package || | ||
|- | |||
| roctracer || {{ package|roctracer }} || || roctracer || https://github.com/rocm-developer-tools/roctracer || || | |||
|- | |||
| composable_kernel || || || composable_kernel ||https://github.com/ROCmSoftwarePlatform/composable_kernel || trix is working on this || | |||
|- | |||
| hipify || {{ package|hipify}} || || hipify || https://github.com/ROCm-Developer-Tools/HIPIFY || || | |||
|- | |||
| hipblaslt || {{ package|hipblaslt}} || || hipblaslt || https://github.com/ROCm/hipBLASLt || only gfx90a support || | |||
|} | |} | ||
Line 99: | Line 118: | ||
{{Admon/warning | Upstream only officially supports x86_64, but they are open to pcc64le and arm64 patches}} | {{Admon/warning | Upstream only officially supports x86_64, but they are open to pcc64le and arm64 patches}} | ||
Some 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). | 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). | ||
Line 108: | Line 127: | ||
=== Setup === | === Setup === | ||
To enable access to GPU resources for non-root users, the users must be added to the `video` | To enable access to GPU resources for non-root users, the users must be added to the `video` (graphics) and `render` (compute) group. The [https://rocm.docs.amd.com/projects/install-on-linux/en/docs-6.0.0/how-to/prerequisites.html#setting-permissions-for-groups AMD ROCm Installation Guide (6.0.0)] recommends the `video` and `render` group for all ROCm-supported operating systems. | ||
To add the current user to the `render` group: | |||
sudo usermod -a -G render,video $LOGNAME | |||
sudo usermod -a -G video $LOGNAME | |||
To check for ROCm support of the running HW, you can install and run `rocminfo`: | To check for ROCm support of the running HW, you can install and run `rocminfo`: | ||
Line 146: | Line 163: | ||
TODO: incomplete, take me! | TODO: incomplete, take me! | ||
= Packages = | |||
Packages that use HC | |||
== Blender == | |||
Build with: | |||
rpmbuild --with rocm | |||
[[Category:SIGs]] | [[Category:SIGs]] | ||
[[Category:Language-specific SIGs]] | [[Category:Language-specific SIGs]] | ||
[[Category:Fedora special-interest groups]] | [[Category:Fedora special-interest groups]] |
Latest revision as of 13:52, 31 August 2024
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:
- #ai-ml@fedoraproject.org Matrix room
- #fedora-ai-ml on libera.chat IRC (NOTE: With the recent Matrix/IRC bridge issues, there may not be much activity on IRC. More conversation happens in the Matrix room)
- #ai-ml-sig on Fedora's Discourse instance
Members/Packagers/Reviewers
- Jeremy Newton (ROCm related)
- Felix Schwarz (currently busy with certbot, borgbackup, WeasyPrint)
- Benson Muite
- Morgan Hough (Intel related while testing SODECL on Intel NUCs)
- Tom Rix (ROCm)
- Tim Flink
- Brian Lu
- Jonathan Steffan
- David DUncan (currently working on Fedora Cloud Edition and want to build Deep Learning Images for public cloud)
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!
HW Support
Some 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).
Installation
Setup
To enable access to GPU resources for non-root users, the users must be added to the video
(graphics) and render
(compute) group. The AMD ROCm Installation Guide (6.0.0) recommends the video
and render
group for all ROCm-supported operating systems.
To add the current user to the render
group:
sudo usermod -a -G render,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
HIP is included in Fedora 39 and is pending for Fedora 38. For Fedora 38, you will need to add --enable-repo=updates-testing to dnf if it's not available yet.
Install with:
sudo dnf install rocm-hip
For use with Blender, you might need to also install "rocm-hip-devel" if it does not detect HIP.
Intel
TODO: incomplete, take me!
Packages
Packages that use HC
Blender
Build with:
rpmbuild --with rocm