↓ 7 callersFunctionw4a16_gemv_batch2W4A16 double-GEMV (M=2): reads weights once, computes 2 outputs. A: [2, K] BF16 contiguous, B: NVFP4 packed, C: [2, N] BF16 contiguous. Same weight b
crates/spark-model/src/layers/ops/quant_dispatch.rs:124
↓ 6 callersFunctionbf16_gemm_act_weight_t(
act: u64,
weight: u64,
out: u64,
m: u32,
n: u32,
k: u32,
stream: u64,
)
crates/spark-runtime/src/cutlass/gemm.rs:14
↓ 6 callersFunctiondense_gemv_fp8wDense FP8-weight GEMV (M=1): C = A @ (dequant(B_fp8) * row_scale). A: `[1, K]` BF16, B: `[N, K]` FP8 E4M3, row_scale: `[N]` f32, C: `[1, N]` BF16. Ha
crates/spark-model/src/layers/ops/gemm_quant.rs:176
↓ 6 callersFunctionindexed_trace(kind, idx) trace of the indexed detector events, in emission order. `kind` ∈ {"start", "end", "call"} — fragments/deltas are asserted separately via
crates/spark-server/src/tool_parser/tests/group_g_parallel.rs:18