Skip to content

Commit 81ddc60

Browse files
ggerganovCISC
andauthored
ci : add metal server workflows (ggml-org#19293)
* ci : add metal server workflows * cont : try fix python init * cont : move to a separate workflow that runs only on master * cont : fix num jobs Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
1 parent 972f323 commit 81ddc60

1 file changed

Lines changed: 73 additions & 0 deletions

File tree

.github/workflows/server-metal.yml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: Server-Metal
2+
3+
on:
4+
workflow_dispatch: # allows manual triggering
5+
inputs:
6+
sha:
7+
description: 'Commit SHA1 to build'
8+
required: false
9+
type: string
10+
slow_tests:
11+
description: 'Run slow tests'
12+
required: true
13+
type: boolean
14+
push:
15+
branches:
16+
- master
17+
paths: ['.github/workflows/server-metal.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m', 'tools/server/**.*']
18+
19+
env:
20+
LLAMA_LOG_COLORS: 1
21+
LLAMA_LOG_PREFIX: 1
22+
LLAMA_LOG_TIMESTAMPS: 1
23+
LLAMA_LOG_VERBOSITY: 10
24+
25+
concurrency:
26+
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || github.run_id }}
27+
cancel-in-progress: true
28+
29+
jobs:
30+
server-metal:
31+
runs-on: [self-hosted, macOS, ARM64]
32+
33+
name: server-metal (${{ matrix.wf_name }})
34+
strategy:
35+
matrix:
36+
build_type: [Release]
37+
wf_name: ["GPUx1"]
38+
include:
39+
- build_type: Release
40+
extra_args: "LLAMA_ARG_BACKEND_SAMPLING=1"
41+
wf_name: "GPUx1, backend-sampling"
42+
- build_type: Release
43+
extra_args: "GGML_METAL_DEVICES=2"
44+
wf_name: "GPUx2"
45+
- build_type: Release
46+
extra_args: "GGML_METAL_DEVICES=2 LLAMA_ARG_BACKEND_SAMPLING=1"
47+
wf_name: "GPUx2, backend-sampling"
48+
fail-fast: false
49+
50+
steps:
51+
- name: Clone
52+
id: checkout
53+
uses: actions/checkout@v6
54+
with:
55+
fetch-depth: 0
56+
ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }}
57+
58+
- name: Build
59+
id: cmake_build
60+
run: |
61+
cmake -B build -DGGML_SCHED_NO_REALLOC=ON
62+
cmake --build build --config ${{ matrix.build_type }} -j $(sysctl -n hw.logicalcpu) --target llama-server
63+
64+
- name: Tests
65+
id: server_integration_tests
66+
if: ${{ (!matrix.disabled_on_pr || !github.event.pull_request) }}
67+
run: |
68+
cd tools/server/tests
69+
python3 -m venv venv
70+
source venv/bin/activate
71+
pip install -r requirements.txt
72+
export ${{ matrix.extra_args }}
73+
pytest -v -x -m "not slow"

0 commit comments

Comments
 (0)