mirror of
https://github.com/modelscope/FunASR.git
synced 2026-10-12 02:19:18 +00:00
feat(runtime): publish Windows Vulkan binary (#3398)
* feat(runtime): add Windows Vulkan release asset * fix(ci): install SPIR-V headers for Windows Vulkan * fix(runtime): make Windows Vulkan package standalone
This commit is contained in:
@@ -100,6 +100,27 @@ jobs:
|
||||
-DGGML_FMA=ON
|
||||
-DGGML_F16C=ON
|
||||
-DGGML_BMI2=ON
|
||||
- os: windows-latest
|
||||
name: windows-x64-vulkan
|
||||
vulkan: true
|
||||
windows_vulkan: true
|
||||
build_target: llama-funasr-sensevoice
|
||||
timeout_minutes: 90
|
||||
cmake_flags: >-
|
||||
-DGGML_NATIVE=OFF
|
||||
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
|
||||
-DGGML_VULKAN=ON
|
||||
-DGGML_OPENMP=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-cuda
|
||||
cuda: true
|
||||
@@ -143,11 +164,38 @@ jobs:
|
||||
if: matrix.cuda
|
||||
run: nvcc --version
|
||||
- name: Install Vulkan SDK packages
|
||||
if: matrix.vulkan
|
||||
if: matrix.vulkan && runner.os == 'Linux'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libvulkan-dev glslc spirv-headers vulkan-tools
|
||||
vulkaninfo --summary || true
|
||||
- name: Install Vulkan SDK
|
||||
if: matrix.windows_vulkan
|
||||
uses: humbletim/install-vulkan-sdk@30ba978f977e81b72d091fc8888feb1fb26f9aff
|
||||
with:
|
||||
version: '1.4.309.0'
|
||||
cache: true
|
||||
- name: Show Vulkan shader compiler
|
||||
if: matrix.windows_vulkan
|
||||
run: glslc --version
|
||||
- name: Install SPIR-V Headers CMake package
|
||||
if: matrix.windows_vulkan
|
||||
run: |
|
||||
runner_temp="$(cygpath -u "$RUNNER_TEMP")"
|
||||
headers_src="$runner_temp/SPIRV-Headers"
|
||||
headers_build="$runner_temp/SPIRV-Headers-build"
|
||||
headers_prefix="$runner_temp/SPIRV-Headers-install"
|
||||
git init -q "$headers_src"
|
||||
git -C "$headers_src" remote add origin https://github.com/KhronosGroup/SPIRV-Headers.git
|
||||
git -C "$headers_src" fetch --depth 1 origin 09913f088a1197aba4aefd300a876b2ebbaa3391
|
||||
git -C "$headers_src" checkout --detach FETCH_HEAD
|
||||
cmake -S "$headers_src" -B "$headers_build" \
|
||||
-DSPIRV_HEADERS_ENABLE_INSTALL=ON \
|
||||
-DSPIRV_HEADERS_ENABLE_TESTS=OFF \
|
||||
-DCMAKE_INSTALL_PREFIX="$headers_prefix"
|
||||
cmake --install "$headers_build" --config Release
|
||||
cmake_prefix_path="$(cygpath -m "$headers_prefix")"
|
||||
echo "CMAKE_PREFIX_PATH=$cmake_prefix_path" >> "$GITHUB_ENV"
|
||||
- name: Configure and build
|
||||
run: |
|
||||
# Release binaries must be portable across user machines, not tuned to
|
||||
@@ -209,4 +257,4 @@ jobs:
|
||||
gh release create "$tag" dist/* \
|
||||
--repo "${{ github.repository }}" \
|
||||
--title "FunASR llama.cpp runtime $version" \
|
||||
--notes "Prebuilt self-contained binaries for the FunASR llama.cpp / GGUF runtime: SenseVoice, Paraformer and Fun-ASR-Nano with built-in FSMN-VAD. Download the default quantized model with \`bash download-funasr-model.sh <sensevoice|paraformer|nano>\` (the helper requires the Hugging Face CLI: \`pip install -U huggingface_hub\`), 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. The Linux Vulkan asset is \`linux-x64-vulkan\`; it requires a working Vulkan driver/ICD and enables SenseVoiceSmall graph execution with \`llama-funasr-sensevoice ... --backend vulkan\`. Build from source with \`-DGGML_VULKAN=ON\` to validate distro-specific GPU stacks. The Windows CUDA asset is \`windows-x64-cuda\`; it requires an NVIDIA driver compatible with the CUDA Toolkit version configured by the release workflow, targets CUDA architecture 86, and enables SenseVoiceSmall graph execution with \`llama-funasr-sensevoice ... --backend cuda\`. Build from source for other GPU architectures. No Python ASR runtime or local build is required. Docs: $docs"
|
||||
--notes "Prebuilt self-contained binaries for the FunASR llama.cpp / GGUF runtime: SenseVoice, Paraformer and Fun-ASR-Nano with built-in FSMN-VAD. Download the default quantized model with \`bash download-funasr-model.sh <sensevoice|paraformer|nano>\` (the helper requires the Hugging Face CLI: \`pip install -U huggingface_hub\`), 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. The Vulkan assets are \`linux-x64-vulkan\` and \`windows-x64-vulkan\`; they require a working Vulkan driver/ICD and enable SenseVoiceSmall graph execution with \`llama-funasr-sensevoice ... --backend vulkan\`. Build from source with \`-DGGML_VULKAN=ON\` to validate platform-specific GPU stacks. The Windows CUDA asset is \`windows-x64-cuda\`; it requires an NVIDIA driver compatible with the CUDA Toolkit version configured by the release workflow, targets CUDA architecture 86, and enables SenseVoiceSmall graph execution with \`llama-funasr-sensevoice ... --backend cuda\`. Build from source for other GPU architectures. No Python ASR runtime or local build is required. Docs: $docs"
|
||||
|
||||
Reference in New Issue
Block a user