Skip to content

new api changes for unit tests for supported configurations - #683

Merged
taozha2 merged 2 commits into
intel:mainfrom
rajprince-intel:rajprinc/unit-test-new-api-changes
Sep 22, 2026
Merged

taozha2 merged 2 commits into
intel:mainfrom
rajprince-intel:rajprinc/unit-test-new-api-changes

Conversation

@rajprince-intel

@rajprince-intel rajprince-intel commented Jan 6, 2026 •

Copy link
Copy Markdown

Description

Migrate GEMM tests from legacy Intel Xe-specific API to new APIs.

Changes:

  • Grouped GEMM: gemm_universal_mainloopintelxexmx16group.cpp
  • Epilogue Fusion GEMM: gemm_universal_lincomb_per_rowbias_eltact.cpp

Type

  • Bug
  • Feature
  • Performance
  • Refactor

Testing

  • Tests pass
  • Xe12
  • Xe20

Performance

Metric Before After
Performance No change (API migration only) No change

References

Related to generic API modernization effort.

Checklist

  • Copyright headers preserved (Intel 2025)
  • Co-pilot Review (self-reviewed migration)
  • Deprecated APIs not used (migrated away from legacy APIs)

Quick Reference

Component Grouped GEMM Epilogue Fusion GEMM
File gemm_universal_mainloopintelxexmx16group.cpp gemm_universal_lincomb_per_rowbias_eltact.cpp
GmemTiledCopy XE_2D_U16x32x32_* → void XE_2D_U16x32x32_* → void
MMA Atom XE_8x16x16_* → XE_DPAS_TT<8, float, bfloat16_t> XE_8x16x16_* → XE_DPAS_TT<8, float, bfloat16_t>
GEMM Dispatch MainloopIntelXeXMX16Group → MainloopXeL1StagedGroup MainloopIntelXeXMX16 → MainloopXeL1Staged
Epilogue Dispatch IntelXeXMX16Group (unchanged) [based on example09] IntelXeXMX16 → IntelXeGeneric
Epilogue Tile N/A [based on example09] Add void as 3rd param
Epilogue Atoms Explicit (unchanged) [based on example09] Explicit → void

Code Examples

Grouped GEMM Changes

- using GmemTiledCopyA = XE_2D_U16x32x32_LD_N;
+ using GmemTiledCopyA = void;

- MMA_Atom<XE_8x16x16_F32BF16BF16F32_TT>
+ MMA_Atom<XE_DPAS_TT<8, float, cute::bfloat16_t>>

- using GEMMDispatchPolicy = cutlass::gemm::MainloopIntelXeXMX16Group<PipelineStages>;
+ using GEMMDispatchPolicy = cutlass::gemm::MainloopXeL1StagedGroup<PipelineStages>;

Epilogue Fusion GEMM Changes

- using GEMMDispatchPolicy = cutlass::gemm::MainloopIntelXeXMX16<PipelineStages>;
+ using GEMMDispatchPolicy = cutlass::gemm::MainloopXeL1Staged<PipelineStages>;

- using EpilogueDispatchPolicy = cutlass::epilogue::IntelXeXMX16;
+ using EpilogueDispatchPolicy = cutlass::epilogue::IntelXeGeneric;

  using CollectiveEpilogue = cutlass::epilogue::collective::CollectiveEpilogue<
      EpilogueDispatchPolicy, TileShape,
+     void,                    // NEW: Epilogue tile (automatic)
      ElementAccumulator, ..., FusionCallBacks,
-     XE_2D_U32x8x16_LD_N, void, void, XE_2D_U32x8x16_ST_N, void, void>;
+     void, void>;             // Automatic load/store atoms

aschabana
aschabana previously approved these changes Jan 6, 2026
@tdeng5

tdeng5 commented Apr 22, 2026

Copy link
Copy Markdown

Propose to create a folder legacy to keep legacy test cases. and create new cases for new APIs. like most of the examples do

@taozha2
taozha2 force-pushed the rajprinc/unit-test-new-api-changes branch from d4f9dbc to 1c47644 Compare September 22, 2026 06:24
@taozha2
taozha2 enabled auto-merge (squash) September 22, 2026 06:27
@taozha2
taozha2 merged commit 3fc7998 into intel:main Sep 22, 2026
7 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants