Skip to content

Add CI targets for ROCm 7.14 - #25775

Merged
CISC merged 2 commits into
ggml-org:masterfrom
superm1:master
Aug 10, 2026
Merged

Add CI targets for ROCm 7.14#25775
CISC merged 2 commits into
ggml-org:masterfrom
superm1:master

Conversation

@superm1

@superm1 superm1 commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Overview

ROCm 7.14 is the first production release using TheRock build system. It can be installed using multi-arch deliverables from wheels, debs, rpms, tarballs or runfiles.

Add llama.cpp targets for both Linux and Windows to allow usage.

Additional information

Here are CI runs for the new Linux and Windows targets

Requirements

I manually created these changes based upon the previous targets.

CC @CISC

@superm1
superm1 requested a review from a team as a code owner July 16, 2026 13:09
@github-actions github-actions Bot added the devops improvements to build systems and github actions label Jul 16, 2026
@superm1

superm1 commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

CC @IMbackK as well from previous reviews.

@IMbackK IMbackK self-assigned this Jul 17, 2026
@IMbackK

IMbackK commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

yeah with 7.14 this is now the right thing to do. ill review this sunday

@ggerganov

Copy link
Copy Markdown
Member

If I am reading this correctly, the Windows cache is ~4GB: https://github.com/superm1/llama.cpp/actions/runs/29467499221/job/87532475193#step:23:18

This is too big to be cached.

@superm1

superm1 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

If I am reading this correctly, the Windows cache is ~4GB: https://github.com/superm1/llama.cpp/actions/runs/29467499221/job/87532475193#step:23:18

This is too big to be cached.

Great catch.

I'm pretty sure I see the problem. When I copy-pasta'ed from the documentation I accidentally got the device libraries (which aren't need for build):

          python -m pip install --index-url https://repo.amd.com/rocm/whl-multi-arch/ "rocm[libraries,devel,device-all]"

I did not make that mistake on Ubuntu build.

          python -m pip install --index-url https://repo.amd.com/rocm/whl-multi-arch/ "rocm[libraries,devel]"

I'll adjust and this should sort it out.

@superm1
superm1 force-pushed the master branch 2 times, most recently from 9122605 to 61cbc9c Compare July 17, 2026 13:49
@superm1

superm1 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

To avoid the cache on the 4GB binary on my fork I had to rename the key.

@IMbackK IMbackK left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As we have problems with ci congestion we probubly dont want to build for both 7.14 and 7.2.

7.14 also includes support for gfx90c and gfx900 which we thus do want to build for.

@superm1
superm1 force-pushed the master branch 2 times, most recently from 7eced8f to fc237f0 Compare July 20, 2026 15:09
@superm1

superm1 commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

I've updated it, thanks. Here are the new job outputs.

https://github.com/superm1/llama.cpp/actions/runs/29753928301

@apparle

apparle commented Jul 23, 2026

Copy link
Copy Markdown

7.14 also includes support for gfx1103 and it should also be added to gpu_targets.

@superm1
superm1 force-pushed the master branch 2 times, most recently from 53b2c54 to 23eafcd Compare July 23, 2026 15:28
@IMbackK

IMbackK commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

afaik even though they build the gfx9 targets for windows, none of those can possibly work, as the kernel driver dosent support them, so we should also avoid building those objects.

@superm1

superm1 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

7.14 also includes support for gfx1103 and it should also be added to gpu_targets.

I've added this. I was also missing 1153.

FWIW In a similar PR to another ggml project it was noted that we should be using a pin with pip so that this doesn't move with the next ROCm release.

Now I'm using:

          python -m pip install --index-url https://repo.amd.com/rocm/whl-multi-arch/ "rocm[libraries,devel]==${ROCM_VERSION}"

@superm1

superm1 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

afaik even though they build the gfx9 targets for windows, none of those can possibly work, as the kernel driver dosent support them, so we should also avoid building those objects.

OK, I'll adjust.

@superm1
superm1 force-pushed the master branch 4 times, most recently from 380cf93 to 8df3f3d Compare July 23, 2026 17:41
@superm1

superm1 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

@IMbackK

IMbackK commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Great ill take a look at the binaries the weekend

@IMbackK IMbackK left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Binaries look good. Everyhing is fine from the rocm side
@CISC could you take a look from ci side.

@metala

metala commented Jul 30, 2026

Copy link
Copy Markdown

I've noticed performance downgrade on gfx1201 when switching from 7.2.4 to 7.14.

Edit. using a custom/updated rocm.Dockerfile

llama.cpp: (tag: b10184)

./llama-bench -ngl 99 -sm layer -fa on -m /models/gguf/Qwen3.6-27B-Q8_0.gguf -p 1024 -p 2048 -p 4096 -p 8192 -p 16384 -n 512 -r 3
ggml_cuda_init: found 2 ROCm devices (Total VRAM: 65248 MiB):
  Device 0: AMD Radeon AI PRO R9700, gfx1201 (0x1201), VMM: no, Wave Size: 32, VRAM: 32624 MiB
  Device 1: AMD Radeon AI PRO R9700, gfx1201 (0x1201), VMM: no, Wave Size: 32, VRAM: 32624 MiB

Kernel: Linux 7.1.3+deb14-amd64
GPUs are running on PCIe4.0 x8/x8 bifurcation on Zen3 CPU.

ROCm 7.2.4

model size params backend ngl fa test t/s
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 1 pp1024 1620.71 ± 30.09
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 1 pp2048 1897.21 ± 2.55
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 1 pp4096 2001.76 ± 2.77
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 1 pp8192 1952.42 ± 3.76
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 1 pp16384 1757.94 ± 2.28
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 1 tg512 19.22 ± 0.01

ROCm 7.14

model size params backend ngl fa test t/s
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 1 pp1024 1618.55 ± 1.08
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 1 pp2048 1870.10 ± 2.33
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 1 pp4096 1969.74 ± 3.11
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 1 pp8192 1913.75 ± 4.50
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 1 pp16384 1719.52 ± 1.81
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 1 tg512 19.18 ± 0.03

split-mode: none (single-GPU)
ROCm 7.2.4

model size params backend ngl sm fa test t/s
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 none 1 pp1024 1100.62 ± 1.00
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 none 1 pp2048 1077.46 ± 0.75
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 none 1 pp4096 1032.18 ± 1.92
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 none 1 pp8192 954.66 ± 1.20
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 none 1 pp16384 838.50 ± 0.26
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 none 1 tg512 19.38 ± 0.02

ROCm 7.14

model size params backend ngl sm fa test t/s
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 none 1 pp1024 1096.49 ± 0.77
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 none 1 pp2048 1072.14 ± 1.71
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 none 1 pp4096 1025.32 ± 2.34
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 none 1 pp8192 944.36 ± 2.18
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 none 1 pp16384 822.88 ± 1.11
qwen35 27B Q8_0 26.62 GiB 26.90 B ROCm 99 none 1 tg512 19.36 ± 0.01

@superm1

superm1 commented Jul 31, 2026

Copy link
Copy Markdown
Contributor Author

I've noticed performance downgrade on gfx1201 when switching from 7.2.4 to 7.14.

Edit. using a custom/updated rocm.Dockerfile

Can you please qualify that? Was it the exact same llama.cpp build?

How is it measured and how much of a drop?

@metala

metala commented Jul 31, 2026

Copy link
Copy Markdown

Can you please qualify that? Was it the exact same llama.cpp build?

b10184

How is it measured and how much of a drop?

llama-bench and llama-benchy. I've added llama-bench results above.

My benchmarks show consistently 1% to 3% drop in tokens/s in prompt processing. The token generation is not affected. I've also tested Ubuntu 24.04 (the base image used in 7.2.4) with ROCm 7.14 and it got even worse.

I will try to publish the Dockerfile.
7.2.4: https://pgit.metala.org/llama.cpp.git/diff/.devops/rocm.Dockerfile?h=rocm
7.14: https://pgit.metala.org/llama.cpp.git/diff/.devops/rocm.Dockerfile?h=rocm7.14

Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml
@superm1
superm1 force-pushed the master branch 2 times, most recently from 5db6a19 to 78ae4a9 Compare August 10, 2026 00:49
Comment thread .github/workflows/release.yml Outdated
ROCm 7.14 is the first production release using TheRock build system.
It can be installed using multi-arch deliverables from wheels, debs,
rpms, tarballs or runfiles.

Adjust ROCm targets for Linux and Windows to use this instead.
Comment thread .github/workflows/release.yml
Move the shared windows-setup-rocm composite action from the HIP SDK PRO
Edition installer to the multi-arch ROCm wheels (rocm[libraries,devel]).
The wheel-install logic that previously lived inline in release.yml is now
in the shared action, and both build-cache.yml and release.yml call it.

Also migrate the build-cuda-windows.yml hip job to the same wheel-based
layout (cache path/key, rocm-sdk environment setup, llvm/bin compiler
paths) so it keeps working after the action's contract changed; drop its
now-unused ROCm 7.2.1 rocWMMA download and stale include path.
@CISC

CISC commented Aug 10, 2026

Copy link
Copy Markdown
Member

@superm1 Can you cancel all the old release jobs so the last one can start?

@superm1

superm1 commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

Yup; just did. Looks like the one I changed for Windows passed now too.

https://github.com/superm1/llama.cpp/actions/runs/31397302547/job/93503759627

@CISC
CISC merged commit 0666ad2 into ggml-org:master Aug 10, 2026
3 checks passed
@ahoplock

Copy link
Copy Markdown

Lost my ROCm0 device in any version since this released as b10356 (Windows 10).

$ llama-server --version
version: 10355 (dd1ea5243)
built with Clang 20.1.8 for Windows x86_64
$ llama-server --list-devices
Available devices:
  ROCm0: AMD Radeon RX 9070 XT (16304 MiB, 16142 MiB free)
  Vulkan0: AMD Radeon RX 9070 XT (16304 MiB, 15416 MiB free)
$ llama-server --version
version: 10356 (0666ad2b2)
built with Clang 20.1.8 for Windows x86_64
$ llama-server --list-devices
Available devices:
  Vulkan0: AMD Radeon RX 9070 XT (16304 MiB, 15416 MiB free)

@superm1

superm1 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor Author

Lost my ROCm0 device in any version since this released as b10356 (Windows 10).

$ llama-server --version
version: 10355 (dd1ea5243)
built with Clang 20.1.8 for Windows x86_64
$ llama-server --list-devices
Available devices:
  ROCm0: AMD Radeon RX 9070 XT (16304 MiB, 16142 MiB free)
  Vulkan0: AMD Radeon RX 9070 XT (16304 MiB, 15416 MiB free)
$ llama-server --version
version: 10356 (0666ad2b2)
built with Clang 20.1.8 for Windows x86_64
$ llama-server --list-devices
Available devices:
  Vulkan0: AMD Radeon RX 9070 XT (16304 MiB, 15416 MiB free)

What version of ROCm are you using? Is it in PATH?

@ahoplock

ahoplock commented Aug 11, 2026

Copy link
Copy Markdown

What version of ROCm are you using? Is it in PATH?

Never mind...AMD's 7.14 install guide bricked my system path.

@ahoplock

Copy link
Copy Markdown

I guess never mind my never mind as it now finds the device but fails to get memory.

$ llama-server --list-devices
Available devices:
  ROCm0: AMD Radeon RX 9070 XT (0 MiB, 0 MiB free)
0.00.153.916 W ggml_backend_cuda_device_get_memory: cudaMemGetInfo failed (invalid argument), returning 0/0
  Vulkan0: AMD Radeon RX 9070 XT (16304 MiB, 15416 MiB free)

@MrDrMcCoy

Copy link
Copy Markdown

I've been having an issue for a while now where newer ROCm releases refuse to touch VRAM and insist on slowly streaming from system RAM. Only thing left for me to really try is fully wiping my system and starting fresh, which I would prefer to not have to do.

@superm1

superm1 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor Author

I guess never mind my never mind as it now finds the device but fails to get memory.

$ llama-server --list-devices
Available devices:
  ROCm0: AMD Radeon RX 9070 XT (0 MiB, 0 MiB free)
0.00.153.916 W ggml_backend_cuda_device_get_memory: cudaMemGetInfo failed (invalid argument), returning 0/0
  Vulkan0: AMD Radeon RX 9070 XT (16304 MiB, 15416 MiB free)

This sounds like the behavior of having a system-wide hip dll

@ahoplock

Copy link
Copy Markdown

This sounds like the behavior of having a system-wide hip dll

Thanks for pointing me in the right direction. Looks like C:\Windows\System32\amdhip64_7.dll (guessing from the AMD Adrenalin driver based off of file creation dates) was getting loaded, so I just copied the one from C:\TheRock\build\bin over to where my llama-server lives and it loads models as before.

I have all of the HIP related env vars/paths set from AMD's ROCm 7.14 install guide, so I'm not sure what's wrong.

huaxel pushed a commit to huaxel/CachyLLama that referenced this pull request Aug 12, 2026
* Switch ROCm from 7.2.1 to 7.14

ROCm 7.14 is the first production release using TheRock build system.
It can be installed using multi-arch deliverables from wheels, debs,
rpms, tarballs or runfiles.

Adjust ROCm targets for Linux and Windows to use this instead.

* ci: switch all other Windows ROCm jobs to ROCm 7.14 wheels

Move the shared windows-setup-rocm composite action from the HIP SDK PRO
Edition installer to the multi-arch ROCm wheels (rocm[libraries,devel]).
The wheel-install logic that previously lived inline in release.yml is now
in the shared action, and both build-cache.yml and release.yml call it.

Also migrate the build-cuda-windows.yml hip job to the same wheel-based
layout (cache path/key, rocm-sdk environment setup, llvm/bin compiler
paths) so it keeps working after the action's contract changed; drop its
now-unused ROCm 7.2.1 rocWMMA download and stale include path.
brittlewis12 pushed a commit to brittlewis12/llama.cpp that referenced this pull request Aug 17, 2026
* Switch ROCm from 7.2.1 to 7.14

ROCm 7.14 is the first production release using TheRock build system.
It can be installed using multi-arch deliverables from wheels, debs,
rpms, tarballs or runfiles.

Adjust ROCm targets for Linux and Windows to use this instead.

* ci: switch all other Windows ROCm jobs to ROCm 7.14 wheels

Move the shared windows-setup-rocm composite action from the HIP SDK PRO
Edition installer to the multi-arch ROCm wheels (rocm[libraries,devel]).
The wheel-install logic that previously lived inline in release.yml is now
in the shared action, and both build-cache.yml and release.yml call it.

Also migrate the build-cuda-windows.yml hip job to the same wheel-based
layout (cache path/key, rocm-sdk environment setup, llvm/bin compiler
paths) so it keeps working after the action's contract changed; drop its
now-unused ROCm 7.2.1 rocWMMA download and stale include path.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devops improvements to build systems and github actions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants