跳转至

Linear Attention

本页暂无中文版。以下为英文原文。

10 ops, 385 workloads.

One table per op, one row per workload. Ratio is the fastest other implementation's device time divided by ours, so green is faster than it, plain is level with it, red is slower. Times are in ms. How these numbers are taken.

DeltaNetChunkFwd

q, k: [B, H, L, DK]v: [B, H, L, DV]beta: [B, H, L]

  • train-2kq, k, v: [2, 4, 2048, 64]beta: [2, 4, 2048]dtype=f16, bf16
  • train-4kq, k, v: [2, 4, 4096, 64]beta: [2, 4, 4096]dtype=f16, bf16
  • train-8kq, k, v: [2, 4, 8192, 64]beta: [2, 4, 8192]dtype=f16, bf16
  • train-16kq, k, v: [2, 4, 16384, 64]beta: [2, 4, 16384]dtype=f16, bf16
  • deltanet-1.3b-trainq, k, v: [1, 16, 256, 128]beta: [1, 16, 256]dtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
train-2kf160.98×0.0625fla0.061212.38%mem
bf160.98×0.0630fla0.061612.27%mem
train-4kf161.02×0.1089fla0.111214.19%mem
bf161.02×0.1094fla0.1119149%mem
train-8kf160.98×0.2157fla0.211914.39%mem
bf160.99×0.2165fla0.213614.29%mem
train-16kf161.00×0.4160fla0.415114.89%mem
bf161.00×0.4201fla0.418614.69%mem
deltanet-1.3b-trainbf161.33×0.0303fla0.040419.19%mem

DeltaNetChunkBwd

do, v, u: [B, H, L, DV]q, k, w: [B, H, L, DK]beta: [B, H, L]S: [B, H, NC + 1, DK, DV], f32Aw, Au: [B, H, L, chunk_size]

  • train-2kdo, q, k, v, Aw, Au, w, u: [2, 4, 2048, 64]beta: [2, 4, 2048]S: [2, 4, 33, 64, 64], f32dtype=f16, bf16
  • train-4kdo, q, k, v, Aw, Au, w, u: [2, 4, 4096, 64]beta: [2, 4, 4096]S: [2, 4, 65, 64, 64], f32dtype=f16, bf16
  • train-8kdo, q, k, v, Aw, Au, w, u: [2, 4, 8192, 64]beta: [2, 4, 8192]S: [2, 4, 129, 64, 64], f32dtype=f16, bf16
  • train-16kdo, q, k, v, Aw, Au, w, u: [2, 4, 16384, 64]beta: [2, 4, 16384]S: [2, 4, 257, 64, 64], f32dtype=f16, bf16
  • deltanet-1.3b-traindo, q, k, v, w, u: [1, 16, 256, 128]beta: [1, 16, 256]S: [1, 16, 5, 128, 128], f32Aw, Au: [1, 16, 256, 64]dtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
train-2kf160.86×0.1321fla0.113313.74%mem
bf160.83×0.1373fla0.114513.24%mem
train-4kf160.83×0.2578fla0.215114.14%mem
bf160.82×0.2660fla0.217013.64%mem
train-8kf160.85×0.5092fla0.431714.34%mem
bf160.83×0.5252fla0.435213.84%mem
train-16kf160.86×1.0038fla0.866214.54%mem
bf160.84×1.0372fla0.8720144%mem
deltanet-1.3b-trainbf160.76×0.0724fla0.054818.95%mem

DeltaNetRecurrentFwd

q, k: [B, H, DK]v: [B, H, DV]beta: [B, H]state: [B, H, DK, DV]

dtype=bf16

  • serving-b1-h8q, k, v: [1, 8, 128]beta: [1, 8]state: [1, 8, 128, 128]
  • serving-b1-h16q, k, v: [1, 16, 128]beta: [1, 16]state: [1, 16, 128, 128]
  • serving-b1-h32q, k, v: [1, 32, 128]beta: [1, 32]state: [1, 32, 128, 128]
  • serving-b1-h48q, k, v: [1, 48, 128]beta: [1, 48]state: [1, 48, 128, 128]
  • serving-b1-h64q, k, v: [1, 64, 128]beta: [1, 64]state: [1, 64, 128, 128]
  • serving-b8-h32q, k, v: [8, 32, 128]beta: [8, 32]state: [8, 32, 128, 128]
  • serving-b8-h48q, k, v: [8, 48, 128]beta: [8, 48]state: [8, 48, 128, 128]
  • serving-b8-h64q, k, v: [8, 64, 128]beta: [8, 64]state: [8, 64, 128, 128]
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
serving-b1-h8bf163.01×0.00288fla
torch-compile
torch
0.00867
0.0131
0.0334
0.2744%lat
serving-b1-h16bf162.94×0.00314fla
torch-compile
torch
0.00922
0.0142
0.0356
0.5038%lat
serving-b1-h32bf163.10×0.00336fla
torch-compile
torch
0.0104
0.0163
0.0394
0.93914%lat
serving-b1-h48bf163.14×0.00365fla
torch-compile
torch
0.0115
0.0194
0.0436
1.319%lat
serving-b1-h64bf163.18×0.00397fla
torch-compile
torch
0.0126
0.0178
0.0444
1.5924%lat
serving-b8-h32bf163.92×0.0087fla
torch-compile
torch
0.0341
0.0383
0.0900
2.943%mem
serving-b8-h48bf163.23×0.0123torch-compile
fla
torch
0.0398
0.0490
0.1123
3.0746%mem
serving-b8-h64bf163.22×0.0162torch-compile
fla
torch
0.0520
0.0680
0.1438
3.1247%mem

DeltaNetFwd

q, k: [B, S, H, K]v: [B, S, H, V]beta: [B, S, H]

dtype=bf16

  • prefill-2kq, k, v: [2, 2048, 4, 64]beta: [2, 2048, 4]
  • prefill-8kq, k, v: [2, 8192, 4, 64]beta: [2, 8192, 4]
  • prefill-16kq, k, v: [2, 16384, 4, 64]beta: [2, 16384, 4]
  • prefill-4kq, k, v: [1, 4096, 16, 128]beta: [1, 4096, 16]
  • prefill-3000q, k, v: [2, 3000, 4, 64]beta: [2, 3000, 4]
  • prefill-l2norm-4kq, k, v: [1, 4096, 16, 128]beta: [1, 4096, 16]use_qk_l2norm_in_kernel=true
  • decode-freshq, k, v: [8, 1, 32, 128]beta: [8, 1, 32]

q, k: [B, S, H, K]v: [B, S, H, V]beta: [B, S, H]initial_state: [B, H, K, V], f32

  • prefill-12k-continuedq, k, v: [2, 12288, 4, 64]beta: [2, 12288, 4]initial_state: [2, 4, 64, 64], f32dtype=bf16
  • decode-continuedq, k, v: [8, 1, 32, 128]beta: [8, 1, 32]initial_state: [8, 32, 128, 128], f32dtype=f16, bf16
  • decode-l2normq, k, v: [4, 1, 16, 128]beta: [4, 1, 16]initial_state: [4, 16, 128, 128], f32use_qk_l2norm_in_kernel=truedtype=bf16
  • decode-narrow-b17q, k, v: [17, 1, 6, 64]beta: [17, 1, 6]initial_state: [17, 6, 64, 64], f32dtype=bf16
  • deltanet-1.3b-continueq, k, v: [1, 257, 16, 128]beta: [1, 257, 16]initial_state: [1, 16, 128, 128], f32use_qk_l2norm_in_kernel=truedtype=bf16
  • deltanet-1.3b-decode-b32q, k, v: [32, 1, 16, 128]beta: [32, 1, 16]initial_state: [32, 16, 128, 128], f32use_qk_l2norm_in_kernel=truedtype=bf16
  • deltanet-1.3b-cont-b4q, k, v: [4, 257, 16, 128]beta: [4, 257, 16]initial_state: [4, 16, 128, 128], f32use_qk_l2norm_in_kernel=truedtype=bf16

q, k: [B, S, H, K]v: [B, S, H, V]beta: [B, S, H]cu_seqlens, cu_seqlens_cpu: [N + 1], i64

dtype=bf16

  • varlen-4x1kq, k, v: [1, 4096, 4, 64]beta: [1, 4096, 4]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=repeat(1024, 4)
  • prefill-l2norm-raggedq, k, v: [1, 3000, 6, 64]beta: [1, 3000, 6]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=[1,59,937,2003]use_qk_l2norm_in_kernel=true

q, k: [B, S, H, K]v: [B, S, H, V]beta: [B, S, H]initial_state: [N, H, K, V], f32cu_seqlens: [N + 1], i64

  • varlen-raggedq, k, v: [1, 4096, 16, 128]beta: [1, 4096, 16]initial_state: [4, 16, 128, 128], f32cu_seqlens: [5], i64seq_lens=[1,63,1000,3032]dtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
prefill-2kbf161.90×0.0329fla0.062612.36%mem
prefill-8kbf163.74×0.0572fla0.213728.313%mem
prefill-16kbf164.45×0.0937fla0.416934.616%mem
prefill-4kbf161.85×0.1084fla0.200359.614%mem
prefill-3000bf162.67×0.0359fla0.095716.58%mem
prefill-l2norm-4kbf161.68×0.1300fla0.218550.112%mem
decode-freshbf161.87×0.0055fla0.01034.5869%mem
prefill-12k-continuedbf163.03×0.1051fla0.318023.111%mem
decode-continuedf161.36×0.0109fla0.01492.3169%mem
bf161.37×0.0109fla0.01492.3169%mem
decode-l2normbf161.79×0.00499fla0.008961.2738%lat
decode-narrow-b17bf161.43×0.00294fla0.004220.85626%lat
deltanet-1.3b-continuebf161.44×0.0343fla0.049511.94%mem
deltanet-1.3b-decode-b32bf161.45×0.0214fla0.03092.3870%mem
deltanet-1.3b-cont-b4bf162.14×0.0373fla0.079943.815%mem
varlen-4x1kbf162.66×0.0309fla0.082113.16%mem
prefill-l2norm-raggedbf162.79×0.0379fla0.105511.96%mem
varlen-raggedbf161.62×0.1376fla0.222946.912%mem

GDNFwd

q, k: [B, S, H, K]v: [B, S, HV, V]g, beta: [B, S, HV]

  • prefill-4kq, k, v: [1, 4096, 16, 128]g, beta: [1, 4096, 16]dtype=f16, bf16
  • prefill-12kq, k, v: [1, 12288, 16, 128]g, beta: [1, 12288, 16]dtype=f16, bf16
  • prefill-32kq, k, v: [1, 32768, 16, 128]g, beta: [1, 32768, 16]dtype=f16, bf16
  • prefill-narrow-stateq, k, v: [1, 4096, 16, 64]g, beta: [1, 4096, 16]dtype=bf16
  • prefill-3000q, k, v: [1, 3000, 16, 128]g, beta: [1, 3000, 16]dtype=bf16
  • decode-freshq, k, v: [8, 1, 32, 128]g, beta: [8, 1, 32]dtype=bf16
  • prefill-v-first-narrowq, k, v: [1, 3000, 16, 64]g, beta: [1, 3000, 16]state_v_first=truedtype=bf16
  • q35-397b-tp8-65536q, k: [1, 65536, 2, 128]v: [1, 65536, 8, 128]g, beta: [1, 65536, 8]dtype=f16, bf16
  • q35-397b-tp8-32768q, k: [1, 32768, 2, 128]v: [1, 32768, 8, 128]g, beta: [1, 32768, 8]dtype=f16, bf16
  • q35-397b-tp8-16384q, k: [1, 16384, 2, 128]v: [1, 16384, 8, 128]g, beta: [1, 16384, 8]dtype=f16, bf16
  • q35-397b-tp8-8192q, k: [1, 8192, 2, 128]v: [1, 8192, 8, 128]g, beta: [1, 8192, 8]dtype=f16, bf16
  • q35-397b-tp8-4096q, k: [1, 4096, 2, 128]v: [1, 4096, 8, 128]g, beta: [1, 4096, 8]dtype=f16, bf16
  • q35-397b-tp8-2048q, k: [1, 2048, 2, 128]v: [1, 2048, 8, 128]g, beta: [1, 2048, 8]dtype=f16, bf16
  • q35-397b-tp4-65536q, k: [1, 65536, 4, 128]v: [1, 65536, 16, 128]g, beta: [1, 65536, 16]dtype=f16, bf16
  • q35-397b-tp4-32768q, k: [1, 32768, 4, 128]v: [1, 32768, 16, 128]g, beta: [1, 32768, 16]dtype=f16, bf16
  • q35-397b-tp4-16384q, k: [1, 16384, 4, 128]v: [1, 16384, 16, 128]g, beta: [1, 16384, 16]dtype=f16, bf16
  • q35-397b-tp4-8192q, k: [1, 8192, 4, 128]v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]dtype=f16, bf16
  • q35-397b-tp4-4096q, k: [1, 4096, 4, 128]v: [1, 4096, 16, 128]g, beta: [1, 4096, 16]dtype=f16, bf16
  • q35-397b-tp4-2048q, k: [1, 2048, 4, 128]v: [1, 2048, 16, 128]g, beta: [1, 2048, 16]dtype=f16, bf16
  • q35-397b-tp2-65536q, k: [1, 65536, 8, 128]v: [1, 65536, 32, 128]g, beta: [1, 65536, 32]dtype=f16, bf16
  • q35-397b-tp2-32768q, k: [1, 32768, 8, 128]v: [1, 32768, 32, 128]g, beta: [1, 32768, 32]dtype=f16, bf16
  • q35-397b-tp2-16384q, k: [1, 16384, 8, 128]v: [1, 16384, 32, 128]g, beta: [1, 16384, 32]dtype=f16, bf16
  • q35-397b-tp2-8192q, k: [1, 8192, 8, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]dtype=f16, bf16
  • q35-397b-tp2-4096q, k: [1, 4096, 8, 128]v: [1, 4096, 32, 128]g, beta: [1, 4096, 32]dtype=f16, bf16
  • q35-397b-tp2-2048q, k: [1, 2048, 8, 128]v: [1, 2048, 32, 128]g, beta: [1, 2048, 32]dtype=f16, bf16
  • q35-397b-tp1-65536q, k: [1, 65536, 16, 128]v: [1, 65536, 64, 128]g, beta: [1, 65536, 64]dtype=f16, bf16
  • q35-397b-tp1-32768q, k: [1, 32768, 16, 128]v: [1, 32768, 64, 128]g, beta: [1, 32768, 64]dtype=f16, bf16
  • q35-397b-tp1-16384q, k: [1, 16384, 16, 128]v: [1, 16384, 64, 128]g, beta: [1, 16384, 64]dtype=f16, bf16
  • q35-397b-tp1-8192q, k: [1, 8192, 16, 128]v: [1, 8192, 64, 128]g, beta: [1, 8192, 64]dtype=f16, bf16
  • q35-397b-tp1-4096q, k: [1, 4096, 16, 128]v: [1, 4096, 64, 128]g, beta: [1, 4096, 64]dtype=f16, bf16
  • q35-397b-tp1-2048q, k: [1, 2048, 16, 128]v: [1, 2048, 64, 128]g, beta: [1, 2048, 64]dtype=f16, bf16
  • q35-35b-65536q, k: [1, 65536, 16, 128]v: [1, 65536, 32, 128]g, beta: [1, 65536, 32]dtype=f16, bf16
  • q35-35b-32768q, k: [1, 32768, 16, 128]v: [1, 32768, 32, 128]g, beta: [1, 32768, 32]dtype=f16, bf16
  • q35-35b-16384q, k: [1, 16384, 16, 128]v: [1, 16384, 32, 128]g, beta: [1, 16384, 32]dtype=f16, bf16
  • q35-35b-8192q, k: [1, 8192, 16, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]dtype=f16, bf16
  • q35-35b-4096q, k: [1, 4096, 16, 128]v: [1, 4096, 32, 128]g, beta: [1, 4096, 32]dtype=f16, bf16
  • q35-35b-2048q, k: [1, 2048, 16, 128]v: [1, 2048, 32, 128]g, beta: [1, 2048, 32]dtype=f16, bf16
  • q35-27b-65536q, k: [1, 65536, 16, 128]v: [1, 65536, 48, 128]g, beta: [1, 65536, 48]dtype=f16, bf16
  • q35-27b-32768q, k: [1, 32768, 16, 128]v: [1, 32768, 48, 128]g, beta: [1, 32768, 48]dtype=f16, bf16
  • q35-27b-16384q, k: [1, 16384, 16, 128]v: [1, 16384, 48, 128]g, beta: [1, 16384, 48]dtype=f16, bf16
  • q35-27b-8192q, k: [1, 8192, 16, 128]v: [1, 8192, 48, 128]g, beta: [1, 8192, 48]dtype=f16, bf16
  • q35-27b-4096q, k: [1, 4096, 16, 128]v: [1, 4096, 48, 128]g, beta: [1, 4096, 48]dtype=f16, bf16
  • q35-27b-2048q, k: [1, 2048, 16, 128]v: [1, 2048, 48, 128]g, beta: [1, 2048, 48]dtype=f16, bf16
  • q35-2b-65536q, k, v: [1, 65536, 16, 128]g, beta: [1, 65536, 16]dtype=f16, bf16
  • q35-2b-16384q, k, v: [1, 16384, 16, 128]g, beta: [1, 16384, 16]dtype=f16, bf16
  • q35-2b-8192q, k, v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]dtype=f16, bf16
  • q35-2b-2048q, k, v: [1, 2048, 16, 128]g, beta: [1, 2048, 16]dtype=f16, bf16
  • q35-symmetric-65536q, k, v: [1, 65536, 32, 128]g, beta: [1, 65536, 32]dtype=f16, bf16
  • q35-symmetric-32768q, k, v: [1, 32768, 32, 128]g, beta: [1, 32768, 32]dtype=f16, bf16
  • q35-symmetric-16384q, k, v: [1, 16384, 32, 128]g, beta: [1, 16384, 32]dtype=f16, bf16
  • q35-symmetric-8192q, k, v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]dtype=f16, bf16
  • q35-symmetric-4096q, k, v: [1, 4096, 32, 128]g, beta: [1, 4096, 32]dtype=f16, bf16
  • q35-symmetric-2048q, k, v: [1, 2048, 32, 128]g, beta: [1, 2048, 32]dtype=f16, bf16

q, k: [B, S, H, K]v: [B, S, HV, V]g, beta: [B, S, HV]initial_state: [B, HV, K, V], f32

  • decode-b1q, k, v: [1, 1, 16, 128]g, beta: [1, 1, 16]initial_state: [1, 16, 128, 128], f32dtype=f16, bf16
  • decode-b8q, k, v: [8, 1, 32, 128]g, beta: [8, 1, 32]initial_state: [8, 32, 128, 128], f32dtype=f16, bf16
  • prefill-continuedq, k, v: [1, 4096, 16, 128]g, beta: [1, 4096, 16]initial_state: [1, 16, 128, 128], f32dtype=bf16
  • decode-beta-l2normq, k, v: [2, 1, 4, 128]g, beta: [2, 1, 4]initial_state: [2, 4, 128, 128], f32use_qk_l2norm_in_kernel=trueuse_beta_sigmoid_in_kernel=trueallow_neg_eigval=truedtype=bf16
  • q35-gva-decode-b1q, k: [1, 1, 16, 128]v: [1, 1, 32, 128]g, beta: [1, 1, 32]initial_state: [1, 32, 128, 128], f32dtype=f16, bf16
  • q35-gva-decode-b4q, k: [4, 1, 16, 128]v: [4, 1, 32, 128]g, beta: [4, 1, 32]initial_state: [4, 32, 128, 128], f32dtype=f16, bf16
  • q35-gva-decode-b8q, k: [8, 1, 16, 128]v: [8, 1, 32, 128]g, beta: [8, 1, 32]initial_state: [8, 32, 128, 128], f32dtype=f16, bf16
  • q35-gva-decode-b16q, k: [16, 1, 16, 128]v: [16, 1, 32, 128]g, beta: [16, 1, 32]initial_state: [16, 32, 128, 128], f32dtype=f16, bf16
  • q35-gva-decode-b32q, k: [32, 1, 16, 128]v: [32, 1, 32, 128]g, beta: [32, 1, 32]initial_state: [32, 32, 128, 128], f32dtype=f16, bf16
  • q35-gva-decode-b64q, k: [64, 1, 16, 128]v: [64, 1, 32, 128]g, beta: [64, 1, 32]initial_state: [64, 32, 128, 128], f32dtype=f16, bf16
  • q35-gva-decode-b128q, k: [128, 1, 16, 128]v: [128, 1, 32, 128]g, beta: [128, 1, 32]initial_state: [128, 32, 128, 128], f32dtype=f16, bf16
  • q35-gva-decode-b256q, k: [256, 1, 16, 128]v: [256, 1, 32, 128]g, beta: [256, 1, 32]initial_state: [256, 32, 128, 128], f32dtype=f16, bf16
  • q35-gva-decode-b512q, k: [512, 1, 16, 128]v: [512, 1, 32, 128]g, beta: [512, 1, 32]initial_state: [512, 32, 128, 128], f32dtype=f16, bf16

