Expand description
ESIMD / SPV_INTEL_subgroups SPIR-V kernel generators.
Intel GPUs expose Explicit SIMD (ESIMD) block memory operations through
the SPV_INTEL_subgroups extension: OpSubgroupBlockReadINTEL /
OpSubgroupBlockWriteINTEL move a contiguous block of data per sub-group in
a single hardware message, which is critical for high-throughput tile loads
on Xe-HPC GEMM. The same extension underpins the DPAS (Dot-Product
Accumulate Systolic) path used for INT8 / BF16 systolic GEMM on Xe-HPG.
This module emits the SPIR-V module words for those kernels and is fully
CPU-testable: the tests assert on the emitted magic/header, the declared
SPV_INTEL_subgroups extension string, the SubgroupBufferBlockIOINTEL
capability, and the presence of the block-read/-write opcodes. Actually
dispatching the kernel needs a physical Intel GPU and is out of scope here.
Structs§
- Dpas
Tile Config - Tile configuration for a DPAS (systolic) GEMM kernel.
Enums§
- Fp8Format
- The two IEEE-style 8-bit float encodings used for low-precision inference.
Functions§
- dpas_
gemm_ spirv - Generate an OpenCL SPIR-V GEMM kernel that uses
SPV_INTEL_subgroupsblock reads to feed a per-lane DPAS-style accumulation. - esimd_
block_ copy_ spirv - Generate an OpenCL SPIR-V kernel that copies
countfloats usingOpSubgroupBlockReadINTEL/OpSubgroupBlockWriteINTEL. - gemm_
fp8_ coop_ matrix_ spirv - Generate a SPIR-V 1.6 cooperative-matrix module declaring an FP8 GEMM tile.