chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
name: Build llama.cpp runtime binaries
|
||||
|
||||
# Cross-platform prebuilt binaries for the FunASR llama.cpp / GGUF runtime,
|
||||
# like whisper.cpp's whisper-bin-*. Push a `runtime-llamacpp-v*` tag to publish
|
||||
# a GitHub Release with the binaries; or run manually (workflow_dispatch) to test
|
||||
# the build without creating a release.
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- 'runtime-llamacpp-v*'
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: build-${{ matrix.name }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: ubuntu-latest
|
||||
name: linux-x64
|
||||
cmake_flags: >-
|
||||
-DGGML_NATIVE=OFF
|
||||
-DGGML_AVX=OFF
|
||||
-DGGML_AVX2=OFF
|
||||
-DGGML_AVX_VNNI=OFF
|
||||
-DGGML_AVX512=OFF
|
||||
-DGGML_AVX512_VBMI=OFF
|
||||
-DGGML_AVX512_VNNI=OFF
|
||||
-DGGML_AVX512_BF16=OFF
|
||||
-DGGML_FMA=OFF
|
||||
-DGGML_F16C=OFF
|
||||
-DGGML_BMI2=OFF
|
||||
- os: ubuntu-latest
|
||||
name: linux-x64-avx2
|
||||
cmake_flags: >-
|
||||
-DGGML_NATIVE=OFF
|
||||
-DGGML_AVX=ON
|
||||
-DGGML_AVX2=ON
|
||||
-DGGML_AVX_VNNI=OFF
|
||||
-DGGML_AVX512=OFF
|
||||
-DGGML_AVX512_VBMI=OFF
|
||||
-DGGML_AVX512_VNNI=OFF
|
||||
-DGGML_AVX512_BF16=OFF
|
||||
-DGGML_FMA=ON
|
||||
-DGGML_F16C=ON
|
||||
-DGGML_BMI2=ON
|
||||
- os: ubuntu-24.04-arm
|
||||
name: linux-arm64
|
||||
cmake_flags: -DGGML_NATIVE=OFF
|
||||
- os: macos-latest
|
||||
name: macos-arm64
|
||||
cmake_flags: -DGGML_NATIVE=OFF
|
||||
- os: windows-latest
|
||||
name: windows-x64
|
||||
cmake_flags: >-
|
||||
-DGGML_NATIVE=OFF
|
||||
-DGGML_AVX=OFF
|
||||
-DGGML_AVX2=OFF
|
||||
-DGGML_AVX_VNNI=OFF
|
||||
-DGGML_AVX512=OFF
|
||||
-DGGML_AVX512_VBMI=OFF
|
||||
-DGGML_AVX512_VNNI=OFF
|
||||
-DGGML_AVX512_BF16=OFF
|
||||
-DGGML_FMA=OFF
|
||||
-DGGML_F16C=OFF
|
||||
-DGGML_BMI2=OFF
|
||||
- os: windows-latest
|
||||
name: windows-x64-avx2
|
||||
cmake_flags: >-
|
||||
-DGGML_NATIVE=OFF
|
||||
-DGGML_AVX=ON
|
||||
-DGGML_AVX2=ON
|
||||
-DGGML_AVX_VNNI=OFF
|
||||
-DGGML_AVX512=OFF
|
||||
-DGGML_AVX512_VBMI=OFF
|
||||
-DGGML_AVX512_VNNI=OFF
|
||||
-DGGML_AVX512_BF16=OFF
|
||||
-DGGML_FMA=ON
|
||||
-DGGML_F16C=ON
|
||||
-DGGML_BMI2=ON
|
||||
runs-on: ${{ matrix.os }}
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
working-directory: runtime/llama.cpp
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Configure and build
|
||||
run: |
|
||||
# Release binaries must be portable across user machines, not tuned to
|
||||
# the ephemeral CI runner CPU. A native ggml build may emit AVX512 or
|
||||
# AVX-VNNI instructions and then crash with SIGILL on ordinary CPUs.
|
||||
# Keep the default x64 package conservative, and publish explicit
|
||||
# x64-avx2 assets for machines that support AVX2/FMA/F16C/BMI2.
|
||||
cmake -B build -DCMAKE_BUILD_TYPE=Release ${{ matrix.cmake_flags }}
|
||||
cmake --build build --config Release -j 2
|
||||
- name: Package
|
||||
run: |
|
||||
mkdir -p pkg
|
||||
cp build/bin/llama-funasr-* pkg/ 2>/dev/null || true
|
||||
cp build/bin/Release/llama-funasr-* pkg/ 2>/dev/null || true
|
||||
cp README.md download-funasr-model.sh pkg/ 2>/dev/null || true
|
||||
echo "--- packaged binaries ---"; ls -la pkg
|
||||
if [ "${{ runner.os }}" = "Windows" ]; then
|
||||
7z a "funasr-llamacpp-${{ matrix.name }}.zip" ./pkg/*
|
||||
else
|
||||
tar czf "funasr-llamacpp-${{ matrix.name }}.tar.gz" -C pkg .
|
||||
fi
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: funasr-llamacpp-${{ matrix.name }}
|
||||
path: runtime/llama.cpp/funasr-llamacpp-${{ matrix.name }}.*
|
||||
if-no-files-found: error
|
||||
|
||||
release:
|
||||
needs: build
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: dist
|
||||
merge-multiple: true
|
||||
- name: Create GitHub Release
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
gh release create "${{ github.ref_name }}" dist/* \
|
||||
--repo "${{ github.repository }}" \
|
||||
--title "FunASR llama.cpp runtime ${{ github.ref_name }}" \
|
||||
--notes "Prebuilt self-contained binaries for the FunASR llama.cpp / GGUF runtime — SenseVoice, Paraformer and Fun-ASR-Nano with built-in FSMN-VAD (a whisper.cpp-style on-device ASR, strong on Chinese). Get a model with \`bash download-funasr-model.sh <sensevoice|paraformer|nano>\`, then run \`llama-funasr-cli\` / \`llama-funasr-sensevoice\` / \`llama-funasr-paraformer\`. Use the default x64 asset for maximum CPU compatibility; use the x64-avx2 asset on CPUs with AVX2/FMA/F16C/BMI2 for higher throughput. No Python, no build. Docs: runtime/llama.cpp/README.md"
|
||||
@@ -0,0 +1,21 @@
|
||||
name: Release on tag
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v*"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Create GitHub Release with auto-generated notes
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: gh release create "${{ github.ref_name }}" --generate-notes --verify-tag --title "${{ github.ref_name }}"
|
||||
@@ -0,0 +1,33 @@
|
||||
name: Update API Documentation
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- 'funasr/**/*.py'
|
||||
- 'scripts/gen_api_docs.py'
|
||||
- 'training.html'
|
||||
- '.github/workflows/update-api-docs.yml'
|
||||
|
||||
jobs:
|
||||
build-api-docs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Generate API docs
|
||||
run: python3 scripts/gen_api_docs.py
|
||||
|
||||
- name: Deploy to gh-pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./gh-pages-output
|
||||
publish_branch: gh-pages
|
||||
keep_files: true
|
||||
Reference in New Issue
Block a user