devops: add s390x & ppc64le CI (#15925)
* devops: move s390x and ppc64le ci build
we have access to ubuntu-24.04-s390x and ppc64le images now
Signed-off-by: Aaron Teo <[email protected]>
* devops: disable ppc64le for now since they have compiler errors
Signed-off-by: Aaron Teo <[email protected]>
* devops: stop warnings as errors
Signed-off-by: Aaron Teo <[email protected]>
* devops: switch to non-macro flag
Signed-off-by: Aaron Teo <[email protected]>
* devops: going the llama macro route
Signed-off-by: Aaron Teo <[email protected]>
* devops: add big-endian gguf test models
Signed-off-by: Aaron Teo <[email protected]>
* devops: disable ppc64le to test s390x, check test build
Signed-off-by: Aaron Teo <[email protected]>
* devops: dup .gguf.inp files for big-endian tests
Signed-off-by: Aaron Teo <[email protected]>
* devops: dup .gguf.out files for big-endian too
Signed-off-by: Aaron Teo <[email protected]>
* devops: add python setup and endian byteswap
Signed-off-by: Aaron Teo <[email protected]>
* devops: pooring thing does not have s390x python3
Signed-off-by: Aaron Teo <[email protected]>
* devops: add missing rust compiler for s390x
Signed-off-by: Aaron Teo <[email protected]>
* devops: try rust actions runner
Signed-off-by: Aaron Teo <[email protected]>
* Revert "devops: try rust actions runner"
This reverts commit 3f8db04356033d6c1d7eccc75ca396bc5298250c.
Signed-off-by: Aaron Teo <[email protected]>
* devops: try a different path for rust
Signed-off-by: Aaron Teo <[email protected]>
* devops: dump home directory and user info
Signed-off-by: Aaron Teo <[email protected]>
* devops: install gguf-py only
Signed-off-by: Aaron Teo <[email protected]>
* devops: missed relative path
Signed-off-by: Aaron Teo <[email protected]>
* devops: remove big-endian files since local swapping is working
Signed-off-by: Aaron Teo <[email protected]>
* devops: revert test-tokenizer-0 cmakelists
Signed-off-by: Aaron Teo <[email protected]>
* Fix unicode flags conversion from and to uint16_t
Bitfields are allocated in different order on s390x
Signed-off-by: Aaron Teo <[email protected]>
* Simplify byteswap command
Signed-off-by: Aaron Teo <[email protected]>
* Add byteswapping and git-lfs for test-tokenizers-ggml-vocabs
Signed-off-by: Aaron Teo <[email protected]>
* Fix endianness detection in vocab loader
Signed-off-by: Aaron Teo <[email protected]>
* Disable test-thread-safety on s390x
In this test a model is downloaded,
then immediately loaded to check if more downloads are needed,
and then used for test.
There is no clean way to separate all those steps
to add byteswapping between them, so just skip this test.
Signed-off-by: Aaron Teo <[email protected]>
* Fix q8_0 test in test-quantize-fns
vec_signed uses unexpected rounding mode.
Explicitly use different rounding function.
Signed-off-by: Aaron Teo <[email protected]>
* devops: add big-endian stories260K
Signed-off-by: Aaron Teo <[email protected]>
* devops: add s390x test-eval-callback
Signed-off-by: Aaron Teo <[email protected]>
* devops: fix test does not exist
Signed-off-by: Aaron Teo <[email protected]>
* devops: fix model not found llama-eval-callback
Signed-off-by: Aaron Teo <[email protected]>
* Fix q3_K dot product error in test-quantize-fns on s390x
Array q8bytes had only 4 elements allocated, but 8 elements accessed.
This lead to write out of bounds and later read of overwritten values out of bounds
and incorrect result.
Signed-off-by: Aaron Teo <[email protected]>
* devops: re-enable ppc64le for testing
Signed-off-by: Aaron Teo <[email protected]>
* devops: activate test-thread-safety for s390x
Signed-off-by: Aaron Teo <[email protected]>
* devops: disable ppc64le tests
for some reason it keeps failing test-thread-safety tests and I do not
have a machine that is able to replicate the tests.
Signed-off-by: Aaron Teo <[email protected]>
* devops: LLAMA_FATAL_WARNINGS=ON
Signed-off-by: Aaron Teo <[email protected]>
* Correct repository URL for s390x for test-thread-safety model
Signed-off-by: Aaron Teo <[email protected]>
* Fix fs_get_cache_directory
Ensure it works even if both XDG_CACHE_HOME and HOME are unset.
This might happen in containers.
Signed-off-by: Aaron Teo <[email protected]>
* Re-enable CI for ppc64le
Signed-off-by: Aaron Teo <[email protected]>
* Fortify ggml_rope_impl
Only memcpy data from sections argument if it's non-NULL.
Signed-off-by: Aaron Teo <[email protected]>
* Add TODO in struct unicode_cpt_flags to reimplement it in endian-independent way
* Update URL for big-endian model
* Update .github/workflows/build.yml
Co-authored-by: Sigbjørn Skjæret <[email protected]>
* Update remaining mentions of BE models to ggml-org/models repo
---------
Signed-off-by: Aaron Teo <[email protected]>
Co-authored-by: Aleksei Nikiforov <[email protected]>
Co-authored-by: Aleksei Nikiforov <[email protected]>
Co-authored-by: Sigbjørn Skjæret <[email protected]>