AMD Will Continue Maintaining Multiple Compute Stacks For Linux
AMD's longtime Linux/open-source guru John Bridgman and frequent Phoronix Forums contributor recently was commenting in this thread about the Radeon Linux compute support. Among the interesting takeaways:
- For those not familiar with the ROCm vs. PAL stack differences, here's how John sums it up, "ROCm is our compute-focused stack, using hardware features initially developed for HSA then extended to mid-high end dGPUs. PAL is a more conventional graphics/compute stack, with command submission via ioctl to the kernel DRM driver."
- Given that and the hardware differences, while ROCm has been making great progress recently especially with mainline kernel dGPU support, it's not going to be used by all future hardware. "PAL will be implemented on all new hardware, integrated or discrete, large or small, while ROCm will be implemented mostly on the larger parts."
- But the older "Orca" OpenCL driver will likely be dropped moving forward. This is the older OpenCL driver long used by AMDGPU-PRO/fglrx. "OpenCL for all of the new chips will be using PAL rather than Orca so eventually PAL will completely replace Orca for sure. Shorter term plans are still being worked out, but the fact that we already have an open source implementation of PAL in AMDVLK is an attractive argument for broader use of PAL."
- ROCm generally can be faster than the PAL-based driver, "Quick answer is that the ROCm stack can run a bit faster (since it makes use of HSA hardware features) but the PAL stack can run on all our hardware, not just parts explicitly designed with full HSA/ROCm hardware support. In general you will see the ROCm paths tested more heavily on ROCm stack releases while testing for the amdgpu/pro packaged releases will focus on PAL paths."
See the aforelinked thread for more interesting discussion and commentary. The Portable Abstraction Layer (PAL) code is open-source as part of the AMDVLK project.