q, k: [B, S, H, K]v: [B, S, HV, V]g, beta: [B, S, HV]cu_seqlens, cu_seqlens_cpu: [N + 1], i64

  • varlen-4x1kq, k, v: [1, 4096, 16, 128]g, beta: [1, 4096, 16]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=repeat(1024, 4)dtype=bf16
  • q35-397b-tp8-6144-2048q, k: [1, 8192, 2, 128]v: [1, 8192, 8, 128]g, beta: [1, 8192, 8]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[6144,2048]dtype=f16, bf16
  • q35-397b-tp8-4096-4096q, k: [1, 8192, 2, 128]v: [1, 8192, 8, 128]g, beta: [1, 8192, 8]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=repeat(4096, 2)dtype=f16, bf16
  • q35-397b-tp8-2048-6144q, k: [1, 8192, 2, 128]v: [1, 8192, 8, 128]g, beta: [1, 8192, 8]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[2048,6144]dtype=f16, bf16
  • q35-397b-tp8-1024-7168q, k: [1, 8192, 2, 128]v: [1, 8192, 8, 128]g, beta: [1, 8192, 8]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[1024,7168]dtype=f16, bf16
  • q35-397b-tp8-4x2048q, k: [1, 8192, 2, 128]v: [1, 8192, 8, 128]g, beta: [1, 8192, 8]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=repeat(2048, 4)dtype=f16, bf16
  • q35-397b-tp8-8x1024q, k: [1, 8192, 2, 128]v: [1, 8192, 8, 128]g, beta: [1, 8192, 8]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(1024, 8)dtype=f16, bf16
  • q35-397b-tp8-8x8192q, k: [1, 65536, 2, 128]v: [1, 65536, 8, 128]g, beta: [1, 65536, 8]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(8192, 8)dtype=f16, bf16
  • q35-397b-tp8-16x8192q, k: [1, 131072, 2, 128]v: [1, 131072, 8, 128]g, beta: [1, 131072, 8]cu_seqlens, cu_seqlens_cpu: [17], i64seq_lens=repeat(8192, 16)dtype=f16, bf16
  • q35-397b-tp8-32x8192q, k: [1, 262144, 2, 128]v: [1, 262144, 8, 128]g, beta: [1, 262144, 8]cu_seqlens, cu_seqlens_cpu: [33], i64seq_lens=repeat(8192, 32)dtype=f16, bf16
  • q35-397b-tp4-6144-2048q, k: [1, 8192, 4, 128]v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[6144,2048]dtype=f16, bf16
  • q35-397b-tp4-4096-4096q, k: [1, 8192, 4, 128]v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=repeat(4096, 2)dtype=f16, bf16
  • q35-397b-tp4-2048-6144q, k: [1, 8192, 4, 128]v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[2048,6144]dtype=f16, bf16
  • q35-397b-tp4-1024-7168q, k: [1, 8192, 4, 128]v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[1024,7168]dtype=f16, bf16
  • q35-397b-tp4-4x2048q, k: [1, 8192, 4, 128]v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=repeat(2048, 4)dtype=f16, bf16
  • q35-397b-tp4-8x1024q, k: [1, 8192, 4, 128]v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(1024, 8)dtype=f16, bf16
  • q35-397b-tp4-8x8192q, k: [1, 65536, 4, 128]v: [1, 65536, 16, 128]g, beta: [1, 65536, 16]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(8192, 8)dtype=f16, bf16
  • q35-397b-tp4-16x8192q, k: [1, 131072, 4, 128]v: [1, 131072, 16, 128]g, beta: [1, 131072, 16]cu_seqlens, cu_seqlens_cpu: [17], i64seq_lens=repeat(8192, 16)dtype=f16, bf16
  • q35-397b-tp4-32x8192q, k: [1, 262144, 4, 128]v: [1, 262144, 16, 128]g, beta: [1, 262144, 16]cu_seqlens, cu_seqlens_cpu: [33], i64seq_lens=repeat(8192, 32)dtype=f16, bf16
  • q35-397b-tp2-6144-2048q, k: [1, 8192, 8, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[6144,2048]dtype=f16, bf16
  • q35-397b-tp2-4096-4096q, k: [1, 8192, 8, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=repeat(4096, 2)dtype=f16, bf16
  • q35-397b-tp2-2048-6144q, k: [1, 8192, 8, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[2048,6144]dtype=f16, bf16
  • q35-397b-tp2-1024-7168q, k: [1, 8192, 8, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[1024,7168]dtype=f16, bf16
  • q35-397b-tp2-4x2048q, k: [1, 8192, 8, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=repeat(2048, 4)dtype=f16, bf16
  • q35-397b-tp2-8x1024q, k: [1, 8192, 8, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(1024, 8)dtype=f16, bf16
  • q35-397b-tp2-8x8192q, k: [1, 65536, 8, 128]v: [1, 65536, 32, 128]g, beta: [1, 65536, 32]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(8192, 8)dtype=f16, bf16
  • q35-397b-tp2-16x8192q, k: [1, 131072, 8, 128]v: [1, 131072, 32, 128]g, beta: [1, 131072, 32]cu_seqlens, cu_seqlens_cpu: [17], i64seq_lens=repeat(8192, 16)dtype=f16, bf16
  • q35-397b-tp2-32x8192q, k: [1, 262144, 8, 128]v: [1, 262144, 32, 128]g, beta: [1, 262144, 32]cu_seqlens, cu_seqlens_cpu: [33], i64seq_lens=repeat(8192, 32)dtype=f16, bf16
  • q35-397b-tp1-6144-2048q, k: [1, 8192, 16, 128]v: [1, 8192, 64, 128]g, beta: [1, 8192, 64]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[6144,2048]dtype=f16, bf16
  • q35-397b-tp1-4096-4096q, k: [1, 8192, 16, 128]v: [1, 8192, 64, 128]g, beta: [1, 8192, 64]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=repeat(4096, 2)dtype=f16, bf16
  • q35-397b-tp1-2048-6144q, k: [1, 8192, 16, 128]v: [1, 8192, 64, 128]g, beta: [1, 8192, 64]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[2048,6144]dtype=f16, bf16
  • q35-397b-tp1-1024-7168q, k: [1, 8192, 16, 128]v: [1, 8192, 64, 128]g, beta: [1, 8192, 64]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[1024,7168]dtype=f16, bf16
  • q35-397b-tp1-4x2048q, k: [1, 8192, 16, 128]v: [1, 8192, 64, 128]g, beta: [1, 8192, 64]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=repeat(2048, 4)dtype=f16, bf16
  • q35-397b-tp1-8x1024q, k: [1, 8192, 16, 128]v: [1, 8192, 64, 128]g, beta: [1, 8192, 64]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(1024, 8)dtype=f16, bf16
  • q35-397b-tp1-8x8192q, k: [1, 65536, 16, 128]v: [1, 65536, 64, 128]g, beta: [1, 65536, 64]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(8192, 8)dtype=f16, bf16
  • q35-397b-tp1-16x8192q, k: [1, 131072, 16, 128]v: [1, 131072, 64, 128]g, beta: [1, 131072, 64]cu_seqlens, cu_seqlens_cpu: [17], i64seq_lens=repeat(8192, 16)dtype=f16, bf16
  • q35-397b-tp1-32x8192q, k: [1, 262144, 16, 128]v: [1, 262144, 64, 128]g, beta: [1, 262144, 64]cu_seqlens, cu_seqlens_cpu: [33], i64seq_lens=repeat(8192, 32)dtype=f16, bf16
  • q35-35b-6144-2048q, k: [1, 8192, 16, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[6144,2048]dtype=f16, bf16
  • q35-35b-4096-4096q, k: [1, 8192, 16, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=repeat(4096, 2)dtype=f16, bf16
  • q35-35b-2048-6144q, k: [1, 8192, 16, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[2048,6144]dtype=f16, bf16
  • q35-35b-1024-7168q, k: [1, 8192, 16, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[1024,7168]dtype=f16, bf16
  • q35-35b-4x2048q, k: [1, 8192, 16, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=repeat(2048, 4)dtype=f16, bf16
  • q35-35b-8x1024q, k: [1, 8192, 16, 128]v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(1024, 8)dtype=f16, bf16
  • q35-35b-8x8192q, k: [1, 65536, 16, 128]v: [1, 65536, 32, 128]g, beta: [1, 65536, 32]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(8192, 8)dtype=f16, bf16
  • q35-35b-16x8192q, k: [1, 131072, 16, 128]v: [1, 131072, 32, 128]g, beta: [1, 131072, 32]cu_seqlens, cu_seqlens_cpu: [17], i64seq_lens=repeat(8192, 16)dtype=f16, bf16
  • q35-35b-32x8192q, k: [1, 262144, 16, 128]v: [1, 262144, 32, 128]g, beta: [1, 262144, 32]cu_seqlens, cu_seqlens_cpu: [33], i64seq_lens=repeat(8192, 32)dtype=f16, bf16
  • q35-27b-6144-2048q, k: [1, 8192, 16, 128]v: [1, 8192, 48, 128]g, beta: [1, 8192, 48]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[6144,2048]dtype=f16, bf16
  • q35-27b-4096-4096q, k: [1, 8192, 16, 128]v: [1, 8192, 48, 128]g, beta: [1, 8192, 48]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=repeat(4096, 2)dtype=f16, bf16
  • q35-27b-2048-6144q, k: [1, 8192, 16, 128]v: [1, 8192, 48, 128]g, beta: [1, 8192, 48]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[2048,6144]dtype=f16, bf16
  • q35-27b-1024-7168q, k: [1, 8192, 16, 128]v: [1, 8192, 48, 128]g, beta: [1, 8192, 48]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[1024,7168]dtype=f16, bf16
  • q35-27b-4x2048q, k: [1, 8192, 16, 128]v: [1, 8192, 48, 128]g, beta: [1, 8192, 48]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=repeat(2048, 4)dtype=f16, bf16
  • q35-27b-8x1024q, k: [1, 8192, 16, 128]v: [1, 8192, 48, 128]g, beta: [1, 8192, 48]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(1024, 8)dtype=f16, bf16
  • q35-27b-8x8192q, k: [1, 65536, 16, 128]v: [1, 65536, 48, 128]g, beta: [1, 65536, 48]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(8192, 8)dtype=f16, bf16
  • q35-27b-16x8192q, k: [1, 131072, 16, 128]v: [1, 131072, 48, 128]g, beta: [1, 131072, 48]cu_seqlens, cu_seqlens_cpu: [17], i64seq_lens=repeat(8192, 16)dtype=f16, bf16
  • q35-27b-32x8192q, k: [1, 262144, 16, 128]v: [1, 262144, 48, 128]g, beta: [1, 262144, 48]cu_seqlens, cu_seqlens_cpu: [33], i64seq_lens=repeat(8192, 32)dtype=f16, bf16
  • q35-2b-6144-2048q, k, v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[6144,2048]dtype=f16, bf16
  • q35-2b-4096-4096q, k, v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=repeat(4096, 2)dtype=f16, bf16
  • q35-2b-2048-6144q, k, v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[2048,6144]dtype=f16, bf16
  • q35-2b-1024-7168q, k, v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[1024,7168]dtype=f16, bf16
  • q35-2b-4x2048q, k, v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=repeat(2048, 4)dtype=f16, bf16
  • q35-2b-8x1024q, k, v: [1, 8192, 16, 128]g, beta: [1, 8192, 16]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(1024, 8)dtype=f16, bf16
  • q35-2b-8x8192q, k, v: [1, 65536, 16, 128]g, beta: [1, 65536, 16]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(8192, 8)dtype=f16, bf16
  • q35-2b-16x8192q, k, v: [1, 131072, 16, 128]g, beta: [1, 131072, 16]cu_seqlens, cu_seqlens_cpu: [17], i64seq_lens=repeat(8192, 16)dtype=f16, bf16
  • q35-2b-32x8192q, k, v: [1, 262144, 16, 128]g, beta: [1, 262144, 16]cu_seqlens, cu_seqlens_cpu: [33], i64seq_lens=repeat(8192, 32)dtype=f16, bf16
  • q35-symmetric-6144-2048q, k, v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[6144,2048]dtype=f16, bf16
  • q35-symmetric-4096-4096q, k, v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=repeat(4096, 2)dtype=f16, bf16
  • q35-symmetric-2048-6144q, k, v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[2048,6144]dtype=f16, bf16
  • q35-symmetric-1024-7168q, k, v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[1024,7168]dtype=f16, bf16
  • q35-symmetric-4x2048q, k, v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=repeat(2048, 4)dtype=f16, bf16
  • q35-symmetric-8x1024q, k, v: [1, 8192, 32, 128]g, beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(1024, 8)dtype=f16, bf16
  • q35-symmetric-8x8192q, k, v: [1, 65536, 32, 128]g, beta: [1, 65536, 32]cu_seqlens, cu_seqlens_cpu: [9], i64seq_lens=repeat(8192, 8)dtype=f16, bf16
  • q35-symmetric-16x8192q, k, v: [1, 131072, 32, 128]g, beta: [1, 131072, 32]cu_seqlens, cu_seqlens_cpu: [17], i64seq_lens=repeat(8192, 16)dtype=f16, bf16
  • q35-symmetric-32x8192q, k, v: [1, 262144, 32, 128]g, beta: [1, 262144, 32]cu_seqlens, cu_seqlens_cpu: [33], i64seq_lens=repeat(8192, 32)dtype=f16, bf16

q, k: [B, S, H, K]v: [B, S, HV, V]g, beta: [B, S, HV]initial_state: [N, HV, K, V], f32cu_seqlens: [N + 1], i64

  • varlen-ragged-groupedq, k: [1, 4096, 4, 128]v: [1, 4096, 16, 128]g, beta: [1, 4096, 16]initial_state: [4, 16, 128, 128], f32cu_seqlens: [5], i64seq_lens=[1,63,1000,3032]dtype=f16

q, k: [B, S, H, K]v: [B, S, HV, V]g, beta: [B, S, HV]A_log, dt_bias: [HV], f32

  • prefill-raw-4kq, k, v: [1, 4096, 16, 128]g, beta: [1, 4096, 16]A_log, dt_bias: [16], f32use_qk_l2norm_in_kernel=trueuse_beta_sigmoid_in_kernel=trueuse_gate_in_kernel=truedtype=bf16

q, k: [B, S, H, K]v: [B, S, HV, V]g, beta: [B, S, HV]cu_seqlens, cu_seqlens_cpu: [N + 1], i64A_log, dt_bias: [HV], f32

  • prefill-raw-raggedq, k: [1, 3000, 6, 64]v: [1, 3000, 24, 64]g, beta: [1, 3000, 24]cu_seqlens, cu_seqlens_cpu: [5], i64A_log, dt_bias: [24], f32seq_lens=[1,59,937,2003]use_qk_l2norm_in_kernel=trueuse_beta_sigmoid_in_kernel=trueuse_gate_in_kernel=truedtype=bf16

q, k: [B, S, H, K]v: [B, S, HV, V]g, beta: [B, S, HV]initial_state: [B, HV, K, V], f32A_log, dt_bias: [HV], f32

  • decode-gate-fusedq, k: [32, 1, 8, 64]v: [32, 1, 16, 64]g, beta: [32, 1, 16]initial_state: [32, 16, 64, 64], f32A_log, dt_bias: [16], f32use_gate_in_kernel=truedtype=bf16

q, k: [B, S, H, K]v: [B, S, HV, V]g, beta: [B, S, HV]initial_state: [B, HV, V, K], f32

state_v_first=truedtype=bf16

  • decode-vfirst-b17q, k: [17, 1, 6, 128]v: [17, 1, 12, 128]g, beta: [17, 1, 12]initial_state: [17, 12, 128, 128], f32
  • prefill-v-first-4kq, k, v: [1, 4096, 16, 128]g, beta: [1, 4096, 16]initial_state: [1, 16, 128, 128], f32

q, k: [B, S, H, K]v: [B, S, HV, V]g, beta: [B, S, HV]initial_state: [N, HV, V, K], f32cu_seqlens, cu_seqlens_cpu: [N + 1], i64

  • varlen-v-first-raggedq, k: [1, 4099, 4, 128]v: [1, 4099, 16, 128]g, beta: [1, 4099, 16]initial_state: [4, 16, 128, 128], f32cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=[1,67,1031,3000]state_v_first=truedtype=f16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
prefill-4kf161.76×0.0785flashinfer
fla
0.1380
0.1966
95.719%mem
bf161.72×0.0807flashinfer
fla
0.1387
0.1989
93.119%mem
prefill-12kf161.18×0.2032flashinfer
fla
0.2397
0.5589
11122%mem
bf161.15×0.2083flashinfer
fla
0.2401
0.5613
10822%mem
prefill-32kf161.34×0.3694flashinfer
fla
0.4950
1.4625
16332%mem
bf161.30×0.3816flashinfer
fla
0.4965
1.4683
15831%mem
prefill-narrow-statebf162.32×0.0553fla
flashinfer
0.1281
0.1994
3414%mem
prefill-3000bf161.67×0.0730flashinfer
fla
0.1222
0.1578
75.415%mem
decode-freshbf161.88×0.00547fla
flashinfer
flashinfer-decode
0.0103
0.0552
0.0573
5.3669%mem
prefill-v-first-narrowbf161.96×0.0510fla
flashinfer
0.1001
0.1648
2711%mem
q35-397b-tp8-65536f161.11×0.4340flashinfer
fla
0.4827
2.1027
13919%comp
bf161.09×0.4495flashinfer
fla
0.4878
2.1034
13418%comp
q35-397b-tp8-32768f160.99×0.2898flashinfer
fla
0.2876
1.0593
10414%comp
bf160.97×0.2976flashinfer
fla
0.2900
1.0597
10113%comp
q35-397b-tp8-16384f161.25×0.1507flashinfer
fla
0.1888
0.5359
99.814%comp
bf161.22×0.1557flashinfer
fla
0.1903
0.5355
96.613%comp
q35-397b-tp8-8192f161.27×0.1104flashinfer
fla
0.1403
0.2765
68.19%comp
bf161.25×0.1128flashinfer
fla
0.1410
0.2765
66.69%comp
q35-397b-tp8-4096f161.66×0.0642flashinfer
fla
0.1068
0.1550
58.58%comp
bf161.66×0.0651flashinfer
fla
0.1078
0.1550
57.78%comp
q35-397b-tp8-2048f161.83×0.0479flashinfer
fla
0.0878
0.0956
39.25%comp
bf161.83×0.0484flashinfer
fla
0.0887
0.0957
38.85%comp
q35-397b-tp4-65536f161.09×0.7975flashinfer
fla
0.8683
2.8185
15121%comp
bf161.06×0.8229flashinfer
fla
0.8750
2.8252
14619%comp
q35-397b-tp4-32768f161.18×0.4086flashinfer
fla
0.4817
1.4122
14720%comp
bf161.15×0.4228flashinfer
fla
0.4854
1.4138
14219%comp
q35-397b-tp4-16384f161.07×0.2635flashinfer
fla
0.2828
0.7120
11416%comp
bf161.05×0.2715flashinfer
fla
0.2841
0.7124
11115%comp
q35-397b-tp4-8192f161.32×0.1380flashinfer
fla
0.1818
0.3638
10915%comp
bf161.28×0.1424flashinfer
fla
0.1827
0.3641
10614%comp
q35-397b-tp4-4096f161.36×0.0976flashinfer
fla
0.1328
0.1901
7711%comp
bf161.34×0.0999flashinfer
fla
0.1336
0.1906
75.210%comp
q35-397b-tp4-2048f161.82×0.0575flashinfer
fla
0.1047
0.1110
65.49%comp
bf161.82×0.0580flashinfer
fla
0.1056
0.1113
64.89%comp
q35-397b-tp2-65536f161.22×1.3459flashinfer
fla
1.6460
4.2889
17925%comp
bf161.19×1.3947flashinfer
fla
1.6582
4.2905
17223%comp
q35-397b-tp2-32768f161.12×0.7717flashinfer
fla
0.8661
2.1326
15621%comp
bf161.10×0.7965flashinfer
fla
0.8732
2.1330
15120%comp
q35-397b-tp2-16384f161.21×0.3953flashinfer
fla
0.4766
1.0655
15221%comp
bf161.17×0.4097flashinfer
fla
0.4809
1.0661
14719%comp
q35-397b-tp2-8192f161.11×0.2506flashinfer
fla
0.2771
0.5456
12016%comp
bf161.08×0.2581flashinfer
fla
0.2782
0.5455
11715%comp
q35-397b-tp2-4096f161.33×0.1320flashinfer
fla
0.1753
0.2807
11416%comp
bf161.29×0.1362flashinfer
fla
0.1763
0.2809
11015%comp
q35-397b-tp2-2048f161.39×0.0914flashinfer
fla
0.1270
0.1484
82.311%comp
bf161.36×0.0940flashinfer
fla
0.1276
0.1487
79.911%comp
q35-397b-tp1-65536f161.20×2.6499flashinfer
fla
3.1828
7.5602
18225%comp
bf161.16×2.7513flashinfer
fla
3.2018
7.5921
17523%comp
q35-397b-tp1-32768f161.22×1.3340flashinfer
fla
1.6328
3.7270
18025%comp
bf161.18×1.3906flashinfer
fla
1.6433
3.7498
17323%comp
q35-397b-tp1-16384f161.13×0.7620flashinfer
fla
0.8588
1.8364
15822%comp
bf161.10×0.7859flashinfer
fla
0.8633
1.8473
15320%comp
q35-397b-tp1-8192f161.20×0.3899flashinfer
fla
0.4697
0.9362
15421%comp
bf161.16×0.4058flashinfer
fla
0.4713
0.9407
14819%comp
q35-397b-tp1-4096f161.27×0.2126flashinfer
fla
0.2692
0.4830
14119%comp
bf161.24×0.2180flashinfer
fla
0.2704
0.4857
13818%comp
q35-397b-tp1-2048f161.47×0.1140flashinfer
fla
0.1679
0.2493
13218%comp
bf161.45×0.1168flashinfer
fla
0.1689
0.2505
12917%comp
q35-35b-65536f161.23×1.3507flashinfer
fla
1.6555
4.2921
17827%mem
bf161.19×1.3954flashinfer
fla
1.6656
4.3003
17226%mem
q35-35b-32768f161.27×0.6863flashinfer
fla
0.8743
2.1512
17526%mem
bf161.24×0.7114flashinfer
fla
0.8790
2.1540
16925%mem
q35-35b-16384f161.21×0.3979flashinfer
fla
0.4813
1.0816
15123%mem
bf161.18×0.4119flashinfer
fla
0.4843
1.0828
14622%mem
q35-35b-8192f161.34×0.2079flashinfer
fla
0.2795
0.5509
14522%mem
bf161.31×0.2150flashinfer
fla
0.2808
0.5515
14021%mem
q35-35b-4096f161.33×0.1336flashinfer
fla
0.1776
0.2837
11317%mem
bf161.29×0.1382flashinfer
fla
0.1786
0.2841
10917%mem
q35-35b-2048f161.78×0.0723flashinfer
fla
0.1284
0.1501
10416%mem
bf161.72×0.0750flashinfer
fla
0.1292
0.1503
10016%mem
q35-27b-65536f161.45×2.0538flashinfer
fla
2.9686
6.2266
17624%comp
bf161.41×2.1260flashinfer
fla
3.0019
6.2671
17023%mem
q35-27b-32768f161.45×1.0472flashinfer
fla
1.5225
3.0934
17224%comp
bf161.42×1.0843flashinfer
fla
1.5367
3.1138
16622%mem
q35-27b-16384f161.32×0.6051flashinfer
fla
0.7970
1.5342
14920%comp
bf161.28×0.6257flashinfer
fla
0.8035
1.5436
14419%mem
q35-27b-8192f161.39×0.3130flashinfer
fla
0.4341
0.7811
14420%comp
bf161.35×0.3254flashinfer
fla
0.4384
0.7860
13919%mem
q35-27b-4096f161.26×0.1992flashinfer
fla
0.2501
0.4030
11316%comp
bf161.22×0.2057flashinfer
fla
0.2512
0.4054
11015%mem
q35-27b-2048f161.49×0.1057flashinfer
fla
0.1573
0.2208
10715%mem
bf161.45×0.1095flashinfer
fla
0.1585
0.2224
10314%mem
q35-2b-65536f161.25×0.7106flashinfer
fla
0.8880
2.9054
16934%mem
bf161.21×0.7370flashinfer
fla
0.8937
2.9162
16333%mem
q35-2b-16384f161.32×0.2215flashinfer
fla
0.2916
0.7426
13627%mem
bf161.28×0.2286flashinfer
fla
0.2920
0.7461
13226%mem
q35-2b-8192f161.55×0.1207flashinfer
fla
0.1867
0.3779
12525%mem
bf161.49×0.1257flashinfer
fla
0.1875
0.3806
12024%mem
q35-2b-2048f161.88×0.0562flashinfer
fla
0.1057
0.1154
66.914%mem
bf161.86×0.0573flashinfer
fla
0.1064
0.1169
65.613%mem
q35-symmetric-65536f161.32×1.2791flashinfer
fla
1.6845
4.3861
18837%mem
bf161.28×1.3254flashinfer
fla
1.6950
4.3913
18136%mem
q35-symmetric-32768f161.28×0.7000flashinfer
fla
0.8944
2.2123
17234%mem
bf161.24×0.7234flashinfer
fla
0.8956
2.2161
16633%mem
q35-symmetric-16384f161.36×0.3626flashinfer
fla
0.4934
1.1124
16633%mem
bf161.32×0.3754flashinfer
fla
0.4952
1.1155
16032%mem
q35-symmetric-8192f161.34×0.2152flashinfer
fla
0.2875
0.5676
14028%mem
bf161.30×0.2225flashinfer
fla
0.2889
0.5688
13527%mem
q35-symmetric-4096f161.55×0.1178flashinfer
fla
0.1824
0.2925
12826%mem
bf161.49×0.1228flashinfer
fla
0.1830
0.2934
12225%mem
q35-symmetric-2048f161.77×0.0747flashinfer
fla
0.1325
0.1545
10121%mem
bf161.72×0.0772flashinfer
fla
0.1331
0.1548
97.320%mem
decode-b1f161.29×0.00323fla
flashinfer-decode
flashinfer
0.00416
0.0374
0.0532
0.56815%lat
bf161.29×0.00323fla
flashinfer-decode
flashinfer
0.00416
0.0239
0.0538
0.56815%lat
decode-b8f161.42×0.0109fla
flashinfer
flashinfer-decode
0.0154
0.0877
0.0995
2.769%mem
bf161.41×0.0109fla
flashinfer-decode
flashinfer
0.0154
0.0826
0.0882
2.6969%mem
prefill-continuedbf161.78×0.0822flashinfer
fla
0.1465
0.2004
91.519%mem
decode-beta-l2normbf162.62×0.00301fla
flashinfer
0.00787
0.0810
0.3078%lat
q35-gva-decode-b1f161.29×0.00333fla
flashinfer-decode
flashinfer
0.00429
0.0419
0.0622
1.128%lat
bf161.28×0.00333fla
flashinfer-decode
flashinfer
0.00427
0.0275
0.0628
1.128%lat
q35-gva-decode-b4f161.30×0.00614fla
flashinfer
flashinfer-decode
0.008
0.0500
0.0660
2.3961%mem
bf161.31×0.00611fla
flashinfer
flashinfer-decode
0.008
0.0500
0.0501
2.461%mem
q35-gva-decode-b8f161.44×0.0103fla
flashinfer
flashinfer-decode
0.0148
0.0880
0.0995
2.8673%mem
bf161.42×0.0104fla
flashinfer-decode
flashinfer
0.0147
0.0825
0.0881
2.8372%mem
q35-gva-decode-b16f161.34×0.0199fla
flashinfer
flashinfer-decode
0.0268
0.1648
0.1651
2.9575%mem
bf161.34×0.0200fla
flashinfer-decode
flashinfer
0.0267
0.1479
0.1646
2.9475%mem
q35-gva-decode-b32f161.33×0.0377fla
flashinfer-decode
flashinfer
0.0501
0.2879
0.3080
3.1280%mem
bf161.33×0.0378fla
flashinfer-decode
flashinfer
0.0501
0.2705
0.3087
3.1179%mem
q35-gva-decode-b64f161.33×0.0721fla
flashinfer-decode
flashinfer
0.0958
0.5322
0.5944
3.2683%mem
bf161.33×0.0722fla
flashinfer-decode
flashinfer
0.0958
0.5140
0.5946
3.2583%mem
q35-gva-decode-b128f161.35×0.1396fla
flashinfer-decode
flashinfer
0.1879
1.0191
1.1594
3.3786%mem
bf161.35×0.1393fla
flashinfer-decode
flashinfer
0.1879
0.9999
1.1606
3.3786%mem
q35-gva-decode-b256f161.35×0.2752fla
flashinfer-decode
flashinfer
0.3717
1.9922
2.2841
3.4187%mem
bf161.35×0.2750fla
flashinfer-decode
flashinfer
0.3718
1.9724
2.2846
3.4287%mem
q35-gva-decode-b512f161.35×0.5465fla
flashinfer-decode
flashinfer
0.7400
3.9443
4.5313
3.4488%mem
bf161.35×0.5464fla
flashinfer-decode
flashinfer
0.7397
3.9144
4.5335
3.4488%mem
varlen-4x1kbf161.82×0.0828flashinfer
fla
0.1503
0.1521
90.819%mem
q35-397b-tp8-6144-2048f161.30×0.1055flashinfer
fla
0.1373
0.2477
71.210%comp
bf161.28×0.1081flashinfer
fla
0.1380
0.2485
69.59%comp
q35-397b-tp8-4096-4096f161.41×0.0986flashinfer
fla
0.1386
0.2026
76.210%comp
bf161.37×0.1013flashinfer
fla
0.1390
0.2032
74.210%comp
q35-397b-tp8-2048-6144f161.33×0.1048flashinfer
fla
0.1393
0.2477
71.810%comp
bf161.31×0.1073flashinfer
fla
0.1403
0.2485
70.19%comp
q35-397b-tp8-1024-7168f161.29×0.1082flashinfer
fla
0.1401
0.2710
69.510%comp
bf161.27×0.1107flashinfer
fla
0.1408
0.2718
67.99%comp
q35-397b-tp8-4x2048f161.69×0.0922flashinfer
fla
0.1557
0.1579
81.611%comp
bf161.65×0.0946flashinfer
fla
0.1563
0.1581
79.510%comp
q35-397b-tp8-8x1024f161.67×0.0969fla
flashinfer
0.1618
0.1848
77.511%comp
bf161.62×0.0998fla
flashinfer
0.1620
0.1861
75.310%mem
q35-397b-tp8-8x8192f161.38×0.4061flashinfer
fla
0.5621
1.1029
14820%comp
bf161.35×0.4205flashinfer
fla
0.5693
1.1063
14319%comp
q35-397b-tp8-16x8192f160.59×0.7969flashinfer
fla
0.4664
2.1939
15121%comp
bf160.57×0.8190flashinfer
fla
0.4684
2.1970
14719%comp
q35-397b-tp8-32x8192f160.66×1.3950flashinfer
fla
0.9195
4.3303
17224%comp
bf160.64×1.4508flashinfer
fla
0.9224
4.3350
16622%comp
q35-397b-tp4-6144-2048f161.32×0.1369flashinfer
fla
0.1811
0.3381
11015%comp
bf161.29×0.1413flashinfer
fla
0.1824
0.3386
10614%comp
q35-397b-tp4-4096-4096f161.35×0.1346flashinfer
fla
0.1816
0.2925
11215%comp
bf161.32×0.1387flashinfer
fla
0.1832
0.2933
10814%comp
q35-397b-tp4-2048-6144f161.33×0.1372flashinfer
fla
0.1828
0.3383
11015%comp
bf161.30×0.1413flashinfer
fla
0.1839
0.3392
10614%comp
q35-397b-tp4-1024-7168f161.31×0.1392flashinfer
fla
0.1830
0.3609
10815%comp
bf161.28×0.1434flashinfer
fla
0.1840
0.3619
10514%comp
q35-397b-tp4-4x2048f161.51×0.1317flashinfer
fla
0.1982
0.2964
11416%comp
bf161.47×0.1358flashinfer
fla
0.1994
0.2972
11115%comp
q35-397b-tp4-8x1024f160.63×0.1376flashinfer
fla
0.0867
0.3028
10915%comp
bf160.61×0.1419flashinfer
fla
0.0869
0.3035
10615%mem
q35-397b-tp4-8x8192f160.60×0.7827flashinfer
fla
0.4675
2.1942
15421%comp
bf160.58×0.8058flashinfer
fla
0.4688
2.1970
14920%comp
q35-397b-tp4-16x8192f160.65×1.4066flashinfer
fla
0.9199
4.3882
17123%comp
bf160.63×1.4599flashinfer
fla
0.9243
4.3890
16522%comp
q35-397b-tp4-32x8192f160.66×2.7555flashinfer
fla
1.8187
8.7174
17524%comp
bf160.64×2.8563flashinfer
fla
1.8349
8.7277
16822%comp
q35-397b-tp2-6144-2048f161.07×0.2559flashinfer
fla
0.2731
0.5634
11716%comp
bf161.04×0.2635flashinfer
fla
0.2747
0.5653
11415%comp
q35-397b-tp2-4096-4096f161.07×0.2519flashinfer
fla
0.2696
0.5057
11916%comp
bf161.05×0.2592flashinfer
fla
0.2720
0.5070
11615%comp
q35-397b-tp2-2048-6144f161.08×0.2558flashinfer
fla
0.2765
0.5640
11816%comp
bf161.06×0.2636flashinfer
fla
0.2783
0.5653
11415%comp
q35-397b-tp2-1024-7168f161.15×0.2599flashinfer
fla
0.2986
0.5932
11616%comp
bf161.12×0.2673flashinfer
fla
0.2998
0.5941
11215%comp
q35-397b-tp2-4x2048f160.58×0.2474flashinfer
fla
0.1434
0.5108
12217%comp
bf160.56×0.2553flashinfer
fla
0.1436
0.5116
11815%comp
q35-397b-tp2-8x1024f160.65×0.2524flashinfer
fla
0.1630
0.5197
11916%comp
bf160.63×0.2606flashinfer
fla
0.1634
0.5207
11516%mem
q35-397b-tp2-8x8192f160.67×1.3859flashinfer
fla
0.9247
3.9198
17424%comp
bf160.65×1.4393flashinfer
fla
0.9312
3.9285
16722%comp
q35-397b-tp2-16x8192f160.66×2.7860flashinfer
fla
1.8370
7.8662
17324%comp
bf160.64×2.8843flashinfer
fla
1.8432
7.8708
16722%comp
q35-397b-tp2-32x8192f160.69×5.2570flashinfer
fla
3.6422
15.7322
18325%comp
bf160.67×5.4601flashinfer
fla
3.6678
15.7273
17623%comp
q35-397b-tp1-6144-2048f160.89×0.4023flashinfer
fla
0.3583
0.9784
14920%comp
bf160.87×0.4154flashinfer
fla
0.3602
0.9795
14519%comp
q35-397b-tp1-4096-4096f160.63×0.4038flashinfer
fla
0.2530
0.9787
14920%comp
bf160.61×0.4167flashinfer
fla
0.2541
0.9790
14419%comp
q35-397b-tp1-2048-6144f160.89×0.4047flashinfer
fla
0.3587
0.9787
14920%comp
bf160.86×0.4176flashinfer
fla
0.3610
0.9804
14419%comp
q35-397b-tp1-1024-7168f161.02×0.4038flashinfer
fla
0.4109
0.9793
14920%comp
bf160.99×0.4167flashinfer
fla
0.4139
0.9811
14419%comp
q35-397b-tp1-4x2048f160.68×0.4020flashinfer
fla
0.2722
0.9864
15021%comp
bf160.66×0.4165flashinfer
fla
0.2730
0.9878
14419%comp
q35-397b-tp1-8x1024f160.78×0.3950flashinfer
fla
0.3098
1.0033
15221%comp
bf160.76×0.4096flashinfer
fla
0.3107
1.0053
14720%mem
q35-397b-tp1-8x8192f160.66×2.7763flashinfer
fla
1.8361
7.8779
17324%comp
bf160.65×2.8641flashinfer
fla
1.8483
7.8871
16822%comp
q35-397b-tp1-16x8192f160.69×5.3117flashinfer
fla
3.6511
15.8174
18125%comp
bf160.67×5.4971flashinfer
fla
3.6768
15.8403
17523%comp
q35-397b-tp1-32x8192f160.70×10.4274flashinfer
fla
7.2814
32.1304
18525%comp
bf160.67×10.8544flashinfer
fla
7.3089
32.1754
17723%comp
q35-35b-6144-2048f161.29×0.2139flashinfer
fla
0.2766
0.5681
14121%mem
bf161.25×0.2225flashinfer
fla
0.2782
0.5702
13521%mem
q35-35b-4096-4096f161.27×0.2153flashinfer
fla
0.2727
0.5099
14021%mem
bf161.23×0.2237flashinfer
fla
0.2742
0.5118
13421%mem
q35-35b-2048-6144f161.29×0.2177flashinfer
fla
0.2798
0.5689
13821%mem
bf161.25×0.2258flashinfer
fla
0.2815
0.5706
13320%mem
q35-35b-1024-7168f161.37×0.2196flashinfer
fla
0.3007
0.5970
13721%mem
bf161.32×0.2276flashinfer
fla
0.3010
0.5987
13220%mem
q35-35b-4x2048f160.67×0.2151flashinfer
fla
0.1439
0.5158
14022%mem
bf160.65×0.2221flashinfer
fla
0.1442
0.5170
13521%mem
q35-35b-8x1024f160.79×0.2078flashinfer
fla
0.1639
0.5244
14523%mem
bf160.76×0.2158flashinfer
fla
0.1640
0.5265
13923%mem
q35-35b-8x8192f160.66×1.3968flashinfer
fla
0.9261
3.9314
17226%mem
bf160.65×1.4315flashinfer
fla
0.9323
3.9398
16825%mem
q35-35b-16x8192f160.69×2.6518flashinfer
fla
1.8335
7.8602
18127%mem
bf160.67×2.7503flashinfer
fla
1.8459
7.8803
17526%mem
q35-35b-32x8192f160.70×5.2276flashinfer
fla
3.6478
15.7222
18428%mem
bf160.68×5.4279flashinfer
fla
3.6706
15.7482
17727%mem
q35-27b-6144-2048f161.08×0.3241flashinfer
fla
0.3489
0.7701
13919%comp
bf161.05×0.3355flashinfer
fla
0.3507
0.7695
13418%mem
q35-27b-4096-4096f160.75×0.3266flashinfer
fla
0.2435
0.8380
13819%comp
bf160.72×0.3375flashinfer
fla
0.2445
0.8369
13418%mem
q35-27b-2048-6144f161.07×0.3267flashinfer
fla
0.3486
0.8304
13819%comp
bf161.04×0.3373flashinfer
fla
0.3503
0.8288
13418%mem
q35-27b-1024-7168f161.23×0.3265flashinfer
fla
0.4013
0.8290
13819%comp
bf161.20×0.3368flashinfer
fla
0.4038
0.8267
13418%mem
q35-27b-4x2048f160.82×0.3196flashinfer
fla
0.2621
0.7731
14120%mem
bf160.79×0.3315flashinfer
fla
0.2629
0.7716
13619%mem
q35-27b-8x1024f160.77×0.3071flashinfer
fla
0.2371
0.7865
14721%mem
bf160.74×0.3193flashinfer
fla
0.2376
0.7850
14121%mem
q35-27b-8x8192f160.65×2.1190flashinfer
fla
1.3735
6.0310
17023%comp
bf160.63×2.1832flashinfer
fla
1.3827
6.0268
16522%mem
q35-27b-16x8192f160.68×4.0057flashinfer
fla
2.7296
12.0840
18025%comp
bf160.66×4.1508flashinfer
fla
2.7463
12.0715
17423%mem
q35-27b-32x8192f160.69×7.9033flashinfer
fla
5.4325
24.3901
18325%comp
bf160.67×8.1813flashinfer
fla
5.4534
24.4015
17624%mem
q35-2b-6144-2048f161.57×0.1187flashinfer
fla
0.1867
0.3475
12726%mem
bf161.52×0.1233flashinfer
fla
0.1872
0.3876
12225%mem
q35-2b-4096-4096f161.61×0.1173flashinfer
fla
0.1887
0.3031
12826%mem
bf161.56×0.1213flashinfer
fla
0.1893
0.3292
12425%mem
q35-2b-2048-6144f161.57×0.1191flashinfer
fla
0.1867
0.3476
12626%mem
bf161.52×0.1237flashinfer
fla
0.1876
0.3873
12225%mem
q35-2b-1024-7168f161.56×0.1199flashinfer
fla
0.1868
0.3698
12525%mem
bf161.50×0.1247flashinfer
fla
0.1874
0.4165
12124%mem
q35-2b-4x2048f161.75×0.1154flashinfer
fla
0.2023
0.3063
13027%mem
bf161.71×0.1194flashinfer
fla
0.2036
0.2726
12626%mem
q35-2b-8x1024f160.78×0.1129flashinfer
fla
0.0876
0.3118
13328%mem
bf160.75×0.1167flashinfer
fla
0.0880
0.2802
12927%mem
q35-2b-8x8192f160.65×0.7216flashinfer
fla
0.4713
2.2448
16733%mem
bf160.64×0.7438flashinfer
fla
0.4732
1.9857
16232%mem
q35-2b-16x8192f160.69×1.3402flashinfer
fla
0.9261
4.4295
17936%mem
bf160.67×1.3827flashinfer
fla
0.9298
3.9106
17435%mem
q35-2b-32x8192f160.70×2.6215flashinfer
fla
1.8308
8.7885
18337%mem
bf160.68×2.7092flashinfer
fla
1.8355
7.7688
17836%mem
q35-symmetric-6144-2048f161.30×0.2199flashinfer
fla
0.2849
0.5835
13728%mem
bf161.26×0.2273flashinfer
fla
0.2859
0.5853
13227%mem
q35-symmetric-4096-4096f161.27×0.2209flashinfer
fla
0.2811
0.5262
13628%mem
bf161.24×0.2282flashinfer
fla
0.2827
0.5281
13227%mem
q35-symmetric-2048-6144f161.30×0.2227flashinfer
fla
0.2888
0.5837
13527%mem
bf161.26×0.2302flashinfer
fla
0.2897
0.5863
13126%mem
q35-symmetric-1024-7168f161.37×0.2255flashinfer
fla
0.3081
0.6118
13327%mem
bf161.33×0.2323flashinfer
fla
0.3093
0.6140
12926%mem
q35-symmetric-4x2048f160.66×0.2201flashinfer
fla
0.1457
0.5332
13728%mem
bf160.64×0.2275flashinfer
fla
0.1464
0.5344
13227%mem
q35-symmetric-8x1024f160.78×0.2123flashinfer
fla
0.1664
0.5420
14230%mem
bf160.76×0.2197flashinfer
fla
0.1669
0.5429
13729%mem
q35-symmetric-8x8192f160.70×1.3384flashinfer
fla
0.9320
3.9793
18036%mem
bf160.68×1.3766flashinfer
fla
0.9356
3.9901
17535%mem
q35-symmetric-16x8192f160.69×2.6499flashinfer
fla
1.8375
7.9190
18236%mem
bf160.68×2.7321flashinfer
fla
1.8510
7.9450
17635%mem
q35-symmetric-32x8192f160.72×5.0507flashinfer
fla
3.6513
15.8504
19038%mem
bf160.70×5.2099flashinfer
fla
3.6720
15.8576
18537%mem
varlen-ragged-groupedf161.27×0.1458flashinfer
fla
0.1845
0.2141
51.68%mem
prefill-raw-4kbf162.30×0.1041fla
flashinfer
0.2398
0.4426
72.715%mem
prefill-raw-raggedbf161.63×0.0997fla
flashinfer
0.1626
0.2541
20.86%mem
decode-gate-fusedbf162.91×0.00704fla
flashinfer-decode
flashinfer
0.0205
0.1321
0.1722
2.0954%mem
decode-vfirst-b17bf161.00×0.00957fla
flashinfer-decode
flashinfer
0.00955
0.0237
0.0304
2.4562%mem
prefill-v-first-4kbf161.67×0.0835flashinfer
fla
0.1392
0.2034
90.118%mem
varlen-v-first-raggedf161.44×0.1179flashinfer
fla
0.1699
0.2150
63.810%mem

KDAFwd

q, k: [B, S, H, K]v: [B, S, HV, V]g: [B, S, HV, K]beta: [B, S, HV]cu_seqlens, cu_seqlens_cpu: [N + 1], i64

use_qk_l2norm_in_kernel=true

  • kda-tp1-4x1024q, k, v, g: [1, 4096, 32, 128]beta: [1, 4096, 32]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=repeat(1024, 4)dtype=bf16, f16
  • kda-tp1-1024-7168q, k, v, g: [1, 8192, 32, 128]beta: [1, 8192, 32]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[1024,7168]dtype=bf16
  • kda-tp1-16x8192q, k, v, g: [1, 131072, 32, 128]beta: [1, 131072, 32]cu_seqlens, cu_seqlens_cpu: [17], i64seq_lens=repeat(8192, 16)dtype=bf16
  • kda-tp8-1024-7168q, k, v, g: [1, 8192, 4, 128]beta: [1, 8192, 4]cu_seqlens, cu_seqlens_cpu: [3], i64seq_lens=[1024,7168]dtype=bf16
  • kda-tp8-16x8192q, k, v, g: [1, 131072, 4, 128]beta: [1, 131072, 4]cu_seqlens, cu_seqlens_cpu: [17], i64seq_lens=repeat(8192, 16)dtype=bf16

q, k: [B, S, H, K]v: [B, S, HV, V]g: [B, S, HV, K]beta: [B, S, HV]cu_seqlens: [N + 1], i64

  • kda-tp1-4x8192q, k, v, g: [1, 32768, 32, 128]beta: [1, 32768, 32]cu_seqlens: [5], i64seq_lens=repeat(8192, 4)use_qk_l2norm_in_kernel=truedtype=bf16

q, k: [B, S, H, K]v: [B, S, HV, V]g: [B, S, HV, K]beta: [B, S, HV]initial_state: [B, HV, K, V], f32

use_qk_l2norm_in_kernel=truedtype=bf16

  • kda-tp1-decode-b1q, k, v, g: [1, 1, 32, 128]beta: [1, 1, 32]initial_state: [1, 32, 128, 128], f32
  • kda-tp1-decode-b64q, k, v, g: [64, 1, 32, 128]beta: [64, 1, 32]initial_state: [64, 32, 128, 128], f32
  • kda-tp1-decode-b8q, k, v, g: [8, 1, 32, 128]beta: [8, 1, 32]initial_state: [8, 32, 128, 128], f32
  • kda-tp1-decode-b32q, k, v, g: [32, 1, 32, 128]beta: [32, 1, 32]initial_state: [32, 32, 128, 128], f32
  • kda-tp1-decode-b128q, k, v, g: [128, 1, 32, 128]beta: [128, 1, 32]initial_state: [128, 32, 128, 128], f32
  • kda-tp1-decode-b256q, k, v, g: [256, 1, 32, 128]beta: [256, 1, 32]initial_state: [256, 32, 128, 128], f32
  • kda-tp8-decode-b32q, k, v, g: [32, 1, 4, 128]beta: [32, 1, 4]initial_state: [32, 4, 128, 128], f32
  • kda-tp8-decode-b256q, k, v, g: [256, 1, 4, 128]beta: [256, 1, 4]initial_state: [256, 4, 128, 128], f32

q, k: [B, S, H, K]v: [B, S, HV, V]g: [B, S, HV, K]beta: [B, S, HV]

use_qk_l2norm_in_kernel=truedtype=bf16

  • kda-tp1-4096q, k, v, g: [1, 4096, 32, 128]beta: [1, 4096, 32]
  • kda-tp1-16384q, k, v, g: [1, 16384, 32, 128]beta: [1, 16384, 32]
  • kda-tp1-65536q, k, v, g: [1, 65536, 32, 128]beta: [1, 65536, 32]
  • kda-tp2-4096q, k, v, g: [1, 4096, 16, 128]beta: [1, 4096, 16]
  • kda-tp2-16384q, k, v, g: [1, 16384, 16, 128]beta: [1, 16384, 16]
  • kda-tp2-65536q, k, v, g: [1, 65536, 16, 128]beta: [1, 65536, 16]
  • kda-tp4-4096q, k, v, g: [1, 4096, 8, 128]beta: [1, 4096, 8]
  • kda-tp4-16384q, k, v, g: [1, 16384, 8, 128]beta: [1, 16384, 8]
  • kda-tp4-65536q, k, v, g: [1, 65536, 8, 128]beta: [1, 65536, 8]
  • kda-tp8-4096q, k, v, g: [1, 4096, 4, 128]beta: [1, 4096, 4]
  • kda-tp8-16384q, k, v, g: [1, 16384, 4, 128]beta: [1, 16384, 4]
  • kda-tp8-65536q, k, v, g: [1, 65536, 4, 128]beta: [1, 65536, 4]
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
kda-tp1-4x1024bf161.32×0.4467fla0.5894349%mem
f161.34×0.4380fla0.585534.79%mem
kda-tp1-1024-7168bf160.90×1.3473fla1.209622.66%mem
kda-tp1-16x8192bf161.27×13.1874fla16.803436.99%mem
kda-tp8-1024-7168bf160.51×0.6895fla0.35445.511%mem
kda-tp8-16x8192bf161.11×2.1177fla2.343928.77%mem
kda-tp1-4x8192bf161.27×3.3764fla4.2837369%mem
kda-tp1-decode-b1bf161.43×0.00429fla0.006110.86522%lat
kda-tp1-decode-b64bf161.11×0.0777fla0.08613.0677%mem
kda-tp1-decode-b8bf161.34×0.0122fla0.01632.4462%mem
kda-tp1-decode-b32bf161.11×0.0423fla0.04672.8171%mem
kda-tp1-decode-b128bf161.13×0.1464fla0.16583.2482%mem
kda-tp1-decode-b256bf161.15×0.2827fla0.32403.3685%mem
kda-tp8-decode-b32bf161.20×0.00803fla0.00961.8547%mem
kda-tp8-decode-b256bf161.11×0.0423fla0.04682.8171%mem
kda-tp1-4096bf160.83×0.7319fla0.609420.85%mem
kda-tp1-16384bf160.82×2.7977fla2.302221.75%mem
kda-tp1-65536bf160.83×10.9486fla9.041022.25%mem
kda-tp2-4096bf160.65×0.5696fla0.369113.33%mem
kda-tp2-16384bf160.64×2.1537fla1.379214.13%mem
kda-tp2-65536bf160.64×8.4025fla5.388114.54%mem
kda-tp4-4096bf160.59×0.4445fla0.26388.552%mem
kda-tp4-16384bf160.55×1.6948fla0.93138.972%mem
kda-tp4-65536bf160.55×6.6078fla3.61329.22%mem
kda-tp8-4096bf160.52×0.3910fla0.20204.861%mem
kda-tp8-16384bf160.45×1.5401fla0.69854.931%mem
kda-tp8-65536bf160.45×6.0266fla2.68975.041%mem

GLAChunkFwd

q, k, g: [B, S, H, DK]v: [B, S, H, DV]

scale=0.125dtype=f16, bf16

  • train-2kq, k, v, g: [2, 2048, 4, 64]
  • train-8kq, k, v, g: [2, 8192, 4, 64]

q, k, g: [B, S, H, DK]v: [B, S, H, DV]initial_state: [B, H, DK, DV], f32

scale=0.125dtype=f16, bf16

  • train-4kq, k, v, g: [2, 4096, 4, 64]initial_state: [2, 4, 64, 64], f32
  • train-16kq, k, v, g: [2, 16384, 4, 64]initial_state: [2, 4, 64, 64], f32
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
train-2kf160.79×0.0946fla0.07514.42%mem
bf160.81×0.0938fla0.07604.443%mem
train-8kf160.89×0.3061fla0.27215.443%mem
bf160.90×0.3059fla0.27465.443%mem
train-4kf160.81×0.1567fla0.12655.313%mem
bf160.84×0.1558fla0.13125.343%mem
train-16kf160.79×0.6176fla0.48545.393%mem
bf160.82×0.6155fla0.50395.413%mem

GLAChunkBwd

q, k, g: [B, S, H, DK]v, do: [B, S, H, DV]h: [B, NC + 1, H, DK, DV], f32dht: [B, H, DK, DV], f32

scale=0.125dtype=f16, bf16

  • train-2kq, k, v, g, do: [2, 2048, 4, 64]h: [2, 33, 4, 64, 64], f32dht: [2, 4, 64, 64], f32
  • train-4kq, k, v, g, do: [2, 4096, 4, 64]h: [2, 65, 4, 64, 64], f32dht: [2, 4, 64, 64], f32
  • train-8kq, k, v, g, do: [2, 8192, 4, 64]h: [2, 129, 4, 64, 64], f32dht: [2, 4, 64, 64], f32
  • train-16kq, k, v, g, do: [2, 16384, 4, 64]h: [2, 257, 4, 64, 64], f32dht: [2, 4, 64, 64], f32
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
train-2kf161.04×0.1726fla0.17895.244%mem
bf161.03×0.1734fla0.17855.224%mem
train-4kf160.98×0.3540fla0.34745.114%mem
bf161.01×0.3455fla0.34775.244%mem
train-8kf160.96×0.7065fla0.67635.124%mem
bf160.99×0.6808fla0.67745.324%mem
train-16kf160.92×1.4448fla1.32565.014%mem
bf160.96×1.3758fla1.32435.264%mem

GLARecurrentFwd

q, k, gk: [B, H, DK]v: [B, H, DV]state: [B, H, DK, DV]

scale=0.0883883dtype=bf16

  • serving-b1-h8q, k, v, gk: [1, 8, 128]state: [1, 8, 128, 128]
  • serving-b1-h16q, k, v, gk: [1, 16, 128]state: [1, 16, 128, 128]
  • serving-b1-h32q, k, v, gk: [1, 32, 128]state: [1, 32, 128, 128]
  • serving-b1-h48q, k, v, gk: [1, 48, 128]state: [1, 48, 128, 128]
  • serving-b1-h64q, k, v, gk: [1, 64, 128]state: [1, 64, 128, 128]
  • serving-b8-h32q, k, v, gk: [8, 32, 128]state: [8, 32, 128, 128]
  • serving-b8-h48q, k, v, gk: [8, 48, 128]state: [8, 48, 128, 128]
  • serving-b8-h64q, k, v, gk: [8, 64, 128]state: [8, 64, 128, 128]
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
serving-b1-h8bf160.86×0.00742torch-compile
fla
torch
0.0064
0.00816
0.0307
0.08862%lat
serving-b1-h16bf160.89×0.00768torch-compile
fla
torch
0.00681
0.00848
0.0321
0.1713%lat
serving-b1-h32bf161.06×0.00787torch-compile
fla
torch
0.00838
0.00912
0.0363
0.3346%lat
serving-b1-h48bf161.29×0.00809torch-compile
fla
torch
0.0104
0.0112
0.0407
0.4879%lat
serving-b1-h64bf161.07×0.00829torch-compile
fla
torch
0.00886
0.0111
0.0423
0.63511%lat
serving-b8-h32bf161.33×0.0162torch-compile
fla
torch
0.0214
0.0225
0.0906
1.324%mem
serving-b8-h48bf161.05×0.0235torch-compile
fla
torch
0.0247
0.0296
0.1219
1.3424%mem
serving-b8-h64bf161.05×0.0309torch-compile
fla
torch
0.0325
0.0382
0.1596
1.3625%mem

GLAFwd

q, k, g: [B, S, H, K]v: [B, S, H, V]

  • prefill-2kq, k, v, g: [2, 2048, 4, 64]dtype=bf16
  • prefill-8kq, k, v, g: [2, 8192, 4, 64]dtype=bf16
  • prefill-3000q, k, v, g: [2, 3000, 4, 64]scale=0.125dtype=bf16
  • decode-first-tokenq, k, v, g: [3, 1, 24, 128]dtype=f16

q, k, g: [B, S, H, K]v: [B, S, H, V]initial_state: [B, H, K, V], f32

dtype=bf16

  • prefill-4kq, k, v, g: [2, 4096, 4, 64]initial_state: [2, 4, 64, 64], f32
  • prefill-16kq, k, v, g: [2, 16384, 4, 64]initial_state: [2, 4, 64, 64], f32
  • decode-b1-d64q, k, v, g: [1, 1, 32, 64]initial_state: [1, 32, 64, 64], f32
  • decode-b8-d128q, k, v, g: [8, 1, 32, 128]initial_state: [8, 32, 128, 128], f32
  • gla-short-continuationq, k, v, g: [1, 257, 16, 128]initial_state: [1, 16, 128, 128], f32
  • gla-continue-b4q, k, v, g: [4, 257, 16, 128]initial_state: [4, 16, 128, 128], f32

q, k, g: [B, S, H, K]v: [B, S, H, V]cu_seqlens, cu_seqlens_cpu: [N + 1], i64

  • varlen-4x1kq, k, v, g: [1, 4096, 4, 64]cu_seqlens, cu_seqlens_cpu: [5], i64seq_lens=repeat(1024, 4)dtype=bf16

q, k, g: [B, S, H, K]v: [B, S, H, V]initial_state: [N, H, K, V], f32cu_seqlens: [N + 1], i64

  • varlen-raggedq, k, v, g: [1, 4096, 16, 128]initial_state: [4, 16, 128, 128], f32cu_seqlens: [5], i64seq_lens=[1,63,1000,3032]dtype=f16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
prefill-2kbf161.28×0.0596fla0.07615.674%mem
prefill-8kbf161.41×0.1957fla0.27506.95%mem
prefill-3000bf162.01×0.0543fla0.10909.116%mem
decode-first-tokenf163.23×0.00272fla0.00882.1839%lat
prefill-4kbf161.30×0.1008fla0.13066.75%mem
prefill-16kbf161.93×0.2617fla0.504610.37%mem
decode-b1-d64bf163.68×0.00218fla0.0080.30311%lat
decode-b8-d128bf161.55×0.0120fla0.01861.7563%mem
gla-short-continuationbf161.23×0.0352fla0.04329.615%mem
gla-continue-b4bf161.22×0.0870fla0.105815.58%mem
varlen-4x1kbf162.08×0.0421fla0.08778.036%mem
varlen-raggedf161.45×0.2495fla0.361421.68%mem