Team Ai
Modelpublic

Felipe97/llama-cpp-compiled

sourceHugging Faceupdated 21d agoView on Hugging Face
0likes1.2kdownloads
build-and-test-snapdragon.yml149 linesDownload Raw Back to workflows
1name: CI (snapdragon)2 3on:4  workflow_dispatch:5  push:6    branches:7      - master8    paths: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 16  pull_request:17    types: [opened, synchronize, reopened]18    paths: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:27  group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}28  cancel-in-progress: true29 30jobs:31  android-ndk-snapdragon:32    runs-on: ubuntu-24.04  # previously ubuntu-latest33    container:34      image: 'ghcr.io/snapdragon-toolchain/arm64-android:v0.7'35    defaults:36      run:37        shell: bash38 39    steps:40      - name: Clone41        uses: actions/checkout@v642        with:43          fetch-depth: 044          lfs: false45 46      - name: Build Llama.CPP for Snapdragon Android47        id: build_llama_cpp_snapdragon_android48        run: |49          cp docs/backend/snapdragon/CMakeUserPresets.json .50          cmake --preset arm64-android-snapdragon-release -B build51          cmake --build build52          cmake --install build --prefix pkg-snapdragon/llama.cpp53 54      - name: Upload Llama.CPP Snapdragon Android Build Artifact55        if: ${{ always() && steps.build_llama_cpp_snapdragon_android.outcome == 'success' }}56        uses: actions/upload-artifact@v657        with:58          name: llama-cpp-android-arm64-snapdragon59          path: pkg-snapdragon/llama.cpp60 61  linux-iot-snapdragon:62    runs-on: ubuntu-24.04  # previously ubuntu-latest63    container:64      image: 'ghcr.io/snapdragon-toolchain/arm64-linux:v0.7'65    defaults:66      run:67        shell: bash68 69    steps:70      - name: Clone71        uses: actions/checkout@v672        with:73          fetch-depth: 074          lfs: false75 76      - name: Build Llama.CPP for Snapdragon Linux IoT77        id: build_llama_cpp_snapdragon_linux78        run: |79          cp docs/backend/snapdragon/CMakeUserPresets.json .80          cmake --preset arm64-linux-snapdragon-release -B build-snapdragon -DGGML_OPENCL=ON81          cmake --build build-snapdragon -j $(nproc)82          cmake --install build-snapdragon --prefix pkg-snapdragon/llama.cpp83 84      - name: Upload Llama.CPP Snapdragon Linux IoT Build Artifact85        if: ${{ always() && steps.build_llama_cpp_snapdragon_linux.outcome == 'success' }}86        uses: actions/upload-artifact@v687        with:88          name: llama-cpp-linux-arm64-snapdragon89          path: pkg-snapdragon/llama.cpp90 91  test-snapdragon-qdc:92    name: Test on QDC Device (${{ matrix.device }})93    needs: [android-ndk-snapdragon, linux-iot-snapdragon]94    runs-on: ubuntu-24.04-arm95    timeout-minutes: 9096    strategy:97      fail-fast: false98      matrix:99        device: [SM8750, SM8850, QCS9075M]100 101    steps:102      - name: Checkout103        uses: actions/checkout@v6104 105      - name: Download build artifact106        uses: actions/download-artifact@v7107        with:108          name: ${{ startsWith(matrix.device, 'QCS') && 'llama-cpp-linux-arm64-snapdragon' || 'llama-cpp-android-arm64-snapdragon' }}109          path: pkg-snapdragon/llama.cpp110 111      - name: Set up Python112        uses: actions/setup-python@v6113        with:114          python-version: '3.x'115          cache: pip116 117      - name: Install system dependencies118        run: |119          sudo apt-get update120          sudo apt-get install -y curl unzip121 122      - name: Install QDC SDK wheel123        run: |124          curl -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.zip125          unzip qdc_sdk.zip -d qdc_sdk126          pip install qdc_sdk/qualcomm_device_cloud_sdk-0.2.3-py3-none-any.whl127 128      - name: Check QDC API key129        id: check_secret130        env:131          QDC_API_KEY: ${{ secrets.QDC_API_KEY }}132        run: echo "has-qdc-key=${{ env.QDC_API_KEY != '' }}" >> "$GITHUB_OUTPUT"133 134      - name: Run QDC tests (${{ matrix.device }})135        if: steps.check_secret.outputs.has-qdc-key == 'true'136        run: |137          python 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' || '' }}143        env:144          QDC_API_KEY: ${{ secrets.QDC_API_KEY }}145 146      - name: Cleanup147        if: always()148        run: rm -rf pkg-snapdragon qdc_sdk qdc_sdk.zip149