You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[hipBLASLt][TensileLite] PGR2 + ScheduleLocalWrite=0 kernels drop main-loop global reads #14377
TensileLite kernels with PrefetchGlobalRead >= 2 and ScheduleLocalWrite = 0 have no global loads in the unrolled main loop. They give wrong results once K spans more than 2 DepthU tiles, and they benchmark unrealistically fast. SIA1 + 1LDSBuffer = 1 requires ScheduleLocalWrite = 0, so all such kernels are affected.
Cause: with PGR >= 2, prepareGRInstToSched (tensilelite/Components/SIA.py) defers the next tile's global reads to itemsGRToSchedLater, to be issued after the local writes. Only schedLocalWrite consumes that list. With ScheduleLocalWrite = 0, noSchedLocalWrite runs instead and the reads are dropped.
A related bug in the same configuration is also fixed in #14383.
SIA3 + 1LDSBuffer = 1 + ScheduleLocalWrite = 0 fails kernel generation (overflowedResources = 5, the 1LDSBuffer read/write overlap check). SIA3 sets sync1LdsMfmaIndex only in assignLWSchedIndexSIA3, which runs only for ScheduleLocalWrite = 1. With ScheduleLocalWrite = 0 the index stays at its default of -1, so the scheduler never flushes the remaining local reads before the local writes.
Activity
mgehre-amd commentedon Oct 27, 2026
A related bug in the same configuration is also fixed in #14383.
SIA3 +
1LDSBuffer = 1+ScheduleLocalWrite = 0fails kernel generation (overflowedResources = 5, the 1LDSBuffer read/write overlap check). SIA3 setssync1LdsMfmaIndexonly inassignLWSchedIndexSIA3, which runs only forScheduleLocalWrite = 1. WithScheduleLocalWrite = 0the index stays at its default of-1, so the scheduler never flushes the remaining local reads before the local writes.