Commit 583926e3a for llama.cpp
commit 583926e3ac2f97895420eb07e90fb46ef52f6453
Author: Sigbjørn Skjæret <sigbjorn.skjaeret@huggingface.co>
Date: Wed Sep 16 08:23:58 2026 +0200
ci : add self-hosted webgpu to hf-jobs (#28712)
* add self-hosted vulkan and webgpu to hf-jobs
* try t4-medium
* cont : adjust cpu backend threads
* try t4-small again
* restore cm jobs
---------
Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
diff --git a/.github/workflows/build-self-hosted.yml b/.github/workflows/build-self-hosted.yml
index 1337a0ed5..fd3722bcf 100644
--- a/.github/workflows/build-self-hosted.yml
+++ b/.github/workflows/build-self-hosted.yml
@@ -124,6 +124,7 @@ jobs:
GG_BUILD_ROCM=1 GG_BUILD_AMDGPU_TARGETS=gfx1151 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
gpu-vulkan-nvidia-cm:
+ # runs-on: "hf-jobs-t4-small:ubuntu26_04"
runs-on: [self-hosted, Linux, NVIDIA]
steps:
@@ -131,13 +132,44 @@ jobs:
id: checkout
uses: actions/checkout@v6
+ # - name: Install dependencies
+ # run: |
+ # sudo apt update
+ # sudo apt install -y build-essential cmake libxcb-xinput0 libxcb-xinerama0 libxcb-cursor-dev libvulkan-dev glslc spirv-headers vulkan-tools mesa-vulkan-drivers libglvnd0 libgl1 libglx0 libegl1 libgles2 libssl-dev time unzip wget python3 python3-venv python3-pip
+
+ # - name: ccache
+ # uses: ggml-org/ccache-action@v1.2.24
+ # with:
+ # restore: false
+ # save: false
+
+ # - name: ccache-buckets-restore
+ # uses: ./.github/actions/ccache-buckets
+ # with:
+ # key: self-hosted-vulkan-nvidia-cm
+ # folder: llama.cpp
+ # hf_bucket: ggml-org/cache
+
- name: Test
id: ggml-ci
run: |
vulkaninfo --summary
GG_BUILD_VULKAN=1 GGML_VK_DISABLE_COOPMAT2=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
+ # - name: ccache-buckets-save
+ # if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
+ # uses: ./.github/actions/ccache-buckets
+ # env:
+ # HF_TOKEN: ${{ secrets.HF_TOKEN_CACHE_OUTPUT }}
+ # with:
+ # key: self-hosted-vulkan-nvidia-cm
+ # folder: llama.cpp
+ # evict-old-files: 1d
+ # hf_bucket: ggml-org/cache
+ # save: true
+
gpu-vulkan-nvidia-cm2:
+ # runs-on: "hf-jobs-t4-small:ubuntu26_04"
runs-on: [self-hosted, Linux, NVIDIA, COOPMAT2]
steps:
@@ -145,20 +177,68 @@ jobs:
id: checkout
uses: actions/checkout@v6
+ # - name: Install dependencies
+ # run: |
+ # sudo apt update
+ # sudo apt install -y build-essential cmake libxcb-xinput0 libxcb-xinerama0 libxcb-cursor-dev libvulkan-dev glslc spirv-headers vulkan-tools mesa-vulkan-drivers libglvnd0 libgl1 libglx0 libegl1 libgles2 libssl-dev time unzip wget python3 python3-venv python3-pip
+
+ # - name: ccache
+ # uses: ggml-org/ccache-action@v1.2.24
+ # with:
+ # restore: false
+ # save: false
+
+ # - name: ccache-buckets-restore
+ # uses: ./.github/actions/ccache-buckets
+ # with:
+ # key: self-hosted-vulkan-nvidia-cm2
+ # folder: llama.cpp
+ # hf_bucket: ggml-org/cache
+
- name: Test
id: ggml-ci
run: |
vulkaninfo --summary
GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
+ # - name: ccache-buckets-save
+ # if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
+ # uses: ./.github/actions/ccache-buckets
+ # env:
+ # HF_TOKEN: ${{ secrets.HF_TOKEN_CACHE_OUTPUT }}
+ # with:
+ # key: self-hosted-vulkan-nvidia-cm2
+ # folder: llama.cpp
+ # evict-old-files: 1d
+ # hf_bucket: ggml-org/cache
+ # save: true
+
gpu-webgpu-nvidia:
- runs-on: [self-hosted, Linux, NVIDIA, X64]
+ runs-on: "hf-jobs-t4-small:ubuntu26_04"
steps:
- name: Clone
id: checkout
uses: actions/checkout@v6
+ - name: Install dependencies
+ run: |
+ sudo apt update
+ sudo apt install -y build-essential cmake libxcb-xinput0 libxcb-xinerama0 libxcb-cursor-dev libvulkan1 mesa-vulkan-drivers libglvnd0 libgl1 libglx0 libegl1 libgles2 libssl-dev time unzip wget python3 python3-venv python3-pip
+
+ - name: ccache
+ uses: ggml-org/ccache-action@v1.2.24
+ with:
+ restore: false
+ save: false
+
+ - name: ccache-buckets-restore
+ uses: ./.github/actions/ccache-buckets
+ with:
+ key: self-hosted-webgpu-nvidia
+ folder: llama.cpp
+ hf_bucket: ggml-org/cache
+
- name: Dawn Dependency
id: dawn-depends
run: |
@@ -180,6 +260,18 @@ jobs:
GG_BUILD_WEBGPU_DAWN_DIR="$GITHUB_WORKSPACE/dawn/lib64/cmake/Dawn" \
bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
+ - name: ccache-buckets-save
+ if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
+ uses: ./.github/actions/ccache-buckets
+ env:
+ HF_TOKEN: ${{ secrets.HF_TOKEN_CACHE_OUTPUT }}
+ with:
+ key: self-hosted-webgpu-nvidia
+ folder: llama.cpp
+ evict-old-files: 1d
+ hf_bucket: ggml-org/cache
+ save: true
+
# TODO: provision AMX-compatible machine
#cpu-amx:
# runs-on: [self-hosted, Linux, CPU, AMX]
diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp
index 1616004e0..bd75e2756 100644
--- a/tests/test-backend-ops.cpp
+++ b/tests/test-backend-ops.cpp
@@ -12000,8 +12000,7 @@ int main(int argc, char ** argv) {
ggml_backend_reg_t reg = ggml_backend_dev_backend_reg(dev);
auto ggml_backend_set_n_threads_fn = (ggml_backend_set_n_threads_t) ggml_backend_reg_get_proc_address(reg, "ggml_backend_set_n_threads");
if (ggml_backend_set_n_threads_fn) {
- // TODO: better value for n_threads
- ggml_backend_set_n_threads_fn(backend.get(), N_THREADS);
+ ggml_backend_set_n_threads_fn(backend.get(), std::max<int>(1, N_THREADS/2));
}
size_t free, total; // NOLINT