ci: add android arm64 build and release#21647
Conversation
|
I think this is great (if actually implemented), I want to try it in Termux. |
|
cc @ggml-org/ci @ngxson |
|
The Android |
ngxson
left a comment
There was a problem hiding this comment.
Should we skip building examples? If I understand correctly, the NDK only requires .so dynamic library, right?
|
@ngxson my intention is to have
|
ngxson
left a comment
There was a problem hiding this comment.
I don't work specifically on android part of the project, but I think it may worth trying this. CC @ggml-org/ci for an additional review. Thanks!
| ./bin/llama-completion -m stories260K-be.gguf -p "One day, Lily met a Shoggoth" -n 500 -c 256 | ||
|
|
||
| android-arm64: | ||
| runs-on: ubuntu-latest |
There was a problem hiding this comment.
Why is this not built on ARM?
Edit: Asking for a friend who has too many jobs queued on ubuntu-latest. :)
There was a problem hiding this comment.
I didn't know they exist until now, I will update
There was a problem hiding this comment.
I tried elsewhere and the android actions are not suitable for the arm node yet, so it would be tradeoff: using the existing actions on x86 or fixing them for the arm
Warning: Unable to compute a complete list of dependencies.
/home/runner/work/_actions/android-actions/setup-android/v4/dist/index.js:22290
error2 = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);
^
Error: The process '/home/runner/.android/sdk/cmdline-tools/20.0/bin/sdkmanager' failed with exit code 1
at _ExecState._setResult (/home/runner/work/_actions/android-actions/setup-android/v4/dist/index.js:22290:18)
at _ExecState.CheckComplete (/home/runner/work/_actions/android-actions/setup-android/v4/dist/index.js:22276:12)
at ChildProcess.<anonymous> (/home/runner/work/_actions/android-actions/setup-android/v4/dist/index.js:22181:17)
at ChildProcess.emit (node:events:508:28)
at maybeClose (node:internal/child_process:1100:16)
at ChildProcess._handle.onexit (node:internal/child_process:305:5)
Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
Overview
Add Android arm64 build to CI (
build.yml) and release pipeline (release.yml) so that the same set of tools and server binaries shipped for Linux are also available for Android.The job cross-compiles using the Android NDK on
ubuntu-latest, following the same cmake flags and patterns as the existingubuntu-cpurelease job. The only android-specific additions are:arm64-v8a), and platform (android-28)-DGGML_OPENMP=OFF— not available in NDK cross-compile-DLLAMA_OPENSSL=OFF— no system SSL, matches existingbuild-android.ymlRequirements