whisper.cpp/ci
Daniel Bevenius afa2ea544f
whisper : set bench data for each iteration (#3812)
* whisper : set bench data for each iteration

This commit updates whisper_bench_ggml_mul_mat_str to intialize the
tensors data for each iteration.

The motivation for this is that is currently possible for a previous
run's results, F32 values, to leak into the next run. When it is time
for the F16 iteration then F32 results can cause NaN values to appear
in the tensor values causing the F16 iteration to fail.

Refs:https://github.com/ggml-org/whisper.cpp/actions/runs/25901678402/job/76152894644?pr=3735

* ci : set GGML_NATIVE=OFF if x86_64

This commit sets GGML_NATIVE=OFF for x86_64 architectures.

The motivation for this is to try to get CI to pass and the theory is
that the libggml-cpu.so library in the ccache might have been built by a
runner that supports a different instruction set. When another runner
that does not support that instruction set tries to use it, it will fail
with a segmentation fault.

I'm not sure about this yet but going to try this out and if it does not
work I'll ssh into the runner to debug further.
2026-05-19 08:58:43 +02:00
..
README.md
run.sh whisper : set bench data for each iteration (#3812) 2026-05-19 08:58:43 +02:00

README.md

CI

In addition to Github Actions whisper.cpp uses a custom CI framework:

https://github.com/ggml-org/ci

It monitors the master branch for new commits and runs the ci/run.sh script on dedicated cloud instances. This allows us to execute heavier workloads compared to just using Github Actions. Also with time, the cloud instances will be scaled to cover various hardware architectures, including GPU and Apple Silicon instances.

Collaborators can optionally trigger the CI run by adding the ggml-ci keyword to their commit message. Only the branches of this repo are monitored for this keyword.

It is a good practice, before publishing changes to execute the full CI locally on your machine:

mkdir tmp

# CPU-only build
bash ./ci/run.sh ./tmp/results ./tmp/mnt

# with CUDA support
GG_BUILD_CUDA=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt

Environment Variables

The CI script supports several environment variables to control the build:

Variable Description
GG_BUILD_CUDA Enable NVIDIA CUDA GPU acceleration
GG_BUILD_SYCL Enable Intel SYCL acceleration
GG_BUILD_VULKAN Enable Vulkan GPU acceleration
GG_BUILD_METAL Enable Metal acceleration on Apple Silicon
GG_BUILD_BLAS Enable BLAS CPU acceleration
GG_BUILD_OPENVINO Enable OpenVINO support
GG_BUILD_COREML Enable Core ML support for Apple Neural Engine
GG_BUILD_LOW_PERF Limit tests for low-performance hardware
GG_BUILD_TEST_MODELS Comma-separated list of models to test (e.g. "tiny.en,tiny,base,medium", defaults to all models unless GG_BUILD_LOW_PERF is set)