ci : update build-self-hosted.yml (#23616)

This commit is contained in:
Georgi Gerganov
2026-05-24 18:20:10 +03:00
committed by GitHub
parent 5d246a792d
commit 549b9d8433
4 changed files with 167 additions and 100 deletions
+76 -10
View File
@@ -57,7 +57,7 @@ env:
jobs: jobs:
determine-tag: determine-tag:
name: Determine tag name name: Determine tag name
runs-on: ubuntu-slim runs-on: [self-hosted, fast]
outputs: outputs:
tag_name: ${{ steps.tag.outputs.name }} tag_name: ${{ steps.tag.outputs.name }}
steps: steps:
@@ -86,7 +86,7 @@ jobs:
HF_UI_VERSION: ${{ needs.determine-tag.outputs.tag_name }} HF_UI_VERSION: ${{ needs.determine-tag.outputs.tag_name }}
run: | run: |
nvidia-smi nvidia-smi
GG_BUILD_CUDA=1 bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp GG_BUILD_CUDA=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
ggml-ci-nvidia-vulkan-cm: ggml-ci-nvidia-vulkan-cm:
needs: determine-tag needs: determine-tag
@@ -103,7 +103,7 @@ jobs:
HF_UI_VERSION: ${{ needs.determine-tag.outputs.tag_name }} HF_UI_VERSION: ${{ needs.determine-tag.outputs.tag_name }}
run: | run: |
vulkaninfo --summary vulkaninfo --summary
GG_BUILD_VULKAN=1 GGML_VK_DISABLE_COOPMAT2=1 bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp GG_BUILD_VULKAN=1 GGML_VK_DISABLE_COOPMAT2=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
ggml-ci-nvidia-vulkan-cm2: ggml-ci-nvidia-vulkan-cm2:
needs: determine-tag needs: determine-tag
@@ -120,10 +120,11 @@ jobs:
HF_UI_VERSION: ${{ needs.determine-tag.outputs.tag_name }} HF_UI_VERSION: ${{ needs.determine-tag.outputs.tag_name }}
run: | run: |
vulkaninfo --summary vulkaninfo --summary
GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
ggml-ci-nvidia-webgpu: ggml-ci-nvidia-webgpu:
runs-on: [self-hosted, Linux, NVIDIA] needs: determine-tag
runs-on: [self-hosted, Linux, NVIDIA, X64]
steps: steps:
- name: Clone - name: Clone
@@ -149,10 +150,11 @@ jobs:
GG_BUILD_WEBGPU=1 \ GG_BUILD_WEBGPU=1 \
GG_BUILD_WEBGPU_DAWN_PREFIX="$GITHUB_WORKSPACE/dawn" \ GG_BUILD_WEBGPU_DAWN_PREFIX="$GITHUB_WORKSPACE/dawn" \
GG_BUILD_WEBGPU_DAWN_DIR="$GITHUB_WORKSPACE/dawn/lib64/cmake/Dawn" \ GG_BUILD_WEBGPU_DAWN_DIR="$GITHUB_WORKSPACE/dawn/lib64/cmake/Dawn" \
bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
# TODO: provision AMX-compatible machine # TODO: provision AMX-compatible machine
#ggml-ci-cpu-amx: #ggml-ci-cpu-amx:
# needs: determine-tag
# runs-on: [self-hosted, Linux, CPU, AMX] # runs-on: [self-hosted, Linux, CPU, AMX]
# steps: # steps:
@@ -163,10 +165,11 @@ jobs:
# - name: Test # - name: Test
# id: ggml-ci # id: ggml-ci
# run: | # run: |
# bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp # bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
# TODO: provision AMD GPU machine # TODO: provision AMD GPU machine
# ggml-ci-amd-vulkan: # ggml-ci-amd-vulkan:
# needs: determine-tag
# runs-on: [self-hosted, Linux, AMD] # runs-on: [self-hosted, Linux, AMD]
# steps: # steps:
@@ -178,10 +181,11 @@ jobs:
# id: ggml-ci # id: ggml-ci
# run: | # run: |
# vulkaninfo --summary # vulkaninfo --summary
# GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp # GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
# TODO: provision AMD GPU machine # TODO: provision AMD GPU machine
# ggml-ci-amd-rocm: # ggml-ci-amd-rocm:
# needs: determine-tag
# runs-on: [self-hosted, Linux, AMD] # runs-on: [self-hosted, Linux, AMD]
# steps: # steps:
@@ -193,7 +197,7 @@ jobs:
# id: ggml-ci # id: ggml-ci
# run: | # run: |
# amd-smi static # amd-smi static
# GG_BUILD_ROCM=1 GG_BUILD_AMDGPU_TARGETS="gfx1101" bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp # GG_BUILD_ROCM=1 GG_BUILD_AMDGPU_TARGETS="gfx1101" bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
ggml-ci-mac-metal: ggml-ci-mac-metal:
needs: determine-tag needs: determine-tag
@@ -337,4 +341,66 @@ jobs:
HF_UI_VERSION: ${{ needs.determine-tag.outputs.tag_name }} HF_UI_VERSION: ${{ needs.determine-tag.outputs.tag_name }}
run: | run: |
source ./openvino_toolkit/setupvars.sh source ./openvino_toolkit/setupvars.sh
GG_BUILD_OPENVINO=1 GGML_OPENVINO_DEVICE=GPU GG_BUILD_LOW_PERF=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt GG_BUILD_OPENVINO=1 GGML_OPENVINO_DEVICE=GPU GG_BUILD_LOW_PERF=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
ggml-ci-arm64-cpu-low-perf:
needs: determine-tag
runs-on: [self-hosted, Linux, ARM64]
steps:
- name: Clone
id: checkout
uses: actions/checkout@v6
- name: Test
id: ggml-ci
run: |
LLAMA_ARG_THREADS=$(nproc) GG_BUILD_LOW_PERF=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
ggml-ci-arm64-cpu-high-perf:
needs: determine-tag
runs-on: [self-hosted, Linux, ARM64]
steps:
- name: Clone
id: checkout
uses: actions/checkout@v6
- name: Test
id: ggml-ci
run: |
LLAMA_ARG_THREADS=$(nproc) GG_BUILD_HIGH_PERF=1 GG_BUILD_NO_SVE=1 GG_BUILD_NO_BF16=1 GG_BUILD_EXTRA_TESTS_0=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
# TODO: not sure how to detect ARM flags on DGX Spark. currently get this error during cmake:
# CMake Warning at ggml/src/ggml-cpu/CMakeLists.txt:147 (message):
# ARM -march/-mcpu not found, -mcpu=native will be used
#
# if we resolve this, we should be able to offload these jobs to the self-hosted runners
#
# ggml-ci-arm64-cpu-high-perf-sve:
# needs: determine-tag
# runs-on: [self-hosted, Linux, NVIDIA, ARM64]
#
# steps:
# - name: Clone
# id: checkout
# uses: actions/checkout@v6
#
# - name: Test
# id: ggml-ci
# run: |
# LLAMA_ARG_THREADS=$(nproc) GG_BUILD_NO_BF16=1 GG_BUILD_EXTRA_TESTS_0=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
#
# ggml-ci-arm64-cpu-kleidiai:
# needs: determine-tag
# runs-on: [self-hosted, Linux, NVIDIA, ARM64]
#
# steps:
# - name: Clone
# id: checkout
# uses: actions/checkout@v6
#
# - name: Test
# id: ggml-ci
# run: |
# GG_BUILD_KLEIDIAI=1 GG_BUILD_EXTRA_TESTS_0=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
+52 -50
View File
@@ -931,31 +931,32 @@ jobs:
run: | run: |
LLAMA_ARG_THREADS=$(nproc) GG_BUILD_LOW_PERF=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt LLAMA_ARG_THREADS=$(nproc) GG_BUILD_LOW_PERF=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt
ggml-ci-arm64-cpu-low-perf: # note: moved to build-self-hosted.yml - can remove from here when everything is stable
runs-on: ubuntu-22.04-arm # ggml-ci-arm64-cpu-low-perf:
# runs-on: ubuntu-22.04-arm
steps: #
- name: Clone # steps:
id: checkout # - name: Clone
uses: actions/checkout@v6 # id: checkout
# uses: actions/checkout@v6
- name: ccache #
uses: ggml-org/ccache-action@v1.2.21 # - name: ccache
with: # uses: ggml-org/ccache-action@v1.2.21
key: ggml-ci-arm64-cpu-low-perf # with:
evict-old-files: 1d # key: ggml-ci-arm64-cpu-low-perf
save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} # evict-old-files: 1d
# save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
- name: Dependencies #
id: depends # - name: Dependencies
run: | # id: depends
sudo apt-get update # run: |
sudo apt-get install build-essential # sudo apt-get update
# sudo apt-get install build-essential
- name: Test #
id: ggml-ci # - name: Test
run: | # id: ggml-ci
LLAMA_ARG_THREADS=$(nproc) GG_BUILD_LOW_PERF=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt # run: |
# LLAMA_ARG_THREADS=$(nproc) GG_BUILD_LOW_PERF=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt
ggml-ci-x64-cpu-high-perf: ggml-ci-x64-cpu-high-perf:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
@@ -983,31 +984,32 @@ jobs:
run: | run: |
LLAMA_ARG_THREADS=$(nproc) GG_BUILD_HIGH_PERF=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt LLAMA_ARG_THREADS=$(nproc) GG_BUILD_HIGH_PERF=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt
ggml-ci-arm64-cpu-high-perf: # note: moved to build-self-hosted.yml - can remove from here when everything is stable
runs-on: ubuntu-22.04-arm # ggml-ci-arm64-cpu-high-perf:
# runs-on: ubuntu-22.04-arm
steps: #
- name: Clone # steps:
id: checkout # - name: Clone
uses: actions/checkout@v6 # id: checkout
# uses: actions/checkout@v6
- name: ccache #
uses: ggml-org/ccache-action@v1.2.21 # - name: ccache
with: # uses: ggml-org/ccache-action@v1.2.21
key: ggml-ci-arm64-cpu-high-perf # with:
evict-old-files: 1d # key: ggml-ci-arm64-cpu-high-perf
save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} # evict-old-files: 1d
# save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
- name: Dependencies #
id: depends # - name: Dependencies
run: | # id: depends
sudo apt-get update # run: |
sudo apt-get install build-essential # sudo apt-get update
# sudo apt-get install build-essential
- name: Test #
id: ggml-ci # - name: Test
run: | # id: ggml-ci
LLAMA_ARG_THREADS=$(nproc) GG_BUILD_HIGH_PERF=1 GG_BUILD_NO_SVE=1 GG_BUILD_NO_BF16=1 GG_BUILD_EXTRA_TESTS_0=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt # run: |
# LLAMA_ARG_THREADS=$(nproc) GG_BUILD_HIGH_PERF=1 GG_BUILD_NO_SVE=1 GG_BUILD_NO_BF16=1 GG_BUILD_EXTRA_TESTS_0=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt
ggml-ci-arm64-cpu-high-perf-sve: ggml-ci-arm64-cpu-high-perf-sve:
runs-on: ubuntu-22.04-arm runs-on: ubuntu-22.04-arm
+38 -39
View File
@@ -91,45 +91,44 @@ jobs:
export ${{ matrix.extra_args }} export ${{ matrix.extra_args }}
pytest -v -x -m "not slow" pytest -v -x -m "not slow"
# TODO: provision CUDA runner server-cuda:
# server-cuda: runs-on: [self-hosted, llama-server, Linux, NVIDIA]
# runs-on: [self-hosted, llama-server, Linux, NVIDIA]
# name: server-cuda (${{ matrix.wf_name }})
# name: server-cuda (${{ matrix.wf_name }}) strategy:
# strategy: matrix:
# matrix: build_type: [Release]
# build_type: [Release] wf_name: ["GPUx1"]
# wf_name: ["GPUx1"] include:
# include: - build_type: Release
# - build_type: Release extra_args: "LLAMA_ARG_BACKEND_SAMPLING=1"
# extra_args: "LLAMA_ARG_BACKEND_SAMPLING=1" wf_name: "GPUx1, backend-sampling"
# wf_name: "GPUx1, backend-sampling" fail-fast: false
# fail-fast: false
# steps:
# steps: - name: Clone
# - name: Clone id: checkout
# id: checkout uses: actions/checkout@v6
# uses: actions/checkout@v6 with:
# with: fetch-depth: 0
# fetch-depth: 0 ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }}
# ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }}
# - name: Build
# - name: Build id: cmake_build
# id: cmake_build run: |
# run: | cmake -B build -DGGML_CUDA=ON -DGGML_SCHED_NO_REALLOC=ON
# cmake -B build -DGGML_SCHED_NO_REALLOC=ON cmake --build build --config ${{ matrix.build_type }} -j $(nproc) --target llama-server
# cmake --build build --config ${{ matrix.build_type }} -j $(sysctl -n hw.logicalcpu) --target llama-server
# - name: Tests
# - name: Tests id: server_integration_tests
# id: server_integration_tests if: ${{ (!matrix.disabled_on_pr || !github.event.pull_request) }}
# if: ${{ (!matrix.disabled_on_pr || !github.event.pull_request) }} run: |
# run: | cd tools/server/tests
# cd tools/server/tests python3 -m venv venv
# python3 -m venv venv source venv/bin/activate
# source venv/bin/activate pip install -r requirements.txt
# pip install -r requirements.txt export ${{ matrix.extra_args }}
# export ${{ matrix.extra_args }} pytest -v -x -m "not slow"
# pytest -v -x -m "not slow"
server-kleidiai: server-kleidiai:
runs-on: ah-ubuntu_22_04-c8g_8x runs-on: ah-ubuntu_22_04-c8g_8x
+1 -1
View File
@@ -238,7 +238,7 @@ function gg_run_ctest_debug {
(cmake -G "${CMAKE_GENERATOR}" -DCMAKE_BUILD_TYPE=Debug ${CMAKE_EXTRA} .. ) 2>&1 | tee -a $OUT/${ci}-cmake.log (cmake -G "${CMAKE_GENERATOR}" -DCMAKE_BUILD_TYPE=Debug ${CMAKE_EXTRA} .. ) 2>&1 | tee -a $OUT/${ci}-cmake.log
(time cmake --build . --config Debug -j$(nproc)) 2>&1 | tee -a $OUT/${ci}-make.log (time cmake --build . --config Debug -j$(nproc)) 2>&1 | tee -a $OUT/${ci}-make.log
(time ctest -C Debug --output-on-failure -L main -E "test-opt|test-backend-ops" ${CTEST_EXTRA}) 2>&1 | tee -a $OUT/${ci}-ctest.log (time ctest -C Debug --output-on-failure -L main -E "test-opt|test-backend-ops|test-llama-archs" ${CTEST_EXTRA}) 2>&1 | tee -a $OUT/${ci}-ctest.log
set +e set +e
} }