Skip to content

Vulkan: Arc Pro B70 (BMG G31/xe) resets CCS engine during Ternary-Bonsai-27B-Q2_0 generation #89

Description

@penica

Summary

llama-server built from the Prism branch runs Ternary-Bonsai-27B-Q2_0.gguf on an Intel Arc Pro B70 through Vulkan at about 27.5 tok/s, then reliably terminates with vk::DeviceLostError. The Linux xe driver reports a timed-out CCS job in llama-server and resets the engine.

This reproduced with both the default automatic configuration and a reduced single-slot configuration, so it does not appear to be caused by prompt cache, four parallel slots, or a large context.

Build

version: 9596 (9fcaed763)
built with GNU 11.4.0 for Linux x86_64

Environment

OS: Linux 7.0.0-28-generic x86_64
GPU: Intel Arc Pro B70 / Battlemage G31 (PCI 8086:e223)
Kernel driver: xe
Vulkan driver: Intel open-source Mesa driver
Mesa: 26.0.3-1ubuntu1
Vulkan API: 1.4.335
VRAM reported free at startup: ~29.35 GiB / 32.66 GiB

Model

Ternary-Bonsai-27B-Q2_0.gguf

Reproduction

./llama-server \
  -m ../Ternary-Bonsai-27B-Q2_0.gguf \
  --device Vulkan0 \
  --gpu-layers all \
  --split-mode none \
  --main-gpu 0 \
  --parallel 1 \
  -c 16384 \
  --cache-ram 0 \
  --host 0.0.0.0 \
  --port 9999

Send a normal chat-completions request. Generation runs normally for several hundred tokens, then the process aborts. In the latest reproduction it reached 595 decoded tokens at 27.53 tok/s before crashing.

Application error

terminate called after throwing an instance of 'vk::DeviceLostError'
  what():  vk::Device::waitForFences: ErrorDeviceLost
Aborted (core dumped)

Kernel evidence

xe 0000:23:00.0: [drm] Tile0: GT0: Engine reset: engine_class=ccs, logical_mask: 0x1, guc_id=2, state=0x209
xe 0000:23:00.0: [drm] Tile0: GT0: Timedout job: seqno=14893, lrc_seqno=14893, guc_id=2, flags=0x0 in llama-server [3529467]

An earlier reproduction with the default --parallel auto / -c 65536 settings produced the same error and an xe device coredump.

What was tried

  • Re-downloaded and used the fork-compatible Ternary-Bonsai-27B-Q2_0.gguf (not PQ2_0).
  • Explicitly selected Vulkan0 and requested all GPU layers.
  • Reduced from four 65K slots to one 16K slot.
  • Disabled the llama-server prompt cache with --cache-ram 0.

All GPU configurations tested eventually hit the same CCS engine timeout and VK_ERROR_DEVICE_LOST. CPU-only mode avoids the Vulkan crash.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions