251 lines
6.3 KiB
YAML
251 lines
6.3 KiB
YAML
name: CI (self-hosted)
|
|
|
|
on:
|
|
workflow_dispatch: # allows manual triggering
|
|
push:
|
|
branches:
|
|
- master
|
|
paths: [
|
|
'.github/workflows/build.yml',
|
|
'**/CMakeLists.txt',
|
|
'**/.cmake',
|
|
'**/*.h',
|
|
'**/*.hpp',
|
|
'**/*.c',
|
|
'**/*.cpp',
|
|
'**/*.cu',
|
|
'**/*.cuh',
|
|
'**/*.swift',
|
|
'**/*.m',
|
|
'**/*.metal',
|
|
'**/*.comp',
|
|
'**/*.glsl',
|
|
'**/*.wgsl'
|
|
]
|
|
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
paths: [
|
|
'.github/workflows/build-self-hosted.yml',
|
|
'**/CMakeLists.txt',
|
|
'**/.cmake',
|
|
'**/*.h',
|
|
'**/*.hpp',
|
|
'**/*.c',
|
|
'**/*.cpp',
|
|
'**/*.cu',
|
|
'**/*.cuh',
|
|
'**/*.swift',
|
|
'**/*.m',
|
|
'**/*.metal',
|
|
'**/*.comp',
|
|
'**/*.glsl',
|
|
'**/*.wgsl'
|
|
]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
GGML_NLOOP: 3
|
|
GGML_N_THREADS: 1
|
|
LLAMA_LOG_COLORS: 1
|
|
LLAMA_LOG_PREFIX: 1
|
|
LLAMA_LOG_TIMESTAMPS: 1
|
|
|
|
jobs:
|
|
ggml-ci-nvidia-cuda:
|
|
runs-on: [self-hosted, Linux, NVIDIA]
|
|
|
|
steps:
|
|
- name: Clone
|
|
id: checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Test
|
|
id: ggml-ci
|
|
run: |
|
|
nvidia-smi
|
|
GG_BUILD_CUDA=1 bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp
|
|
|
|
ggml-ci-nvidia-vulkan-cm:
|
|
runs-on: [self-hosted, Linux, NVIDIA]
|
|
|
|
steps:
|
|
- name: Clone
|
|
id: checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- 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
|
|
|
|
ggml-ci-nvidia-vulkan-cm2:
|
|
runs-on: [self-hosted, Linux, NVIDIA, COOPMAT2]
|
|
|
|
steps:
|
|
- name: Clone
|
|
id: checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Test
|
|
id: ggml-ci
|
|
run: |
|
|
vulkaninfo --summary
|
|
GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp
|
|
|
|
ggml-ci-cpu-amx:
|
|
runs-on: [self-hosted, Linux, CPU, AMX]
|
|
|
|
steps:
|
|
- name: Clone
|
|
id: checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Test
|
|
id: ggml-ci
|
|
run: |
|
|
bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp
|
|
|
|
# ggml-ci-amd-vulkan:
|
|
# runs-on: [self-hosted, Linux, AMD]
|
|
|
|
# steps:
|
|
# - name: Clone
|
|
# id: checkout
|
|
# uses: actions/checkout@v6
|
|
|
|
# - name: Test
|
|
# id: ggml-ci
|
|
# run: |
|
|
# vulkaninfo --summary
|
|
# GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp
|
|
|
|
# ggml-ci-amd-rocm:
|
|
# runs-on: [self-hosted, Linux, AMD]
|
|
|
|
# steps:
|
|
# - name: Clone
|
|
# id: checkout
|
|
# uses: actions/checkout@v6
|
|
|
|
# - name: Test
|
|
# id: ggml-ci
|
|
# run: |
|
|
# amd-smi static
|
|
# GG_BUILD_ROCM=1 GG_BUILD_AMDGPU_TARGETS="gfx1101" bash ./ci/run.sh ~/results/llama.cpp /mnt/llama.cpp
|
|
|
|
ggml-ci-mac-metal:
|
|
runs-on: [self-hosted, macOS, ARM64]
|
|
|
|
steps:
|
|
- name: Clone
|
|
id: checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Test
|
|
id: ggml-ci
|
|
run: |
|
|
GG_BUILD_METAL=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
|
|
|
|
ggml-ci-mac-webgpu:
|
|
runs-on: [self-hosted, macOS, ARM64]
|
|
|
|
steps:
|
|
- name: Clone
|
|
id: checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Dawn Dependency
|
|
id: dawn-depends
|
|
run: |
|
|
DAWN_VERSION="v2.0.0"
|
|
DAWN_OWNER="reeselevine"
|
|
DAWN_REPO="dawn"
|
|
DAWN_ASSET_NAME="Dawn-5e9a4865b1635796ccc77dd30057f2b4002a1355-macos-latest-Release"
|
|
echo "Fetching release asset from https://github.com/${DAWN_OWNER}/${DAWN_REPO}/releases/download/${DAWN_VERSION}/${DAWN_ASSET_NAME}.zip"
|
|
curl -L -o artifact.zip \
|
|
"https://github.com/${DAWN_OWNER}/${DAWN_REPO}/releases/download/${DAWN_VERSION}/${DAWN_ASSET_NAME}.zip"
|
|
mkdir dawn
|
|
unzip artifact.zip
|
|
tar -xvf ${DAWN_ASSET_NAME}.tar.gz -C dawn --strip-components=1
|
|
|
|
- name: Test
|
|
id: ggml-ci
|
|
run: |
|
|
GG_BUILD_WEBGPU=1 GG_BUILD_WEBGPU_DAWN_PREFIX="$GITHUB_WORKSPACE/dawn" \
|
|
bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
|
|
|
|
ggml-ci-mac-vulkan:
|
|
runs-on: [self-hosted, macOS, ARM64]
|
|
|
|
steps:
|
|
- name: Clone
|
|
id: checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Test
|
|
id: ggml-ci
|
|
run: |
|
|
vulkaninfo --summary
|
|
GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
|
|
|
|
ggml-ci-linux-intel-vulkan:
|
|
runs-on: [self-hosted, Linux, Intel]
|
|
|
|
steps:
|
|
- name: Clone
|
|
id: checkout
|
|
uses: actions/checkout@v6
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: Test
|
|
id: ggml-ci
|
|
run: |
|
|
vulkaninfo --summary
|
|
GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
|
|
|
|
ggml-ci-intel-openvino-gpu-low-perf:
|
|
runs-on: [self-hosted, Linux, Intel, OpenVINO]
|
|
|
|
env:
|
|
# Sync versions in build.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile
|
|
OPENVINO_VERSION_MAJOR: "2026.0"
|
|
OPENVINO_VERSION_FULL: "2026.0.0.20965.c6d6a13a886"
|
|
|
|
steps:
|
|
- name: Clone
|
|
id: checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Use OpenVINO Toolkit Cache
|
|
uses: actions/cache@v5
|
|
id: cache-openvino
|
|
with:
|
|
path: ./openvino_toolkit
|
|
key: openvino-toolkit-v${{ env.OPENVINO_VERSION_FULL }}-${{ runner.os }}
|
|
|
|
- name: Setup OpenVINO Toolkit
|
|
if: steps.cache-openvino.outputs.cache-hit != 'true'
|
|
uses: ./.github/actions/linux-setup-openvino
|
|
with:
|
|
path: ./openvino_toolkit
|
|
version_major: ${{ env.OPENVINO_VERSION_MAJOR }}
|
|
version_full: ${{ env.OPENVINO_VERSION_FULL }}
|
|
|
|
- name: Install OpenVINO dependencies
|
|
run: |
|
|
cd ./openvino_toolkit
|
|
chmod +x ./install_dependencies/install_openvino_dependencies.sh
|
|
echo "Y" | sudo -E ./install_dependencies/install_openvino_dependencies.sh
|
|
|
|
- name: Test
|
|
id: ggml-ci
|
|
run: |
|
|
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
|