[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: