Re: ROCm 7.0 and LLVM 21
Hello,
I saw that an updated LLVM 21 was pushed to unstable, although it is
still stuck on missing build dependencies. I believe that is the main
barrier at this point to moving ROCm 6 to unstable.
On 2025-09-19 21:56, Cordell Bloor wrote:
I had a brief chat with folks on the Debian LLVM IRC and I heard that
it's possible that LLVM 20 won't be making its way to unstable. I'll
look at updating the ROCm stack to be based on LLVM 21 instead.
Neither is currently available on unstable, but both are available in
experimental. To do this, I will probably have to update rocm-llvm to
7.0.0.
I still need to update d/copyright, but the technical portion of my
update to rocm-llvm 7.0.1 went smoothly. While comgr is always
difficult, I found it easy to backport patches from the upstream
development branch to build comgr against newer LLVM versions. I've
pushed the changes to my fork.
The copyright update for rocm-llvm 7.0.1 might take a couple hours
tomorrow as it appears that some parts of the rocm-llvm upstream were
reliscenced to match upstream LLVM (Expat => Apache 2.0 with LLVM
Exceptions). With that said, I haven't looked into the details yet.
I will not be updating the rest of the stack to ROCm 7.0 until we've
finished with ROCm 6.4. While I have no concerns about using a newer
compiler I do worry about using the HIP Runtime or BLAS stack from ROCm
7 with libraries that were written for ROCm 6. I'm not rushing to adopt
the rest of the ROCm 7 stack until we have a stable ROCm 6 stack in Testing.
There are a few nice compiler features already available in LLVM 20,
including `--offload-compress` and 'experimental' support for generic
targets (via `-mcode-object-version=6 --offload-arch=gfx-11-generic`).
However, the latter is marked as experimental. As far as I can tell,
the generic target support is complete in LLVM 20 but the experimental
warning exists because runtime support was not available at the time.
It works fine as far as I can tell. With that said, I would suggest
only adopting `--offload-compress` with LLVM 20. The adoption of
generic targets can begin with LLVM 21.
I can confirm that generic targets are available with the LLVM 21
compiler. Once we have ROCm 6.4 settled in on Testing, I would like to
start using those on Unstable and/or Experimental.
Sincerely,
Cory Bloor
Reply to: