From 9ba6812003f9c65a30e2f8c7cc5232018aa8f94a Mon Sep 17 00:00:00 2001 From: Donato Capitella Date: Sun, 7 Dec 2025 09:30:14 +0000 Subject: [PATCH] feat: upgrade ROCm to 7.1.1 and update associated tooling and documentation --- .github/workflows/build_and_publish.yml | 2 +- README.md | 20 ++-- benchmark/generate_results.json.py | 2 +- benchmark/run_benchmarks.sh | 4 +- benchmark/run_rpc_benchmarks.sh | 12 +- refresh-toolboxes.sh | 4 +- toolboxes/Dockerfile.rocm-7.1 | 111 ------------------ toolboxes/Dockerfile.rocm-7.1.1 | 111 ++++++++++++++++++ ...-rocwmma => Dockerfile.rocm-7.1.1-rocwmma} | 88 +++++++------- 9 files changed, 177 insertions(+), 177 deletions(-) delete mode 100644 toolboxes/Dockerfile.rocm-7.1 create mode 100644 toolboxes/Dockerfile.rocm-7.1.1 rename toolboxes/{Dockerfile.rocm-7.1-rocwmma => Dockerfile.rocm-7.1.1-rocwmma} (50%) diff --git a/.github/workflows/build_and_publish.yml b/.github/workflows/build_and_publish.yml index 37d038c..87adb9d 100644 --- a/.github/workflows/build_and_publish.yml +++ b/.github/workflows/build_and_publish.yml @@ -28,7 +28,7 @@ jobs: IN='${{ inputs.backends }}' if [[ "$IN" == "all" || -z "$IN" ]]; then - JSON='["rocm-6.4.4","rocm-6.4.4-rocwmma","rocm-7.1","rocm-7.1-rocwmma","rocm-7alpha","rocm-7alpha-rocwmma","rocm-7alpha-rocwmma-improved","rocm-7rc","rocm-7rc-rocwmma","vulkan-amdvlk","vulkan-radv"]' + JSON='["rocm-6.4.4","rocm-6.4.4-rocwmma","rocm-7.1.1","rocm-7.1.1-rocwmma","rocm-7alpha","rocm-7alpha-rocwmma","rocm-7alpha-rocwmma-improved","rocm-7rc","rocm-7rc-rocwmma","vulkan-amdvlk","vulkan-radv"]' else # Remove spaces and build JSON array from comma list IN_CLEAN=$(echo "$IN" | tr -d '[:space:]') diff --git a/README.md b/README.md index 7d14b53..188133b 100644 --- a/README.md +++ b/README.md @@ -43,11 +43,11 @@ toolbox create llama-vulkan-radv \ -- --device /dev/dri --group-add video --security-opt seccomp=unconfined ``` -**Command — Create ROCm toolbox (6.4.4/7.1/7rc/7alpha)** +**Command — Create ROCm toolbox (6.4.4/7.1.1/7rc/7alpha)** ```sh -toolbox create llama-rocm-7.1-rocwmma \ - --image docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-7.1-rocwmma \ +toolbox create llama-rocm-7.1.1-rocwmma \ + --image docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-7.1.1-rocwmma \ -- --device /dev/dri --device /dev/kfd \ --group-add video --group-add render --group-add sudo --security-opt seccomp=unconfined ``` @@ -105,7 +105,7 @@ llama-cli --no-mmap -ngl 999 -fa 1 -m models/qwen3-coder-30B-A3B/BF16/Qwen3-Code **Command — Refresh specific toolboxes** ```bash -./refresh-toolboxes.sh llama-vulkan-radv llama-rocm-7.1-rocwmma +./refresh-toolboxes.sh llama-vulkan-radv llama-rocm-7.1.1-rocwmma ``` ## 1. Llama.cpp Compiled for Every Backend @@ -125,8 +125,8 @@ You can check the containers on DockerHub: https://hub.docker.com/r/kyuz0/amd-st | `vulkan-radv` | Vulkan (Mesa RADV) | Most stable and compatible. Recommended for most users and all models. | | `rocm-6.4.4` | ROCm 6.4.4 (HIP) + hipBLASLt* | Latest stable build for ROCm 6.4.4, performs very well with most model architectures/quants. | | `rocm-6.4.4-rocwmma` | ROCm 6.4.4 + ROCWMMA + hipBLASLt* | 6.4.4 with ROCWMMA enabled for better flash attention on RDNA3+/CDNA. | -| `rocm-7.1` | ROCm 7.1 GA (HIP) + hipBLASLt* | Current GA release for ROCm 7.x; improved scheduler and hipBLASLt kernels. | -| `rocm-7.1-rocwmma` | ROCm 7.1 GA + ROCWMMA + hipBLASLt* | 7.1 with ROCWMMA for maximum flash-attention throughput. | +| `rocm-7.1.1` | ROCm 7.1.1 GA (HIP) + hipBLASLt* | Current GA release for ROCm 7.x; improved scheduler and hipBLASLt kernels. | +| `rocm-7.1.1-rocwmma` | ROCm 7.1.1 GA + ROCWMMA + hipBLASLt* | 7.1.1 with ROCWMMA for maximum flash-attention throughput. | | `rocm-7rc` | ROCm 7.9 (HIP) + hipBLASLt* | Used to be the release candidate for ROCm 7.9.0 (hence the `rc` tag in the name), now released. | | `rocm-7rc-rocwmma` | ROCm 7.9 + ROCWMMA + hipBLASLt* | 7.9.0 build with ROCWMMA—useful for early flash-attention validation. | | `rocm-7alpha` | ROCm 7 Nightly (“7rc-alpha”) + hipBLASLt* | Tracks ROCm 7 nightly (alpha) preview with bleeding-edge patches. | @@ -180,10 +180,10 @@ toolbox create llama-rocm-7.1-rocwmma \ Ubuntu’s `toolbox` package still breaks GPU access, so follow gyhor’s [issue comment](https://github.com/kyuz0/amd-strix-halo-toolboxes/issues/16#issuecomment-3582028864) and use [Distrobox](https://github.com/89luca89/distrobox) instead: ```sh -distrobox create -n llama-rocm-7.1 \ - --image docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-7.1-rocwmma \ +distrobox create -n llama-rocm-7.1.1 \ + --image docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-7.1.1-rocwmma \ --additional-flags "--device /dev/kfd --device /dev/dri --group-add video --group-add render --security-opt seccomp=unconfined" -distrobox enter llama-rocm-7.1 +distrobox enter llama-rocm-7.1.1 llama-cli --list-devices ``` @@ -206,7 +206,7 @@ This will: You can also refresh just one or more toolboxes: ```bash -./refresh-toolboxes.sh llama-vulkan-radv llama-rocm-7.1-rocwmma +./refresh-toolboxes.sh llama-vulkan-radv llama-rocm-7.1.1-rocwmma ``` ### 2.2 Running models inside the toolboxes diff --git a/benchmark/generate_results.json.py b/benchmark/generate_results.json.py index bda3fbd..42d5d62 100644 --- a/benchmark/generate_results.json.py +++ b/benchmark/generate_results.json.py @@ -43,7 +43,7 @@ LONGCTX_RE = re.compile(r"longctx(\d+)", re.IGNORECASE) # --- Helpers --------------------------------------------------------------- ENV_CANON = { - "rocm7_1": "rocm7.1", + "rocm7_1_1": "rocm7.1.1", "rocm7_alpha": "rocm-7alpha", } diff --git a/benchmark/run_benchmarks.sh b/benchmark/run_benchmarks.sh index 8e4b5cb..5716b18 100755 --- a/benchmark/run_benchmarks.sh +++ b/benchmark/run_benchmarks.sh @@ -28,8 +28,8 @@ echo declare -A CMDS=( [rocm6_4_4]="toolbox run -c llama-rocm-6.4.4 -- /usr/local/bin/llama-bench" [rocm6_4_4-rocwmma]="toolbox run -c llama-rocm-6.4.4-rocwmma -- /usr/local/bin/llama-bench" - [rocm7.1]="toolbox run -c llama-rocm-7.1 -- /usr/local/bin/llama-bench" - [rocm7.1-rocwmma]="toolbox run -c llama-rocm-7.1-rocwmma -- /usr/local/bin/llama-bench" + [rocm7.1.1]="toolbox run -c llama-rocm-7.1.1 -- /usr/local/bin/llama-bench" + [rocm7.1.1-rocwmma]="toolbox run -c llama-rocm-7.1.1-rocwmma -- /usr/local/bin/llama-bench" [rocm-7alpha-rocwmma-improved]="toolbox run -c llama-rocm-7alpha-rocwmma-improved -- /usr/local/bin/llama-bench" [rocm-7alpha]="toolbox run -c llama-rocm-7alpha -- /usr/local/bin/llama-bench" [rocm-7alpha-rocwmma]="toolbox run -c llama-rocm-7alpha-rocwmma -- /usr/local/bin/llama-bench" diff --git a/benchmark/run_rpc_benchmarks.sh b/benchmark/run_rpc_benchmarks.sh index 8eb07b3..14c1aed 100755 --- a/benchmark/run_rpc_benchmarks.sh +++ b/benchmark/run_rpc_benchmarks.sh @@ -28,8 +28,8 @@ fi declare -A TOOLBOX_IMAGES=( [rocm6_4_4]="llama-rocm-6.4.4" [rocm6_4_4-rocwmma]="llama-rocm-6.4.4-rocwmma" - [rocm7_1]="llama-rocm-7.1" - [rocm7_1-rocwmma]="llama-rocm-7.1-rocwmma" + [rocm7_1_1]="llama-rocm-7.1.1" + [rocm7_1_1-rocwmma]="llama-rocm-7.1.1-rocwmma" [rocm7_rc]="llama-rocm-7rc" [rocm7_rc-rocwmma]="llama-rocm-7rc-rocwmma" [rocm7_alpha]="llama-rocm-7alpha" @@ -42,8 +42,8 @@ declare -A TOOLBOX_IMAGES=( declare -A CLIENT_CMDS=( [rocm6_4_4]="toolbox run -c llama-rocm-6.4.4 -- /usr/local/bin/llama-bench" [rocm6_4_4-rocwmma]="toolbox run -c llama-rocm-6.4.4-rocwmma -- /usr/local/bin/llama-bench" - [rocm7_1]="toolbox run -c llama-rocm-7.1 -- /usr/local/bin/llama-bench" - [rocm7_1-rocwmma]="toolbox run -c llama-rocm-7.1-rocwmma -- /usr/local/bin/llama-bench" + [rocm7_1_1]="toolbox run -c llama-rocm-7.1.1 -- /usr/local/bin/llama-bench" + [rocm7_1_1-rocwmma]="toolbox run -c llama-rocm-7.1.1-rocwmma -- /usr/local/bin/llama-bench" [rocm7_rc]="toolbox run -c llama-rocm-7rc -- /usr/local/bin/llama-bench" [rocm7_rc-rocwmma]="toolbox run -c llama-rocm-7rc-rocwmma -- /usr/local/bin/llama-bench" [rocm7_alpha]="toolbox run -c llama-rocm-7alpha -- /usr/local/bin/llama-bench" @@ -56,8 +56,8 @@ declare -A CLIENT_CMDS=( ENVIRONMENTS=( rocm6_4_4 rocm6_4_4-rocwmma - rocm7_1 - rocm7_1-rocwmma + rocm7_1_1 + rocm7_1_1-rocwmma rocm7_rc rocm7_rc-rocwmma rocm7_alpha diff --git a/refresh-toolboxes.sh b/refresh-toolboxes.sh index 47eec80..fef4fae 100755 --- a/refresh-toolboxes.sh +++ b/refresh-toolboxes.sh @@ -9,8 +9,8 @@ TOOLBOXES["llama-vulkan-amdvlk"]="docker.io/kyuz0/amd-strix-halo-toolboxes:vulka TOOLBOXES["llama-vulkan-radv"]="docker.io/kyuz0/amd-strix-halo-toolboxes:vulkan-radv --device /dev/dri --group-add video --security-opt seccomp=unconfined" TOOLBOXES["llama-rocm-6.4.4"]="docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-6.4.4 --device /dev/dri --device /dev/kfd --group-add video --group-add render --group-add sudo --security-opt seccomp=unconfined" TOOLBOXES["llama-rocm-6.4.4-rocwmma"]="docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-6.4.4-rocwmma --device /dev/dri --device /dev/kfd --group-add video --group-add render --group-add sudo --security-opt seccomp=unconfined" -TOOLBOXES["llama-rocm-7.1"]="docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-7.1 --device /dev/dri --device /dev/kfd --group-add video --group-add render --group-add sudo --security-opt seccomp=unconfined" -TOOLBOXES["llama-rocm-7.1-rocwmma"]="docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-7.1-rocwmma --device /dev/dri --device /dev/kfd --group-add video --group-add render --group-add sudo --security-opt seccomp=unconfined" +TOOLBOXES["llama-rocm-7.1.1"]="docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-7.1.1 --device /dev/dri --device /dev/kfd --group-add video --group-add render --group-add sudo --security-opt seccomp=unconfined" +TOOLBOXES["llama-rocm-7.1.1-rocwmma"]="docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-7.1.1-rocwmma --device /dev/dri --device /dev/kfd --group-add video --group-add render --group-add sudo --security-opt seccomp=unconfined" TOOLBOXES["llama-rocm-7rc"]="docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-7rc --device /dev/dri --device /dev/kfd --group-add video --group-add render --group-add sudo --security-opt seccomp=unconfined" TOOLBOXES["llama-rocm-7rc-rocwmma"]="docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-7rc-rocwmma --device /dev/dri --device /dev/kfd --group-add video --group-add render --group-add sudo --security-opt seccomp=unconfined" TOOLBOXES["llama-rocm-7alpha"]="docker.io/kyuz0/amd-strix-halo-toolboxes:rocm-7alpha --device /dev/dri --device /dev/kfd --group-add video --group-add render --group-add sudo --security-opt seccomp=unconfined" diff --git a/toolboxes/Dockerfile.rocm-7.1 b/toolboxes/Dockerfile.rocm-7.1 deleted file mode 100644 index 8f69aa1..0000000 --- a/toolboxes/Dockerfile.rocm-7.1 +++ /dev/null @@ -1,111 +0,0 @@ -# build stage -FROM registry.fedoraproject.org/fedora:43 AS builder - -# rocm 7.1 repo -RUN <<'EOF' -tee /etc/yum.repos.d/rocm.repo < /etc/ld.so.conf.d/local.conf \ - && echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf \ - && ldconfig \ - && cp -n /usr/local/lib/libllama*.so* /usr/lib64/ 2>/dev/null || true \ - && ldconfig - -# helper -COPY gguf-vram-estimator.py /usr/local/bin/gguf-vram-estimator.py -RUN chmod +x /usr/local/bin/gguf-vram-estimator.py - -# profile -RUN printf '%s\n' \ - 'export ROCBLAS_USE_HIPBLASLT=1' \ - > /etc/profile.d/rocm.sh && chmod +x /etc/profile.d/rocm.sh \ - && echo 'source /etc/profile.d/rocm.sh' >> /etc/bashrc - -# shell -CMD ["/bin/bash"] diff --git a/toolboxes/Dockerfile.rocm-7.1.1 b/toolboxes/Dockerfile.rocm-7.1.1 new file mode 100644 index 0000000..37664ef --- /dev/null +++ b/toolboxes/Dockerfile.rocm-7.1.1 @@ -0,0 +1,111 @@ +# build stage +FROM registry.fedoraproject.org/fedora:43 AS builder + +# rocm 7.1 repo +RUN <<'EOF' +tee /etc/yum.repos.d/rocm.repo < /etc/ld.so.conf.d/local.conf \ + && echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf \ + && ldconfig \ + && cp -n /usr/local/lib/libllama*.so* /usr/lib64/ 2>/dev/null || true \ + && ldconfig + +# helper +COPY gguf-vram-estimator.py /usr/local/bin/gguf-vram-estimator.py +RUN chmod +x /usr/local/bin/gguf-vram-estimator.py + +# profile +RUN printf '%s\n' \ + 'export ROCBLAS_USE_HIPBLASLT=1' \ + > /etc/profile.d/rocm.sh && chmod +x /etc/profile.d/rocm.sh \ + && echo 'source /etc/profile.d/rocm.sh' >> /etc/bashrc + +# shell +CMD ["/bin/bash"] diff --git a/toolboxes/Dockerfile.rocm-7.1-rocwmma b/toolboxes/Dockerfile.rocm-7.1.1-rocwmma similarity index 50% rename from toolboxes/Dockerfile.rocm-7.1-rocwmma rename to toolboxes/Dockerfile.rocm-7.1.1-rocwmma index e4db3d8..aabf486 100644 --- a/toolboxes/Dockerfile.rocm-7.1-rocwmma +++ b/toolboxes/Dockerfile.rocm-7.1.1-rocwmma @@ -4,9 +4,9 @@ FROM registry.fedoraproject.org/fedora:43 AS builder # rocm 7.1 repo RUN <<'EOF' tee /etc/yum.repos.d/rocm.repo < /etc/ld.so.conf.d/local.conf \ - && echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf \ - && ldconfig \ - && cp -n /usr/local/lib/libllama*.so* /usr/lib64/ 2>/dev/null || true \ - && ldconfig + && echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf \ + && ldconfig \ + && cp -n /usr/local/lib/libllama*.so* /usr/lib64/ 2>/dev/null || true \ + && ldconfig # helper COPY gguf-vram-estimator.py /usr/local/bin/gguf-vram-estimator.py