modelscope / modelscope/FunASR
[Bug] Vulkan backend crashes on AMD GPUs on Windows (0xc0000005)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 20.4k
- Forks
- 2k
- Avg merge
- 4h 55m
- Merged PRs (30d)
- 169
Description
Bug Report: llama-funasr-sensevoice Vulkan Backend Crashes on AMD GPUs on Windows
中文报告
问题描述
在 Windows 系统下,使用 llama-funasr-sensevoice.exe 的 Vulkan 后端(--backend vulkan)时,程序在 AMD GPU 上崩溃,异常代码 0xc0000005(访问冲突)。
环境信息
- OS: Windows 11
- GPU: AMD Radeon RX 7600M XT (RDNA3) + AMD Radeon 780M (RDNA3, integrated)
- AMD 驱动版本: 32.0.31035.1003 (2026年7月24日,最新版)
- FunASR 版本: runtime-llamacpp-v0.1.9 (funasr-llamacpp-windows-x64-vulkan.zip)
- 模型: sensevoice-small-f16.gguf + fsmn-vad.gguf
复现步骤
- 下载并解压
funasr-llamacpp-windows-x64-vulkan.zip - 下载模型:
sensevoice-small-f16.gguf和fsmn-vad.gguf - 运行命令:
.\llama-funasr-sensevoice.exe -m models\sensevoice-small-f16.gguf --vad models\fsmn-vad.gguf -a audio\examples\zh.mp3 --backend vulkan
预期行为
程序应使用 AMD GPU (Vulkan) 完成语音识别并输出转录文本。
实际行为
程序在 GPU 设备检测后立即崩溃,Windows 事件查看器显示:
Application Error: llama-funasr-sensevoice.exe
Exception Code: 0xc0000005 (Access Violation)
Faulting Module: llama-funasr-sensevoice.exe
Faulting Offset: 0x0000000000271743
已尝试的解决方法
- ✅ CPU 模式 — 正常工作,转录结果正确
- ❌ 设置
GGML_VK_DISABLE_COOPMAT=1— coopmat 成功禁用(matrix cores: none),但崩溃依旧 - ❌ 设置
GGML_VK_DISABLE_COOPMAT=1+GGML_VK_DISABLE_COOPMAT2=1— 崩溃依旧 - ❌ 设置
GGML_VK_DISABLE_COOPMAT=1+GGML_VK_DISABLE_COOPMAT2=1+GGML_VK_DISABLE_INTEGER_DOT_PRODUCT=1— 崩溃依旧 - ❌ 设置
GGML_VULKAN_VALIDATE=1— 崩溃依旧 - ❌ 使用
GGML_VULKAN_DEVICE=0或1指定特定 GPU — 崩溃依旧 - ❌ 使用不同的驱动版本(从旧到新)— 均崩溃
崩溃分析
该崩溃与上游 ggml 项目中已知的 AMD Vulkan 驱动兼容性问题一致:
- whisper.cpp #3723: AMD 780M + VAD + beam-size 8 崩溃
- whisper.cpp #3806: RX 9070 XT + Flash Attention 崩溃
- llama.cpp #11074: ggml 为 AMD 专有驱动添加了 coopmat 黑名单
- llama.cpp #18763: 禁用大 coopmat 配置
FunASR 预编译二进制文件中缺少以下功能:
- 没有
--no-flash-attn参数来禁用有问题的 Flash Attention 着色器 - 仅设置
GGML_VK_DISABLE_COOPMAT=1不足以解决问题 - 崩溃发生在固定代码偏移
0x271743,与是否禁用 coopmat 无关
建议
- 在 FunASR 文档中注明:AMD GPU 在 Windows 上不支持 Vulkan 后端
- 添加
--no-flash-attn参数支持 - 在运行时检测 AMD Windows 驱动并自动禁用有问题的 Vulkan 功能
- 或者建议 AMD Windows 用户使用 CPU 版本
English Report
Description
The llama-funasr-sensevoice.exe Vulkan backend (--backend vulkan) crashes with exception code 0xc0000005 (Access Violation) on AMD GPUs under Windows.
Environment
- OS: Windows 11
- GPU: AMD Radeon RX 7600M XT (RDNA3) + AMD Radeon 780M (RDNA3, integrated)
- AMD Driver: 32.0.31035.1003 (July 24, 2026, latest)
- FunASR Version: runtime-llamacpp-v0.1.9 (funasr-llamacpp-windows-x64-vulkan.zip)
- Model: sensevoice-small-f16.gguf + fsmn-vad.gguf
Steps to Reproduce
- Download and extract
funasr-llamacpp-windows-x64-vulkan.zip - Download models:
sensevoice-small-f16.ggufandfsmn-vad.gguf - Run:
.\llama-funasr-sensevoice.exe -m models\sensevoice-small-f16.gguf --vad models\fsmn-vad.gguf -a audio\examples\zh.mp3 --backend vulkan
Expected Behavior
Program should transcribe audio using AMD GPU (Vulkan) acceleration.
Actual Behavior
Program crashes immediately after GPU device detection. Windows Event Log shows:
Application Error: llama-funasr-sensevoice.exe
Exception Code: 0xc0000005 (Access Violation)
Faulting Module: llama-funasr-sensevoice.exe
Faulting Offset: 0x0000000000271743
Attempted Workarounds
- ✅ CPU mode — works correctly
- ❌
GGML_VK_DISABLE_COOPMAT=1— coopmat disabled (matrix cores: none), still crashes - ❌
GGML_VK_DISABLE_COOPMAT=1+GGML_VK_DISABLE_COOPMAT2=1— still crashes - ❌
GGML_VK_DISABLE_COOPMAT=1+GGML_VK_DISABLE_COOPMAT2=1+GGML_VK_DISABLE_INTEGER_DOT_PRODUCT=1— still crashes - ❌
GGML_VULKAN_VALIDATE=1— still crashes - ❌
GGML_VULKAN_DEVICE=0or1— still crashes - ❌ Various driver versions (old to new) — all crash
Root Cause Analysis
This crash is consistent with known AMD Vulkan driver compatibility issues in upstream ggml:
- whisper.cpp #3723: AMD 780M + VAD crash
- whisper.cpp #3806: RX 9070 XT + Flash Attention crash
- llama.cpp #11074: ggml added coopmat blacklist for AMD proprietary driver
- llama.cpp #18763: Disabled large coopmat config on AMD proprietary driver
The FunASR pre-built binary is missing:
--no-flash-attnparameter to disable problematic Flash Attention shadersGGML_VK_DISABLE_COOPMAT=1alone is insufficient- Crash occurs at fixed offset
0x271743regardless of coopmat status
Suggestions
- Document in FunASR docs that AMD GPUs on Windows do not support the Vulkan backend
- Add
--no-flash-attnparameter support - Auto-detect AMD Windows driver and disable problematic Vulkan features at runtime
- Or direct AMD Windows users to use the CPU package
- Thought: 768ms
$ gh issue create --repo modelscope/FunASR --title "[Bug] Vulkan backend crashes on AMD GPUs on Windows (0xc0000005)" --body-file "D:\funasr-llamacpp-windows-x64-vulkan\bug_report.md" 2>&1
gh : ������gh����ʶ��Ϊ cmdlet���������ű��ļ�������г�������ơ��������Ƶ�ƴд���������·������ȷ��·����ȷ��Ȼ������
һ�Ρ�
����λ�� ��:1 �ַ�: 1 - gh issue create --repo modelscope/FunASR --title "[Bug] Vulkan backen ...
- ~~
- CategoryInfo : ObjectNotFound: (gh:String) [], CommandNotFoundException
- FullyQualifiedErrorId : CommandNotFoundException
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
First reproduce the documented PowerShell command with the Vulkan backend and compare its behavior with CPU mode and the listed GGML_VK workarounds. Review the linked upstream Vulkan crash reports and determine which proposed scope—documentation, a runtime option, or driver-feature handling—can be supported; done requires a reproducible AMD/Windows outcome and a defined mitigation.
Written by the indexing model from the issue text.
Assessment
- Domain
- backend, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100