Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 18+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium.
Radeon ROCm 4.5 Released With HIP Runtime Compilation, Unified Memory Support
First up when it comes to installing ROCm 4.5, they have added support for using the amdgpu-install / amdgpu-uninstall scripts just like the Radeon Software for Linux packaged driver. The amdgpu-install-based process aims to streamline the Radeon Open Compute install process and make it just like installing the packaged driver driver. It also makes it easy to uninstall too.
The amdgpu-install based ROCm 4.5 installation supports OpenCL, HIP run-times, ROCm libraries, ROCm applications, the ROCm compiler and device libraries, and the ROCr run-time and thunk. The sources and existing distribution-specific packaging also remain available for ROCm 4.5.
One of the big feature additions in ROCm 4.5 is Unified Memory Support by way of Heterogeneous Memory Management (HMM). The unified memory lets applications map and migrate data between the CPU and GPU without needing explicit copies. The HMM / Unified Memory Support work has been a long time coming especially with the HMM kernel-side changes over the years, so good to see with ROCm 4.5 it apparently being in good shape.
By default ROCm 4.5 uses a new HIP "Direct Dispatch" model to avoid the conventional producer-consumer behavior where commands are enqueued to a command queue and then processed separately with a per-stream worker thread. With HIP Direct Dispatch, the run-time directly queues a packet from the user-mode queue to the GPU.
ROCm 4.5 also features extended support for HIP Graph, support for HIP run-time complication (hipRTC) for the possibility of more optimizations compared to offline static compilation, ROCm SMI's "--setpoweroverdrive" can be used for just lowering the GPU's power cap without enabling all OverDrive functionality, better OpenMP support, and other changes.
Overall, Radeon ROCm 4.5 is another good update and working to make this open-source compute stack a very viable alternative to the closed NVIDIA CUDA world. The official support for ROCm is currently just for GFX9/Vega and MI100 CDNA GPUs. There remains unofficial support for GFX8/Polaris and GFX7/Hawaii GPUs.
The frustrating element is still not having any support for "Navi" RDNA/RDNA2 graphics processors. AMD routinely has said they are working on enabling RDNA/RDNA2 graphics processors for ROCm but is clearly not a priority for them as they work on feature development for ROCm to compete with CUDA and ensuring their Instinct accelerators are primed for winning in the super-computing/HPC space. I have not seen any public indication when they intend to have RDNA(2) support in place for ROCm but unfortunate for those developers that may want to experiment with AMD's open-source compute stack but lacking the necessary hardware. This is an area where NVIDIA CUDA is in much stronger shape with their wide range of supported graphics processors.
AMD ROCm 4.5 can be downloaded from GitHub.