Question] What is the overall goal of the dialect?
[Answer] The GEN dialect is aimed at extending the LLVM dialect with operations for exposing to the MLIR ecosystem selected Intel Xe ISA (codename GEN) assembly instructions such as the instruction used to do matrix multiplication with accumulation (i.e. DPAS).
[Question] What is the first implementation milestone?
[Answer] The first implementation milestone aims at providing operations to:
- query GPU properties such as threads ID, block ID, block and grid dimensions, etc…
- emit barrier and group shuffle operations
- emit instructions useful to access systolic array HW for matrix operations
[Question] How does it fit into the MLIR dialect ecosystem?
[Answer] The MLIR ecosystem contains the NVVM dialect, which extends the LLVM dialect to provide operations useful for programming NVIDIA GPUs, and the ROCDL dialect which extends the LLVM dialect in a similar way and provides operations for programming AMD GPUs. The GEN dialect is positioned at the same hierarchical level as the NVVM and ROCDL dialects and provide similar functionality for programing Intel GPUs.
[Question] Connection: how does it connect to the existing dialects in a compilation pipeline(s)?
[Answer] The GEN dialect complements the LLVM dialect to provide the ability to generate instructions for accessing Intel GPUs (just like NVVM/ROCDL dialects extend the LLVM dialect to provide access to instructions for NVIDIA/AMD GPUs).
Higher level dialects, such as the GPU dialect, can lower certain operations to the GEN dialect. For example, the GPU dialect can convert gpu::ThreadIdOp to GEN::TheadIdOp.
Also, we envision that the XeGPU dialect(link) will implement a lowering path to the GEN dialect.
[Question] Consolidation: is there already a dialect with a similar goal or matching abstractions; if so, can it be improved instead of adding a new one?
[Answer] There is no other dialect in MLIR fitting this goal.
[Question] Reuse: how does it generalize to similar but slightly different use cases?
[Answer] Over time the GEN dialect can be expanded to include more operations exposing Xe ISA instructions.
[Question] What is the community of users that it is serving?
[Answer] The GEN dialect serves open source communities who aspire to build high-performance applications using the MLIR infrastructure on Intel GPUs.
[Question] Who are the future contributors/maintainers beyond those who propose the dialect?
[Answer] Intel engineers would mainly maintain it. For example whitneywhtsang (Whitney Tsang) (github.com), pengtu (Peng Tu) (github.com) and others.