AMD ROCm 4.1 Is Released With A Fine New Notice Saying "GUI-Based software" Is "Not Supported"
The latest AMD Radeon Open Compute (ROCm) stack brings a few new features for AMDs data-center customers. OpenCL, which is what most GNU/Linux desktop applications use for GPU compute, is not even mentioned in the "What's New" section of the release notes. There is, instead, a shiny new notice on the ROCm documentation website saying "GUI-based software applications are currently not supported".
LuxMark 3.1 benchmarking a RX 470 GPU using AMD Radeon ROCm 4.1.
Radeon Open Compute (ROCm) is a big GPU compute library that provides a wide range of GPU compute libraries with support for well-known standards like OpenCL and lesser-known AMD-specific libraries like the "ROCm Math and Communication Libraries", the HIP C++ Runtime API and many more.
ROCm 4.1 was released on March 24th following a unusually long pause since ROCm 4.0 was released on January 26th, 2021. New ROCm releases have historically arrived once or twice a month.
What's New.. For Desktop Users
ROCm is mostly focused on big enterprise clients who are using the more AMD-specific libraries for large-scale data-center deployments. GNU/Linux desktop users, who are generally mostly interested in good OpenCL support, seems to be a mere after-thought, if that, for the ROCm developers.
A few vocal ROCm desktop users got very upset when ROCm 4.0 broke support for DaVinci Resolve 16 and 17. The now sligthly old ROCm v3.3, from April 2020, is still your best bet if you want OpenCL support in DaVinci Resolve.
The ROCm team quickly closed the bug about DaVinci Resolve being broken with ROCm 4.0 with no explanation. That led to speculation about AMDs commitment to desktop users interested in compute.
AMD spokesperson John Bridgman offered this story in the GitHub issue tracker nearly three months after the bug was opened:
"DaVinci Resolve gets broken because it's not one of the apps we include in our Linux workstation/consumer QA test plans. Other apps were given priority, and we have been very resource-constrained for the last several years so expanding QA coverage was not an option except to the extent it could be done via automation.
Now that our financial situation is improving we are able to hire more people in a variety of areas and so this does seem like a good time to revisit the QA test plans. That is not quick and easy, however, since the QA coverage is determined in large part by our business unit's understanding of what their customers use, and it's always easier for them to get information from large corporate users (who might have 10,000 systems all running the same app) than from individual users who might collectively have even more systems running a different app but who are much more difficult to survey."
It would appear that AMD spokesperson John Bridgman was not entirely in sync with the ROCm team when he made that statement. The ROCm team made this fine promise three days later:
"We are going to rephrase the text about GUI apps in our rocm documentation.
We have come up with some plans to handle GUI apps in a way."
"ROCmSupport" kept its promise and updated the ROCm documentation just in the for ROCm 4.1s release. The front page of ROCms documentation website now states:
"The AMD ROCm™ open software platform is a compute stack for headless system deployments. GUI-based software applications are currently not supported."
That's one way to "handle GUI apps"...
AMDs new policy for "GUI apps" relying on compute capabilities is not mentioned in the ROCm 4.1 release notes, nor is it mentioned anywhere else beyond the tiny notice on the front page of the ROCm documentation website.
OpenCL performance in graphical desktop applications, to the degree those work, is pretty much time same in ROCm 4.1 as it was in previous versions. ROCm 4.1 performance is slightly slower in two of the three LuxMark benchmarks.
It is hard to guess if "GUI-based software applications are currently not supported" means that graphical applications will be officially supported by AMD at a later date or if it is a new permanent policy.
What's New.. For Data-Center Customers
ROCm 4.1 introduces a new "TargetID" that allows compute programs to be compiled against multiple configuration targets, not just one.
A Grafana plugin has been made available to the The ROCm Data Center tool.
The ROCm "Math and Communication Libraries" rocSPARSE and rocSOLVER have gained support for several new libraries and routines. You can read about those at rocsparse.readthedocs.io/en/latest/ and rocsolver.readthedocs.io/en/latest/.
hipCUB has a new iterator called
HIP has gained a new
hipEventDisableTiming flag and "Cooperative Group Functions".
There's a small list of usability enhancements to the OpenMP API support ROCm provides.
See AMD ROCm Release Notes v4.1.pdf (501 KB) for a complete list of what's new for data-center customers in ROCm 4.1.
What's Not New..
There is still no support for the Radeon RX5000 and RX 6000 series graphics cards (aka GFX10.x/RDNA/RDNA2 GPUs) in ROCm 4.1. It seems a bit odd that nothing newer than Vega (GFX9) GPUs are supported. They, along with CDNA MI100 chips (special Instinct data-center cards), are also the only GPUs that are officially supported. Older GPUs like the GFX8 Polaris line (RX 4xx and RX 5xx) are only listed as "enabled", they are not "supported".
Acquiring The Technology
ROCm is now only supported for headless machines using one of the following operating systems:
- Ubuntu 20.04.1 (5.4 and 5.6-oem) and 18.04.5 (Kernel 5.4)
- CentOS 7.9 (3.10.0-1127) & RHEL 7.9 (3.10.0-1160.6.1.el7) (Using devtoolset-7 runtime support)
- CentOS 8.3 (4.18.0-193.el8) and RHEL 8.3 (4.18.0-193.1.1.el8) (devtoolset is not required)
- SLES 15 SP2
It can be installed on other operating systems like Fedora and Ubuntu-derivatives, but you may run into a problem or two installing it. Wizards can solve those but you may have a hard time if you're clueless. You may, for example, find that OpenCL isn't working because the ROCm packages create vendor file in
/etc/OpenCL/vendors/amdocl64_40100.icd that does not contain the required full path to the
libamdocl64.so library. You will probably have to hand-edit that file.
There's only source code listed on the GitHub releases page for ROCm 4.1 so you will have to refer to the documentation websites "ROCm Installation" page to learn how to get binary packages for supported operating systems.