mirror of
https://github.com/modelscope/FunASR.git
synced 2026-10-12 02:19:18 +00:00
fix(runtime): bundle Windows CUDA dependencies
Signed-off-by: LauraGPT <[email protected]>
This commit is contained in:
@@ -135,6 +135,8 @@ jobs:
|
||||
-DGGML_CUDA_FA=OFF
|
||||
-DGGML_CUDA_NCCL=OFF
|
||||
-DGGML_CUDA_GRAPHS=OFF
|
||||
-DGGML_OPENMP=OFF
|
||||
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
|
||||
-DGGML_AVX=OFF
|
||||
-DGGML_AVX2=OFF
|
||||
-DGGML_AVX_VNNI=OFF
|
||||
@@ -159,6 +161,8 @@ jobs:
|
||||
-DGGML_CUDA_FA=OFF
|
||||
-DGGML_CUDA_NCCL=OFF
|
||||
-DGGML_CUDA_GRAPHS=OFF
|
||||
-DGGML_OPENMP=OFF
|
||||
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
|
||||
-DGGML_AVX=OFF
|
||||
-DGGML_AVX2=OFF
|
||||
-DGGML_AVX_VNNI=OFF
|
||||
@@ -250,12 +254,47 @@ jobs:
|
||||
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
|
||||
if [ "${{ matrix.cuda }}" = "true" ]; then
|
||||
cuda_root="$(cygpath -u "$CUDA_PATH")"
|
||||
for dll in cublas64_13.dll cublasLt64_13.dll; do
|
||||
source_path="$(find "$cuda_root" -type f -iname "$dll" -print -quit)"
|
||||
if [ -z "$source_path" ]; then
|
||||
echo "Missing CUDA redistributable: $dll" >&2
|
||||
exit 1
|
||||
fi
|
||||
cp "$source_path" pkg/
|
||||
done
|
||||
license_path="$(find "$cuda_root" -maxdepth 3 -type f \
|
||||
\( -iname 'EULA.txt' -o -iname 'LICENSE' \) -print -quit)"
|
||||
if [ -z "$license_path" ]; then
|
||||
echo "Missing CUDA redistribution license" >&2
|
||||
exit 1
|
||||
fi
|
||||
cp "$license_path" pkg/NVIDIA-CUDA-LICENSE.txt
|
||||
fi
|
||||
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
|
||||
- name: Audit Windows CUDA package dependencies
|
||||
if: matrix.cuda
|
||||
run: |
|
||||
exe="pkg/llama-funasr-sensevoice.exe"
|
||||
test -f "$exe"
|
||||
test -f pkg/cublas64_13.dll
|
||||
test -f pkg/cublasLt64_13.dll
|
||||
test -f pkg/NVIDIA-CUDA-LICENSE.txt
|
||||
dependencies="$(objdump -p "$exe" | awk '/DLL Name:/ { print $3 }')"
|
||||
printf '%s\n' "$dependencies"
|
||||
grep -Fxi 'cublas64_13.dll' <<<"$dependencies"
|
||||
for dll in MSVCP140.dll VCOMP140.DLL VCRUNTIME140.dll VCRUNTIME140_1.dll; do
|
||||
if grep -Fxi "$dll" <<<"$dependencies"; then
|
||||
echo "Unexpected dynamic runtime dependency: $dll" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: funasr-llamacpp-${{ matrix.name }}
|
||||
|
||||
@@ -67,6 +67,20 @@ def test_windows_cuda_build_uses_cuda_toolkit_and_flags():
|
||||
assert "--target \"${{ matrix.build_target }}\"" in workflow
|
||||
|
||||
|
||||
def test_windows_cuda_archives_bundle_runtime_dependencies():
|
||||
workflow = WORKFLOW.read_text(encoding="utf-8")
|
||||
|
||||
assert "-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded" in workflow
|
||||
assert "-DGGML_OPENMP=OFF" in workflow
|
||||
assert "cublas64_13.dll" in workflow
|
||||
assert "cublasLt64_13.dll" in workflow
|
||||
assert "NVIDIA-CUDA-LICENSE.txt" in workflow
|
||||
assert "Audit Windows CUDA package dependencies" in workflow
|
||||
assert "objdump -p" in workflow
|
||||
assert "MSVCP140.dll" in workflow
|
||||
assert "VCOMP140.DLL" in workflow
|
||||
|
||||
|
||||
def test_linux_vulkan_build_uses_vulkan_sdk_and_flags():
|
||||
workflow = WORKFLOW.read_text(encoding="utf-8")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user