# Transformer-derived SDPA shapes for GPU CI.
# Shapes mirror configurations from tests/gtests/internals/test_sdpa.cpp
# (the primary functional test for the GPU SDPA kernel).
# Format: Q_dims:K_dims:V_dims  (batch x heads x seq x head_dim)

# Encoder-style: 12 heads, head_size=64, seq=384 (cf. test_sdpa BERT-like)
1x12x384x64:1x12x64x384:1x12x384x64

# Encoder-style: 16 heads, head_size=64, seq=384
1x16x384x64:1x16x64x384:1x16x384x64

# LLaMA-2-7B prompt: 32 heads, head_size=128, seq=512
# (cf. test_sdpa llama_2_7b_chat suite)
1x32x512x128:1x32x128x512:1x32x512x128

# GQA — LLaMA-3-8B: q_heads=32, kv_heads=8, head_size=128, seq=384
# (cf. test_sdpa llama_3_8b suite)
1x32x384x128:1x8x128x384:1x8x384x128

# GQA — Qwen2-7B: q_heads=28, kv_heads=4, head_size=128, seq=384
# (cf. test_sdpa qwen2_7b suite)
1x28x384x128:1x4x128x384:1x4x384x128

# Non-standard head_size (Phi3): 32 heads, head_size=96, seq=384
# (cf. test_sdpa phi3_mini_4k_instruct suite)
1x32x384x96:1x32x96x384:1x32x384x96

# Batch > 1
2x8x384x64:2x8x64x384:2x8x384x64

# Small head sizes (<= 16) with a short sequence. These select the
# head_size=16 configs; without them the work-group tile is several times
# larger than the whole problem. head_size=6 mirrors tnt_s_patch16_224.
1x4x16x6:1x4x6x16:1x4x16x6
2x4x16x6:2x4x6x16:2x4x16x6
1x16x16x8:1x16x8x16:1x16x16x8
1x32x16x16:1x32x16x16:1x32x16x16

# Same, with a thin Q (second-token decode)
1x4x1x6:1x4x6x16:1x4x16x6
1x16x1x8:1x16x8x8:1x16x8x8
1x32x1x16:1x32x16x16:1x32x16x16

# GQA with a small head size and a thin Q
1x16x1x16:1x4x16x16:1x4x16x16

# Small head size with a long sequence: stays on the non-thin-Q config,
# guarding the head_size=16 rows against capturing long sequences.
1x16x384x16:1x16x16x384:1x16x384x16
