Summary
The gather fixture has 22 parallel: False variants, all skipping
test_work_distribution. Every other fixture (matmul, softmax,
vector_add) always uses tl.program_id and never needs this flag.
The parallel flag only exists in gather because gather_kernel was
written as a single-program kernel — an inconsistency that should be
resolved.
Goal
Make the gather fixture consistent with every other fixture: all
kernels use tl.program_id, all variants run test_work_distribution,
and the parallel flag goes away entirely.
This requires deciding for each kernel whether:
- It should be rewritten to use
tl.program_id (preferred — matches
all other fixtures), or
- It genuinely tests a single-program lowering that has no parallel
equivalent, in which case the skip is legitimate and the variant
should be removed or kept with a clear justification.
Questions to answer
- Does
gather_kernel (the original single-program kernel) still serve
a purpose distinct from gather_2d_kernel, or can its variants be
replaced by parallel equivalents?
- Do the
*_serial variants (2d_serial, 2d_large_table_serial)
test anything not already covered by their parallel twins?
Acceptance
- No
parallel: False entries remain in fixtures/gather/meta.py, or
each remaining one has an explicit justification and a decision was
made not to remove it.
test_work_distribution skip count drops to zero for gather variants.
test_numerical still green for all variants.
Pointers
third_party/spyre/test/fixtures/gather/kernel.py
third_party/spyre/test/fixtures/gather/meta.py
third_party/spyre/test/test_ktir_examples.py — skip site (line 307)
Summary
The gather fixture has 22
parallel: Falsevariants, all skippingtest_work_distribution. Every other fixture (matmul, softmax,vector_add) always uses
tl.program_idand never needs this flag.The
parallelflag only exists in gather becausegather_kernelwaswritten as a single-program kernel — an inconsistency that should be
resolved.
Goal
Make the gather fixture consistent with every other fixture: all
kernels use
tl.program_id, all variants runtest_work_distribution,and the
parallelflag goes away entirely.This requires deciding for each kernel whether:
tl.program_id(preferred — matchesall other fixtures), or
equivalent, in which case the skip is legitimate and the variant
should be removed or kept with a clear justification.
Questions to answer
gather_kernel(the original single-program kernel) still servea purpose distinct from
gather_2d_kernel, or can its variants bereplaced by parallel equivalents?
*_serialvariants (2d_serial,2d_large_table_serial)test anything not already covered by their parallel twins?
Acceptance
parallel: Falseentries remain infixtures/gather/meta.py, oreach remaining one has an explicit justification and a decision was
made not to remove it.
test_work_distributionskip count drops to zero for gather variants.test_numericalstill green for all variants.Pointers
third_party/spyre/test/fixtures/gather/kernel.pythird_party/spyre/test/fixtures/gather/meta.pythird_party/spyre/test/test_ktir_examples.py— skip site (line 307)