* Remove make dependency * Added option to specify Ninja generator * use ninja-build as default for several CI * Revert "use ninja-build as default for several CI" This reverts commit f552c4559b85e222aab37f654da764af4283fee7. * changed use plain string rather than arrays * Enabled ninja build by default for experimentation * ci: add run.sh to test conditions to trigger GitHub CI and self-hosted runners Signed-off-by: Aaron Teo <aaron.teo1@ibm.com> * Enabled ninja build by default on self-hosted envs for experimentation * ci: revert generator to ninja instead of ninja multi-config Signed-off-by: Aaron Teo <aaron.teo1@ibm.com> * ci: install ninja-build for self-hosted workflows Signed-off-by: Aaron Teo <aaron.teo1@ibm.com> * ci: revert ninja from self-hosted runners Signed-off-by: Aaron Teo <aaron.teo1@ibm.com> * ci: missed one self-hosted step Signed-off-by: Aaron Teo <aaron.teo1@ibm.com> * ci: fix windows ci errors from an errenous revert Signed-off-by: Aaron Teo <aaron.teo1@ibm.com> * Added explicit build types for Ninja Also reverted some needless change * ci: use ninja multi-config for vulkan-x64 build Signed-off-by: Aaron Teo <aaron.teo1@ibm.com> * added time command to measure build time * Keeping some configs to use Ninja which show improvement * minor fix based on review Co-authored-by: Aaron Teo <taronaeo@gmail.com> * ci: rm `time` from custom containers Signed-off-by: Aaron Teo <aaron.teo1@ibm.com> --------- Signed-off-by: Aaron Teo <aaron.teo1@ibm.com> Co-authored-by: Aaron Teo <aaron.teo1@ibm.com> Co-authored-by: Aaron Teo <taronaeo@gmail.com> |
||
|---|---|---|
| .. | ||
| README-MUSA.md | ||
| README.md | ||
| run.sh | ||
CI
This CI implements heavy-duty workflows that run on self-hosted runners. Typically the purpose of these workflows is to cover hardware configurations that are not available from Github-hosted runners and/or require more computational resource than normally available.
It is a good practice, before publishing changes to execute the full CI locally on your machine. For example:
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
# with SYCL support
source /opt/intel/oneapi/setvars.sh
GG_BUILD_SYCL=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt
# with MUSA support
GG_BUILD_MUSA=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt
# etc.
Adding self-hosted runners
- Add a self-hosted
ggml-ciworkflow to .github/workflows/build.yml with an appropriate label - Request a runner token from
ggml-org(for example, via a comment in the PR or email) - Set-up a machine using the received token (docs)
- Optionally update ci/run.sh to build and run on the target platform by gating the implementation with a
GG_BUILD_...env