Skip to content

Commit b476895

Browse files
authored
ci : move self-hosted workflows to separate files (ggml-org#20540)
1 parent fc350fd commit b476895

5 files changed

Lines changed: 295 additions & 200 deletions

File tree

.github/workflows/build-cache.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ jobs:
6767
runs-on: ubuntu-24.04
6868

6969
env:
70-
# Sync versions in build.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile
70+
# Sync versions in build.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile
7171
OPENVINO_VERSION_MAJOR: "2026.0"
7272
OPENVINO_VERSION_FULL: "2026.0.0.20965.c6d6a13a886"
7373

Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
name: CI (self-hosted)
2+
3+
on:
4+
workflow_dispatch: # allows manual triggering
5+
push:
6+
branches:
7+
- master
8+
paths: [
9+
'.github/workflows/build.yml',
10+
'**/CMakeLists.txt',
11+
'**/.cmake',
12+
'**/*.h',
13+
'**/*.hpp',
14+
'**/*.c',
15+
'**/*.cpp',
16+
'**/*.cu',
17+
'**/*.cuh',
18+
'**/*.swift',
19+
'**/*.m',
20+
'**/*.metal',
21+
'**/*.comp',
22+
'**/*.glsl',
23+
'**/*.wgsl'
24+
]
25+
26+
pull_request:
27+
types: [opened, synchronize, reopened]
28+
paths: [
29+
'.github/workflows/build-self-hosted.yml',
30+
'**/CMakeLists.txt',
31+
'**/.cmake',
32+
'**/*.h',
33+
'**/*.hpp',
34+
'**/*.c',
35+
'**/*.cpp',
36+
'**/*.cu',
37+
'**/*.cuh',
38+
'**/*.swift',
39+
'**/*.m',
40+
'**/*.metal',
41+
'**/*.comp',
42+
'**/*.glsl',
43+
'**/*.wgsl'
44+
]
45+
46+
concurrency:
47+
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
48+
cancel-in-progress: true
49+
50+
env:
51+
GGML_NLOOP: 3
52+
GGML_N_THREADS: 1
53+
LLAMA_LOG_COLORS: 1
54+
LLAMA_LOG_PREFIX: 1
55+
LLAMA_LOG_TIMESTAMPS: 1
56+
57+
jobs:
58+
ggml-ci-nvidia-cuda:
59+
runs-on: [self-hosted, Linux, NVIDIA]
60+
61+
steps:
62+
- name: Clone
63+
id: checkout
64+
uses: actions/checkout@v6
65+
66+
- name: Test
67+
id: ggml-ci
68+
run: |
69+
nvidia-smi
70+
GG_BUILD_CUDA=1 bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp
71+
72+
ggml-ci-nvidia-vulkan-cm:
73+
runs-on: [self-hosted, Linux, NVIDIA]
74+
75+
steps:
76+
- name: Clone
77+
id: checkout
78+
uses: actions/checkout@v6
79+
80+
- name: Test
81+
id: ggml-ci
82+
run: |
83+
vulkaninfo --summary
84+
GG_BUILD_VULKAN=1 GGML_VK_DISABLE_COOPMAT2=1 bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp
85+
86+
ggml-ci-nvidia-vulkan-cm2:
87+
runs-on: [self-hosted, Linux, NVIDIA, COOPMAT2]
88+
89+
steps:
90+
- name: Clone
91+
id: checkout
92+
uses: actions/checkout@v6
93+
94+
- name: Test
95+
id: ggml-ci
96+
run: |
97+
vulkaninfo --summary
98+
GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp
99+
100+
ggml-ci-cpu-amx:
101+
runs-on: [self-hosted, Linux, CPU, AMX]
102+
103+
steps:
104+
- name: Clone
105+
id: checkout
106+
uses: actions/checkout@v6
107+
108+
- name: Test
109+
id: ggml-ci
110+
run: |
111+
bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp
112+
113+
# ggml-ci-amd-vulkan:
114+
# runs-on: [self-hosted, Linux, AMD]
115+
116+
# steps:
117+
# - name: Clone
118+
# id: checkout
119+
# uses: actions/checkout@v6
120+
121+
# - name: Test
122+
# id: ggml-ci
123+
# run: |
124+
# vulkaninfo --summary
125+
# GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp
126+
127+
# ggml-ci-amd-rocm:
128+
# runs-on: [self-hosted, Linux, AMD]
129+
130+
# steps:
131+
# - name: Clone
132+
# id: checkout
133+
# uses: actions/checkout@v6
134+
135+
# - name: Test
136+
# id: ggml-ci
137+
# run: |
138+
# amd-smi static
139+
# GG_BUILD_ROCM=1 GG_BUILD_AMDGPU_TARGETS="gfx1101" bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp
140+
141+
ggml-ci-mac-metal:
142+
runs-on: [self-hosted, macOS, ARM64]
143+
144+
steps:
145+
- name: Clone
146+
id: checkout
147+
uses: actions/checkout@v6
148+
149+
- name: Test
150+
id: ggml-ci
151+
run: |
152+
GG_BUILD_METAL=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
153+
154+
ggml-ci-mac-webgpu:
155+
runs-on: [self-hosted, macOS, ARM64]
156+
157+
steps:
158+
- name: Clone
159+
id: checkout
160+
uses: actions/checkout@v6
161+
162+
- name: Dawn Dependency
163+
id: dawn-depends
164+
run: |
165+
DAWN_VERSION="v2.0.0"
166+
DAWN_OWNER="reeselevine"
167+
DAWN_REPO="dawn"
168+
DAWN_ASSET_NAME="Dawn-5e9a4865b1635796ccc77dd30057f2b4002a1355-macos-latest-Release"
169+
echo "Fetching release asset from https://github.com/${DAWN_OWNER}/${DAWN_REPO}/releases/download/${DAWN_VERSION}/${DAWN_ASSET_NAME}.zip"
170+
curl -L -o artifact.zip \
171+
"https://github.com/${DAWN_OWNER}/${DAWN_REPO}/releases/download/${DAWN_VERSION}/${DAWN_ASSET_NAME}.zip"
172+
mkdir dawn
173+
unzip artifact.zip
174+
tar -xvf ${DAWN_ASSET_NAME}.tar.gz -C dawn --strip-components=1
175+
176+
- name: Test
177+
id: ggml-ci
178+
run: |
179+
GG_BUILD_WEBGPU=1 GG_BUILD_WEBGPU_DAWN_PREFIX="$GITHUB_WORKSPACE/dawn" \
180+
bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
181+
182+
ggml-ci-mac-vulkan:
183+
runs-on: [self-hosted, macOS, ARM64]
184+
185+
steps:
186+
- name: Clone
187+
id: checkout
188+
uses: actions/checkout@v6
189+
190+
- name: Test
191+
id: ggml-ci
192+
run: |
193+
vulkaninfo --summary
194+
GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
195+
196+
ggml-ci-linux-intel-vulkan:
197+
runs-on: [self-hosted, Linux, Intel]
198+
199+
steps:
200+
- name: Clone
201+
id: checkout
202+
uses: actions/checkout@v6
203+
with:
204+
persist-credentials: false
205+
206+
- name: Test
207+
id: ggml-ci
208+
run: |
209+
vulkaninfo --summary
210+
GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
211+
212+
ggml-ci-intel-openvino-gpu-low-perf:
213+
runs-on: [self-hosted, Linux, Intel, OpenVINO]
214+
215+
env:
216+
# Sync versions in build.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile
217+
OPENVINO_VERSION_MAJOR: "2026.0"
218+
OPENVINO_VERSION_FULL: "2026.0.0.20965.c6d6a13a886"
219+
220+
steps:
221+
- name: Clone
222+
id: checkout
223+
uses: actions/checkout@v6
224+
225+
- name: Use OpenVINO Toolkit Cache
226+
uses: actions/cache@v5
227+
id: cache-openvino
228+
with:
229+
path: ./openvino_toolkit
230+
key: openvino-toolkit-v${{ env.OPENVINO_VERSION_FULL }}-${{ runner.os }}
231+
232+
- name: Setup OpenVINO Toolkit
233+
if: steps.cache-openvino.outputs.cache-hit != 'true'
234+
uses: ./.github/actions/linux-setup-openvino
235+
with:
236+
path: ./openvino_toolkit
237+
version_major: ${{ env.OPENVINO_VERSION_MAJOR }}
238+
version_full: ${{ env.OPENVINO_VERSION_FULL }}
239+
240+
- name: Install OpenVINO dependencies
241+
run: |
242+
cd ./openvino_toolkit
243+
chmod +x ./install_dependencies/install_openvino_dependencies.sh
244+
echo "Y" | sudo -E ./install_dependencies/install_openvino_dependencies.sh
245+
246+
- name: Test
247+
id: ggml-ci
248+
run: |
249+
source ./openvino_toolkit/setupvars.sh
250+
GG_BUILD_OPENVINO=1 GGML_OPENVINO_DEVICE=GPU GG_BUILD_LOW_PERF=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt

0 commit comments

Comments
 (0)