From 4fa4239f95f21add9c29d975676ef7f00d92e3a3 Mon Sep 17 00:00:00 2001 From: biondizzle Date: Sat, 23 May 2026 21:03:53 +0000 Subject: [PATCH] D1.3: Initialize tOrP0 before conditional for CuTeDSL scoping --- dsv4/kernels/attention/fmha.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dsv4/kernels/attention/fmha.py b/dsv4/kernels/attention/fmha.py index 93351c85..fb3848e8 100644 --- a/dsv4/kernels/attention/fmha.py +++ b/dsv4/kernels/attention/fmha.py @@ -181,10 +181,11 @@ class FmhaKernel: # For SMEM-P, offset is 0 (P not in TMEM). # Must be defined unconditionally (CuTeDSL scoping). _p0_bf16_offset = max(self.tmem_p0_offset, 0) * (32 // 16) # Python int + # Must define tOrP0 before conditional (CuTeDSL scoping rule). + # Initialize to tOrP, then override with offset for TMEM-P. + tOrP0 = tOrP if _p0_bf16_offset > 0: tOrP0 = cute.make_tensor(tOrP.iterator + _p0_bf16_offset, tOrP.layout) - else: - tOrP0 = tOrP tCtO_fake = pv_mma.make_fragment_C(cute.append(pv_as, self.num_acc_stage)) pipeline.pipeline_init_wait(cluster_shape_mn=cl_vmnk)