AMD Radeon Open Compute 4.2 Is Released
The latest AMD ROCm compute stack has nothing new for Linux desktop users, and there is no mention of OpenCL in the release notes. It is still incapable of providing compute capabilities to desktop applications like Blender. Data center customers can enjoy new platform macros and several other improvements to the ROCm tools and libraries.
written by 권유리 (Kwon Yu-ri) 2021-05-13 - last edited 2021-05-13. © CC BY
ethminer benchmarking with Radeon Open Compute 4.2.
AMDs Radeon Open Compute (ROCm) is currently the best way to get OpenCL 2.0 support on GNU/Linux. That's a bit sad since it is severely lacking in some areas. The latest AMD Radeon Software For Linux provides ROCm as the default OpenCL stack. The other alternative for OpenCL 2.0 on GNU/Linux with AMD cards, the "orca" driver, is still available in the "AMD Radeon Software For Linux" driver package as a "legacy" option. ROCm is what AMD will be supporting going forward.
The latest ROCm 4.2 release has nothing new for typical GNU/Linux desktop users. OpenCL is not even mentioned in the release notes. Enabling ROCm 4.2 provided OpenCL as a Cycles device under
▸ ▸ ▸ in Blender 2.92 results in a crash. And it doesn't work with DaVinci Resolve 17. Incompatibiltiies with OpenCL desktop applications isn't new to ROCm 4.2, desktop application support is just a use-case we like to test when AMD releases ROCm new versions since it is what's most interesting to non-datacenter users.The highlights in ROCm 4.2, targetted at AMDs datacenter customers, are:
- HIP ("Heterogeneous-Computing Interface") target support in the platform marcors for HIP projects.
HIP_PLATFORM_AMD
andHIP_PLATFORM_NVIDIA
can now be used to check if a HIP platform targets AMD or Nvidia. - The HIP header directories have been changed to being platform-specific (
amd_detail/
andnvidia_detail/
- Stream Memory Operations now supports direct direct synchronization between Network Nodes and GPUs using four new APIs:
hipStreamWaitValue32
,hipStreamWaitValue64
,hipStreamWriteValue32
andhipStreamWriteValue64
. - The ROCm Data Center Tool has a new plugin called "Reliability, Accessibility, and Serviceability (RAS)".
- The ROCm Math and Communication Libraries
rocBLAS
,rocRAND
,rocSOLVER
,rocSPARSE
andhipSPARSE
have all seen minor improvements.
The source code for ROCm 4.2 can be acquired from github.com/RadeonOpenCompute/ROCm/releases. The better option, if you are using Ubuntu, CentOS/RedHat/Fedora or SLES 15, is to add a distribution-specific ROCm 4.2 repositoriy with binary packages using the instructions at rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html. Do note that ROCm 4.2 installs itself to /opt/rocm-4.2.0/
without making the GNU linker aware of that path, so OpenCL won't work unless you manually add the ROCm library path to your LD configuration:
echo "/opt/rocm-4.2.0/opencl/lib/" > /etc/ld.so.conf.d/amd-rocm.conf
(You can, alternatively, edit /etc/OpenCL/vendors/amdocl64_40200.icd
so it provides a full path to /opt/rocm-4.2.0/opencl/lib/libamdocl64.so
instead of just libamdocl64.so
)
The OpenCl 2.0 support ROCm 4.2 provides isn't entirely worthless even though it doesn't work with Blender and a few other desktop application. It does work fine with LibreOffice Calc, you can run benchmarks in LuxMark and you can mine digital currencies like Ethereum using ethminer
. It may be worth the trouble of installing it if you have one of the AMD graphics cards it supports.
The officially supported AMD graphics cards are, as of ROCm 4.2:
- Vega (GFX9) GPUs (RX Vega 64, Radeon Instict MI25, Radeon Instinct MI 50, Radeon VII)
- CDNA GPUs (MI100)
There's also "unoffial" perfectly fine support for
- Polaris (GFX8) GPUs. Those would be the RX 400/500 series GPUs from some years back
The ROCm 4.2 release notes also list "unofficial" support for the older Hawaii (GFX7) GPUs such as the R9 390X and the FirePro W9100. ROCm, and the ROCm OpenCL package, hasn't worked with Hawaii GPUs for quite some time, and that's still the case with 4.2. It seems like someone at AMD tested an old ROCm version on a Hawaii GPU years ago and added it to the release notes, and now someone else at AMD keeps blindly copy-pasting it into new release notes even though ROCm hasn't worked with it for more than a year.
There is absolutely no support, "official" or not, for ROCm 4.2 on newer AMD graphics cards like the Radeon RX 5000 and RX 6000 series GPUs (GFX10/GFX10.3) - yet the OpenCL package from ROCm works fine on those newer totally "unsupported" AMD graphics cards. Radeon Open Compute 4.2 is worth a try if you just want OpenCL support on a brand new AMD GPU, though you shouldn't expect that the rest of the ROCm compute stack works at it should (or at all).
You can read the entirety of the ROCm 4.2 at the top-level page on the GitHub repository at github.com/RadeonOpenCompute/ROCm.
Enable comment auto-refresher
Anonymous (cabe4f8a)
Permalink |
Yuri
Anonymous (e4468cc0)
Permalink |
Yuri
Anonymous (e4468cc0)
Anonymous (cabe4f8a)
Permalink |
Anonymous (ce17d095c1)
Permalink |