Skip to content

sycl: parallelize the non-contiguous concat kernel#25852

Open
Titaniumtown wants to merge 1 commit into
ggml-org:masterfrom
Titaniumtown:pr/sycl-concat-parallelize
Open

sycl: parallelize the non-contiguous concat kernel#25852
Titaniumtown wants to merge 1 commit into
ggml-org:masterfrom
Titaniumtown:pr/sycl-concat-parallelize

Conversation

@Titaniumtown

@Titaniumtown Titaniumtown commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Overview

The non-contiguous concat kernel launched a single-lane work-group (1, 1, 1), this PR changes it so that it will launch a (1, 1, SYCL_CONCAT_BLOCK_SIZE) one that can better utilize the hardware instead of having single-width iteration loops.

llama-bench (Arc Pro B70, Qwen3.6-27B-UD-Q4_K_XL, -fa on, q8_0 KV), on top of upstream master: pp2048 920 -> 1006 t/s (+9.4%)

Additional information

Should the 256 value that is shared among a bunch of macros in ggml/src/ggml-sycl/presets.hpp be dynamically set similar to #25205? I am wondering what the performance impact of setting that to 128 on Intel Alchemist hardware would be? May be faster due to 128 being the native work-group size.

Requirements

  • I have read and agree with the contributing guidelines
  • AI usage disclosure: YES, used Claude Opus 4.8 + Claude Fable 5 in a general auto-research loop that identified potential optimizations with access to an Intel Arc B70 and profiling ability. I then used Opus 4.8 to help me understand the codebase and the context of the code and debug issues.

Launch geometry only: the non-contiguous concat kernel launched a single-lane
work-group (1, 1, 1), now it will launch a (1, 1, SYCL_CONCAT_BLOCK_SIZE) one.

SYCL_CONCAT_BLOCK_SIZE is defined in `ggml/src/ggml-sycl/presets.hpp`.

llama-bench (Arc Pro B70, Qwen3.6-27B-UD-Q4_K_XL, -fa on, q8_0 KV),
on top of upstream master: pp2048 920 -> 1006 t/s (+9.4%)
@Titaniumtown
Titaniumtown requested a review from a team as a code owner July 18, 2026 04:37
@github-actions github-actions Bot added ggml changes relating to the ggml tensor library for machine learning SYCL https://en.wikipedia.org/wiki/SYCL - GPU programming language labels Jul 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ggml changes relating to the ggml tensor library for machine learning SYCL https://en.wikipedia.org/wiki/SYCL - GPU programming language

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant