char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
4bead4e30
char/aliceai-t5-moe
1name : CI (snapdragon) 2 3on : 4workflow_dispatch : 5push : 6branches : 7- master 8paths : 9- '.github/workflows/build-and-test-snapdragon.yml' 10- 'ggml/include/ggml-hexagon.h' 11- 'ggml/src/ggml-hexagon/**' 12- 'docs/backend/snapdragon/**' 13- 'scripts/snapdragon/**' 14- 'CMakePresets.json' 15 16pull_request : 17types : [ opened , synchronize , reopened ] 18paths : 19- '.github/workflows/build-and-test-snapdragon.yml' 20- 'ggml/include/ggml-hexagon.h' 21- 'ggml/src/ggml-hexagon/**' 22- 'docs/backend/snapdragon/**' 23- 'scripts/snapdragon/**' 24- 'CMakePresets.json' 25 26concurrency : 27group : ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} 28cancel-in-progress : true 29 30jobs : 31android-ndk-snapdragon : 32runs-on : ubuntu-latest 33container : 34image : 'ghcr.io/snapdragon-toolchain/arm64-android:v0.7' 35defaults : 36run : 37shell : bash 38 39steps : 40- name : Clone 41uses : actions/checkout@v6 42with : 43fetch-depth : 0 44lfs : false 45 46- name : Build Llama.CPP for Snapdragon Android 47id : build_llama_cpp_snapdragon_android 48run : | 49cp docs/backend/snapdragon/CMakeUserPresets.json . 50cmake --preset arm64-android-snapdragon-release -B build 51cmake --build build 52cmake --install build --prefix pkg-snapdragon/llama.cpp 53 54- name : Upload Llama.CPP Snapdragon Android Build Artifact 55if : ${{ always() && steps.build_llama_cpp_snapdragon_android.outcome == 'success' }} 56uses : actions/upload-artifact@v6 57with : 58name : llama-cpp-android-arm64-snapdragon 59path : pkg-snapdragon/llama.cpp 60 61linux-iot-snapdragon : 62runs-on : ubuntu-latest 63container : 64image : 'ghcr.io/snapdragon-toolchain/arm64-linux:v0.7' 65defaults : 66run : 67shell : bash 68 69steps : 70- name : Clone 71uses : actions/checkout@v6 72with : 73fetch-depth : 0 74lfs : false 75 76- name : Build Llama.CPP for Snapdragon Linux IoT 77id : build_llama_cpp_snapdragon_linux 78run : | 79cp docs/backend/snapdragon/CMakeUserPresets.json . 80cmake --preset arm64-linux-snapdragon-release -B build-snapdragon -DGGML_OPENCL=ON 81cmake --build build-snapdragon -j $(nproc) 82cmake --install build-snapdragon --prefix pkg-snapdragon/llama.cpp 83 84- name : Upload Llama.CPP Snapdragon Linux IoT Build Artifact 85if : ${{ always() && steps.build_llama_cpp_snapdragon_linux.outcome == 'success' }} 86uses : actions/upload-artifact@v6 87with : 88name : llama-cpp-linux-arm64-snapdragon 89path : pkg-snapdragon/llama.cpp 90 91test-snapdragon-qdc : 92name : Test on QDC Device (${{ matrix.device }}) 93needs : [ android-ndk-snapdragon , linux-iot-snapdragon ] 94runs-on : ubuntu-24.04-arm 95timeout-minutes : 90 96strategy : 97fail-fast : false 98matrix : 99device : [ SM8750 , SM8850 , QCS9075M ] 100 101steps : 102- name : Checkout 103uses : actions/checkout@v6 104 105- name : Download build artifact 106uses : actions/download-artifact@v7 107with : 108name : ${{ startsWith(matrix.device, 'QCS') && 'llama-cpp-linux-arm64-snapdragon' || 'llama-cpp-android-arm64-snapdragon' }} 109path : pkg-snapdragon/llama.cpp 110 111- name : Set up Python 112uses : actions/setup-python@v6 113with : 114python-version : '3.x' 115cache : pip 116 117- name : Install system dependencies 118run : | 119sudo apt-get update 120sudo apt-get install -y curl unzip 121 122- name : Install QDC SDK wheel 123run : | 124curl -fSL -o qdc_sdk.zip https://softwarecenter.qualcomm.com/api/download/software/tools/Qualcomm_Device_Cloud_SDK/All/0.2.3/qualcomm_device_cloud_sdk-0.2.3.zip 125unzip qdc_sdk.zip -d qdc_sdk 126pip install qdc_sdk/qualcomm_device_cloud_sdk-0.2.3-py3-none-any.whl 127 128- name : Check QDC API key 129id : check_secret 130env : 131QDC_API_KEY : ${{ secrets.QDC_API_KEY }} 132run : echo "has-qdc-key=${{ env.QDC_API_KEY != '' }}" >> "$GITHUB_OUTPUT" 133 134- name : Run QDC tests (${{ matrix.device }}) 135if : steps.check_secret.outputs.has-qdc-key == 'true' 136run : | 137python scripts/snapdragon/qdc/run_qdc_jobs.py \ 138--test all \ 139--pkg-dir pkg-snapdragon/llama.cpp \ 140--model-url "https://huggingface.co/bartowski/Llama-3.2-1B-Instruct-GGUF/resolve/main/Llama-3.2-1B-Instruct-Q4_0.gguf" \ 141--device ${{ matrix.device }} \ 142${{ startsWith(matrix.device, 'QCS') && '--retries 2 --retry-delay 300' || '' }} 143env : 144QDC_API_KEY : ${{ secrets.QDC_API_KEY }} 145 146- name : Cleanup 147if : always() 148run : rm -rf pkg-snapdragon qdc_sdk qdc_sdk.zip