main
yaml 56 lines 1.65 KB
Raw
1 # MLA decode-only benchmark configuration
2
3 model:
4 name: "deepseek-v3"
5 num_layers: 60
6 num_q_heads: 128 # Base value, can be swept for TP simulation
7 num_kv_heads: 1 # MLA uses single latent KV
8 head_dim: 576
9 kv_lora_rank: 512
10 qk_nope_head_dim: 128
11 qk_rope_head_dim: 64
12 v_head_dim: 128
13 block_size: 128 # CUTLASS MLA and FlashAttn MLA use 128
14
15 # Model parameter sweep: simulate tensor parallelism by varying num_q_heads
16 # TP=1: 128 heads, TP=2: 64 heads, TP=4: 32 heads, TP=8: 16 heads
17 model_parameter_sweep:
18 param_name: "num_q_heads"
19 values: [128, 64, 32, 16]
20 label_format: "{backend}_{value}h"
21
22 batch_specs:
23 # Small batches, varying sequence lengths
24 - "16q1s512" # 16 requests, 512 KV cache
25 - "16q1s1k" # 16 requests, 1k KV cache
26 - "16q1s2k" # 16 requests, 2k KV cache
27 - "16q1s4k" # 16 requests, 4k KV cache
28
29 # Medium batches
30 - "32q1s1k" # 32 requests, 1k KV cache
31 - "32q1s2k" # 32 requests, 2k KV cache
32 - "32q1s4k" # 32 requests, 4k KV cache
33 - "32q1s8k" # 32 requests, 8k KV cache
34
35 # Large batches
36 - "64q1s1k" # 64 requests, 1k KV cache
37 - "64q1s2k" # 64 requests, 2k KV cache
38 - "64q1s4k" # 64 requests, 4k KV cache
39 - "64q1s8k" # 64 requests, 8k KV cache
40
41 # Very large batches
42 - "128q1s1k" # 128 requests, 1k KV cache
43 - "128q1s2k" # 128 requests, 2k KV cache
44 - "128q1s4k" # 128 requests, 4k KV cache
45 - "128q1s8k" # 128 requests, 8k KV cache
46
47 # Long context
48 - "32q1s16k" # 32 requests, 16k KV cache
49 - "32q1s32k" # 32 requests, 32k KV cache
50
51 backends:
52 - FLASHMLA_SPARSE
53 - FLASHINFER_MLA_SPARSE
54
55 device: "cuda:0"
56 profile_memory: true