Skip to content

[Backport to llvm_release_220] Add FP4/FP8 operand support for SubgroupMatrixMultiplyAccumulateINTEL (#3609)#3626

Merged
vmaksimo merged 1 commit intoKhronosGroup:llvm_release_220from
KanclerzPiotr:llvm_release_220
Mar 9, 2026
Merged

[Backport to llvm_release_220] Add FP4/FP8 operand support for SubgroupMatrixMultiplyAccumulateINTEL (#3609)#3626
vmaksimo merged 1 commit intoKhronosGroup:llvm_release_220from
KanclerzPiotr:llvm_release_220

Conversation

@KanclerzPiotr
Copy link

Extend SubgroupMatrixMultiplyAccumulateINTEL to support packed 4-bit and
8-bit floating-point matrix operands by implementing extensions:

  • SPV_INTEL_subgroup_matrix_multiply_accumulate_float4
  • SPV_INTEL_subgroup_matrix_multiply_accumulate_float8

These extensions add operand flags that interpret packed integer data as
FP4/FP8 without requiring actual FP4/FP8 type support added by
SPV_INTEL_float4 or SPV_EXT_float8.

FP4 operands:
MatrixAPackedFloat4E2M1INTEL (0x40000) /
MatrixBPackedFloat4E2M1INTEL (0x80000)
FP8 operands:
MatrixAPackedFloat8E4M3INTEL (0x4000) / MatrixBPackedFloat8E4M3INTEL
(0x8000)
MatrixAPackedFloat8E5M2INTEL (0x10000) /
MatrixBPackedFloat8E5M2INTEL (0x20000)

Specs:

https://github.com/intel/llvm/blob/sycl/sycl/doc/design/spirv-extensions/SPV_INTEL_subgroup_matrix_multiply_accumulate_float4.asciidoc
https://github.com/intel/llvm/blob/sycl/sycl/doc/design/spirv-extensions/SPV_INTEL_subgroup_matrix_multiply_accumulate_float8.asciidoc

…upMatrixMultiplyAccumulateINTEL (KhronosGroup#3609)

Extend SubgroupMatrixMultiplyAccumulateINTEL to support packed 4-bit and
8-bit floating-point matrix operands by implementing extensions:
- SPV_INTEL_subgroup_matrix_multiply_accumulate_float4
- SPV_INTEL_subgroup_matrix_multiply_accumulate_float8

These extensions add operand flags that interpret packed integer data as
FP4/FP8 without requiring actual FP4/FP8 type support added by
SPV_INTEL_float4 or SPV_EXT_float8.

FP4 operands:
`MatrixAPackedFloat4E2M1INTEL` (0x40000) /
`MatrixBPackedFloat4E2M1INTEL` (0x80000)
FP8 operands:
`MatrixAPackedFloat8E4M3INTEL` (0x4000) / `MatrixBPackedFloat8E4M3INTEL`
(0x8000)
`MatrixAPackedFloat8E5M2INTEL` (0x10000) /
`MatrixBPackedFloat8E5M2INTEL` (0x20000)

Specs:

https://github.com/intel/llvm/blob/sycl/sycl/doc/design/spirv-extensions/SPV_INTEL_subgroup_matrix_multiply_accumulate_float4.asciidoc
https://github.com/intel/llvm/blob/sycl/sycl/doc/design/spirv-extensions/SPV_INTEL_subgroup_matrix_multiply_accumulate_float8.asciidoc
@vmaksimo
Copy link
Contributor

vmaksimo commented Mar 9, 2026

Reopening to retrigger Out-of-tree checks (should pass after #3635)

@vmaksimo vmaksimo closed this Mar 9, 2026
@vmaksimo vmaksimo reopened this Mar 9, 2026
@vmaksimo vmaksimo merged commit bd98f94 into KhronosGroup:llvm_release_220 Mar 9, 2026
16 of 18 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.

2 participants