Vulkan crash on Intel iGPU with PocketTTS for longer inputs
Description
PocketTTS works correctly on my Intel integrated GPU for short inputs, but crashes with a Vulkan workgroup-limit assertion when processing the following longer input.
The same input works correctly when using my NVIDIA RTX 3050 Laptop GPU.
Environment
OS: Ubuntu Linux
Backend: Vulkan
Model: PocketTTS (GGUF)
Reference voice: demo_1_man
GPU 0: Intel(R) Graphics (ADL GT2)
GPU 1: NVIDIA GeForce RTX 3050 Laptop GPU
Reproduction input
Timothy Donald Cook (born November 1, 1960) is an American business executive who served as the chief executive officer (CEO) of Apple Inc. from 2011 to 2026, and has been the company's executive chairman since September 2026. Cook joined the technology company in 1998 as senior vice president for worldwide operations, and later served as vice president for worldwide sales and operations and then as chief operating officer under co-founder Steve Jobs. He was appointed chief executive in 2011, when Jobs resigned due to failing health. Under Cook, Apple grew into one of the world's most valuable companies; in 2025 it was the second largest technology company by revenue in the world, at US$416 billion.[1] Cook led a succession plan that saw John Ternus succeed him as CEO.
The reference voice used was:
Observed behavior
A short sentence works successfully on the Intel iGPU, and is actually faster than CPU execution.
With the longer input above:
Backend | Result
-- | --
CPU | Works
Intel iGPU / Vulkan | Crashes
NVIDIA RTX 3050 / Vulkan | Works
The Intel Vulkan backend aborts with:
/home/runner/work/audio.cpp/audio.cpp/external/ggml/src/ggml-vulkan/ggml-vulkan.cpp:6819:
GGML_ASSERT(wg0 <= ctx->device->properties.limits.maxComputeWorkGroupCount[0] &&
wg1 <= ctx->device->properties.limits.maxComputeWorkGroupCount[1] &&
wg2 <= ctx->device->properties.limits.maxComputeWorkGroupCount[2]) failed
Aborted (core dumped)
Potentially relevant commit
I noticed commit 43833e8749f24466b680266e9d805b7d58386748, "Apply upstream Vulkan fill dispatch fix (#508)".
That commit changes the Vulkan GGML_OP_FILL dispatch to distribute work over two dimensions specifically to avoid exceeding maxComputeWorkGroupCount.
The error I'm seeing is also a maxComputeWorkGroupCount assertion, and the problem only appears once the workload becomes sufficiently large, so this may be related. I have not yet determined whether the operation triggering my crash is actually GGML_OP_FILL.
Version information
I also built audio.cpp from the latest repository a few days before reporting this, so my local build may predate the above fix.
The crash was also observed using the audio-v0.7.3-bin-ubuntu-x64-vulkan binary release.
Questions
Could this be another instance of the Vulkan dispatch/workgroup-limit issue addressed by #508?
In particular, it would be useful to determine:
Which GGML/Vulkan operation is triggering the assertion.
Whether GGML_OP_FILL is involved.
Whether the Intel Vulkan implementation requires additional handling for large dispatches.
Whether this is already fixed on current audio.cpp main.
I can provide additional logs or test the latest main if useful.
## Vulkan crash on Intel iGPU with PocketTTS for longer inputs
Description
PocketTTS works correctly on my Intel integrated GPU for short inputs, but crashes with a Vulkan workgroup-limit assertion when processing the following longer input.
The same input works correctly when using my NVIDIA RTX 3050 Laptop GPU.
Environment
-
OS: Ubuntu Linux
-
Backend: Vulkan
-
Model: PocketTTS (GGUF)
-
Reference voice: demo_1_man
-
GPU 0: Intel(R) Graphics (ADL GT2)
- Mesa Intel open-source Vulkan driver
fp16: 1
bf16: 0
- warp size: 32
- int dot: 0
- matrix cores: none
-
GPU 1: NVIDIA GeForce RTX 3050 Laptop GPU
Reproduction input
Timothy Donald Cook (born November 1, 1960) is an American business executive who served as the chief executive officer (CEO) of Apple Inc. from 2011 to 2026, and has been the company's executive chairman since September 2026. Cook joined the technology company in 1998 as senior vice president for worldwide operations, and later served as vice president for worldwide sales and operations and then as chief operating officer under co-founder Steve Jobs. He was appointed chief executive in 2011, when Jobs resigned due to failing health. Under Cook, Apple grew into one of the world's most valuable companies; in 2025 it was the second largest technology company by revenue in the world, at US$416 billion.[1] Cook led a succession plan that saw John Ternus succeed him as CEO.
The reference voice used was:
Observed behavior
A short sentence works successfully on the Intel iGPU, and is actually faster than CPU execution.
With the longer input above:
| Backend |
Result |
| CPU |
Works |
| Intel iGPU / Vulkan |
Crashes |
| NVIDIA RTX 3050 / Vulkan |
Works |
The Intel Vulkan backend aborts with:
/home/runner/work/audio.cpp/audio.cpp/external/ggml/src/ggml-vulkan/ggml-vulkan.cpp:6819:
GGML_ASSERT(wg0 <= ctx->device->properties.limits.maxComputeWorkGroupCount[0] &&
wg1 <= ctx->device->properties.limits.maxComputeWorkGroupCount[1] &&
wg2 <= ctx->device->properties.limits.maxComputeWorkGroupCount[2]) failed
Aborted (core dumped)
Potentially relevant commit
I noticed commit [43833e8749f24466b680266e9d805b7d58386748](https://github.com/0xShug0/audio.cpp/commit/43833e8749f24466b680266e9d805b7d58386748), "Apply upstream Vulkan fill dispatch fix (#508)".
That commit changes the Vulkan GGML_OP_FILL dispatch to distribute work over two dimensions specifically to avoid exceeding maxComputeWorkGroupCount.
The error I'm seeing is also a maxComputeWorkGroupCount assertion, and the problem only appears once the workload becomes sufficiently large, so this may be related. I have not yet determined whether the operation triggering my crash is actually GGML_OP_FILL.
Version information
I also built audio.cpp from the latest repository a few days before reporting this, so my local build may predate the above fix.
The crash was also observed using the audio-v0.7.3-bin-ubuntu-x64-vulkan binary release.
Questions
Could this be another instance of the Vulkan dispatch/workgroup-limit issue addressed by #508?
In particular, it would be useful to determine:
- Which GGML/Vulkan operation is triggering the assertion.
- Whether
GGML_OP_FILL is involved.
- Whether the Intel Vulkan implementation requires additional handling for large dispatches.
- Whether this is already fixed on current
audio.cpp main.
I can provide additional logs or test the latest main if useful.
Vulkan crash on Intel iGPU with PocketTTS for longer inputs
Description
PocketTTS works correctly on my Intel integrated GPU for short inputs, but crashes with a Vulkan workgroup-limit assertion when processing the following longer input.
The same input works correctly when using my NVIDIA RTX 3050 Laptop GPU.
Environment
OS: Ubuntu Linux
Backend: Vulkan
Model: PocketTTS (GGUF)
Reference voice:
demo_1_manGPU 0: Intel(R) Graphics (ADL GT2)
Mesa Intel open-source Vulkan driver
fp16: 1bf16: 0warp size: 32
int dot: 0
matrix cores: none
GPU 1: NVIDIA GeForce RTX 3050 Laptop GPU
Reproduction input
The reference voice used was:
Observed behavior
A short sentence works successfully on the Intel iGPU, and is actually faster than CPU execution.
With the longer input above:
Backend | Result -- | -- CPU | Works Intel iGPU / Vulkan | Crashes NVIDIA RTX 3050 / Vulkan | WorksThe Intel Vulkan backend aborts with:
Potentially relevant commit
I noticed commit
43833e8749f24466b680266e9d805b7d58386748, "Apply upstream Vulkan fill dispatch fix (#508)".That commit changes the Vulkan
GGML_OP_FILLdispatch to distribute work over two dimensions specifically to avoid exceedingmaxComputeWorkGroupCount.The error I'm seeing is also a
maxComputeWorkGroupCountassertion, and the problem only appears once the workload becomes sufficiently large, so this may be related. I have not yet determined whether the operation triggering my crash is actuallyGGML_OP_FILL.Version information
I also built audio.cpp from the latest repository a few days before reporting this, so my local build may predate the above fix.
The crash was also observed using the
audio-v0.7.3-bin-ubuntu-x64-vulkanbinary release.Questions
Could this be another instance of the Vulkan dispatch/workgroup-limit issue addressed by #508?
In particular, it would be useful to determine:
Which GGML/Vulkan operation is triggering the assertion.
Whether
GGML_OP_FILLis involved.Whether the Intel Vulkan implementation requires additional handling for large dispatches.
Whether this is already fixed on current
audio.cppmain.I can provide additional logs or test the latest main if useful.
## Vulkan crash on Intel iGPU with PocketTTS for longer inputsDescription
PocketTTS works correctly on my Intel integrated GPU for short inputs, but crashes with a Vulkan workgroup-limit assertion when processing the following longer input.
The same input works correctly when using my NVIDIA RTX 3050 Laptop GPU.
Environment
OS: Ubuntu Linux
Backend: Vulkan
Model: PocketTTS (GGUF)
Reference voice:
demo_1_manGPU 0: Intel(R) Graphics (ADL GT2)
fp16: 1bf16: 0GPU 1: NVIDIA GeForce RTX 3050 Laptop GPU
Reproduction input
The reference voice used was:
Observed behavior
A short sentence works successfully on the Intel iGPU, and is actually faster than CPU execution.
With the longer input above:
The Intel Vulkan backend aborts with:
Potentially relevant commit
I noticed commit
[43833e8749f24466b680266e9d805b7d58386748](https://github.com/0xShug0/audio.cpp/commit/43833e8749f24466b680266e9d805b7d58386748), "Apply upstream Vulkan fill dispatch fix (#508)".That commit changes the Vulkan
GGML_OP_FILLdispatch to distribute work over two dimensions specifically to avoid exceedingmaxComputeWorkGroupCount.The error I'm seeing is also a
maxComputeWorkGroupCountassertion, and the problem only appears once the workload becomes sufficiently large, so this may be related. I have not yet determined whether the operation triggering my crash is actuallyGGML_OP_FILL.Version information
I also built audio.cpp from the latest repository a few days before reporting this, so my local build may predate the above fix.
The crash was also observed using the
audio-v0.7.3-bin-ubuntu-x64-vulkanbinary release.Questions
Could this be another instance of the Vulkan dispatch/workgroup-limit issue addressed by #508?
In particular, it would be useful to determine:
GGML_OP_FILLis involved.audio.cppmain.I can provide additional logs or test the latest main if useful.