diff --git a/.github/workflows/fusion.yml b/.github/workflows/fusion.yml index ad7d5ab60e..7c8596467a 100644 --- a/.github/workflows/fusion.yml +++ b/.github/workflows/fusion.yml @@ -9,7 +9,9 @@ on: '.github/workflows/fusion.yml', 'ggml/**', 'tests/fusion/**', - 'tests/test-fusion.cpp' + 'tests/test-fusion.cpp', + 'tests/test-llama-archs.cpp', + 'src/models/**' ] pull_request: @@ -18,7 +20,9 @@ on: '.github/workflows/fusion.yml', 'ggml/**', 'tests/fusion/**', - 'tests/test-fusion.cpp' + 'tests/test-fusion.cpp', + 'tests/test-llama-archs.cpp', + 'src/models/**' ] concurrency: diff --git a/.pi/gg/SYSTEM.md b/.pi/gg/SYSTEM.md index 369b87bcd5..bd308ea963 100644 --- a/.pi/gg/SYSTEM.md +++ b/.pi/gg/SYSTEM.md @@ -23,6 +23,7 @@ Pull requests (PRs): - For the AI usage disclosure section, write "YES. pi:llama.cpp/[MODEL]" - If `PI_MODEL_NAME` env var is not set, ask the user to tell you what model was used and write it in place of [MODEL] - Always create the pull requests in draft mode +- Never reply to review comments or post comments on issues/PRs without explicit permission from the user Commits: - On every commit that you make, include a "Assisted-by: pi:llama.cpp/[MODEL]" tag diff --git a/tests/fusion/README.md b/tests/fusion/README.md new file mode 100644 index 0000000000..3ac02b061e --- /dev/null +++ b/tests/fusion/README.md @@ -0,0 +1,26 @@ +# Fusion baselines + +Per-device baselines for `test-fusion`, one CSV per backend (e.g. `MTL.csv`). Rows are +`arch,moe,mode,label,count`. Regenerate a CSV whenever fusion patterns change. + +## Update a baseline + +```sh +cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_METAL=ON # enable the target backend +cmake --build build --config Release --target test-llama-archs --target test-fusion -j + +rm -rf build-ci-models && mkdir -p build-ci-models +./build/bin/test-llama-archs -o build-ci-models + +./build/bin/test-fusion --models build-ci-models --device MTL0 --record MTL.csv +``` + +## Validate + +```sh +./build/bin/test-fusion --models build-ci-models --device MTL0 --check MTL.csv +``` + +Non-zero exit means a row differs from the baseline. Use `--model FILE` to run a single +architecture. Note `--check` only sees present rows — a fusion that stops matching is not +reported, so diff the recorded CSV to catch removed patterns.