mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2026-06-26 06:10:19 +00:00
af6528e6df
* remove redundant apple job openvino gpu and cpu test can share the same build and machine Update build-rpc.yml Update build-openvino.yml cpu any doesnt make sense as we have an arm job already, so do high perf on both x86 and arm remove duplicate x86 vulkan combine backend sampling Update server.yml run server on arm as windows is x86 * emdawn on one machine only * fix openvino, remove cpu tag as we dont have many x64 machines with that tag
135 lines
3.6 KiB
YAML
135 lines
3.6 KiB
YAML
name: CI (vulkan)
|
|
|
|
on:
|
|
workflow_dispatch: # allows manual triggering
|
|
push:
|
|
branches:
|
|
- master
|
|
paths: [
|
|
'.github/workflows/build-vulkan.yml',
|
|
'**/CMakeLists.txt',
|
|
'**/.cmake',
|
|
'**/*.h',
|
|
'**/*.hpp',
|
|
'**/*.c',
|
|
'**/*.cpp',
|
|
'**/*.comp',
|
|
'**/*.glsl'
|
|
]
|
|
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
paths: [
|
|
'.github/workflows/build-vulkan.yml',
|
|
'ggml/src/ggml-vulkan/**'
|
|
]
|
|
|
|
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_ARG_LOG_COLORS: 1
|
|
LLAMA_ARG_LOG_PREFIX: 1
|
|
LLAMA_ARG_LOG_TIMESTAMPS: 1
|
|
|
|
jobs:
|
|
ubuntu-arm64:
|
|
runs-on: ubuntu-24.04-arm
|
|
|
|
steps:
|
|
- name: Clone
|
|
id: checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Dependencies
|
|
id: depends
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y gcc-14 g++-14 build-essential glslc libvulkan-dev spirv-headers libssl-dev ninja-build
|
|
echo "CC=gcc-14" >> "$GITHUB_ENV"
|
|
echo "CXX=g++-14" >> "$GITHUB_ENV"
|
|
|
|
- name: ccache
|
|
uses: ggml-org/ccache-action@v1.2.21
|
|
with:
|
|
key: vulkan-ubuntu-24.04-arm-new
|
|
variant: ccache
|
|
evict-old-files: 1d
|
|
save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
|
|
|
|
- name: Configure
|
|
id: cmake_configure
|
|
run: |
|
|
cmake -B build \
|
|
-G "Ninja" \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DGGML_VULKAN=ON
|
|
|
|
- name: Build
|
|
id: cmake_build
|
|
run: |
|
|
time cmake --build build -j $(nproc)
|
|
|
|
ubuntu-llvmpipe:
|
|
runs-on: ubuntu-24.04
|
|
|
|
steps:
|
|
- name: Clone
|
|
id: checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Dependencies
|
|
id: depends
|
|
run: |
|
|
sudo add-apt-repository -y ppa:kisak/kisak-mesa
|
|
sudo apt-get update -y
|
|
sudo apt-get install -y build-essential mesa-vulkan-drivers libxcb-xinput0 libxcb-xinerama0 libxcb-cursor-dev libssl-dev
|
|
|
|
- name: Get latest Vulkan SDK version
|
|
id: vulkan_sdk_version
|
|
run: |
|
|
echo "VULKAN_SDK_VERSION=$(curl https://vulkan.lunarg.com/sdk/latest/linux.txt)" >> "$GITHUB_ENV"
|
|
|
|
- name: Use Vulkan SDK Cache
|
|
uses: actions/cache@v5
|
|
id: cache-sdk
|
|
with:
|
|
path: ./vulkan_sdk
|
|
key: cache-gha-vulkan-sdk-${{ env.VULKAN_SDK_VERSION }}-${{ runner.os }}
|
|
|
|
- name: Setup Vulkan SDK
|
|
if: steps.cache-sdk.outputs.cache-hit != 'true'
|
|
uses: ./.github/actions/linux-setup-vulkan
|
|
with:
|
|
path: ./vulkan_sdk
|
|
version: ${{ env.VULKAN_SDK_VERSION }}
|
|
|
|
- name: ccache
|
|
uses: ggml-org/ccache-action@v1.2.21
|
|
with:
|
|
key: vulkan-ubuntu-24.04-llvmpipe
|
|
evict-old-files: 1d
|
|
save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
|
|
|
|
- name: Build
|
|
id: cmake_build
|
|
run: |
|
|
source ./vulkan_sdk/setup-env.sh
|
|
cmake -B build \
|
|
-DGGML_VULKAN=ON
|
|
cmake --build build --config Release -j $(nproc)
|
|
|
|
- name: Test
|
|
id: cmake_test
|
|
run: |
|
|
cd build
|
|
export GGML_VK_VISIBLE_DEVICES=0
|
|
export GGML_VK_DISABLE_F16=1
|
|
export GGML_VK_DISABLE_COOPMAT=1
|
|
# This is using llvmpipe and runs slower than other backends
|
|
# test-backend-ops is too slow on llvmpipe, skip it
|
|
ctest -L main -E test-backend-ops --verbose --timeout 900
|