9.7.14.2. Matrix Data-types

The matrix multiply and accumulate operation is supported separately on integer, floating-point, sub-byte integer and single bit data-types. All operands must contain the same basic type kind, i.e., integer or floating-point.

For floating-point matrix multiply and accumulate operation, different matrix operands may have different precision, as described later.

Data-type Multiplicands (A or B) Accumulators (C or D)
Integer .u8, .s8 .s32
Floating Point .f16 .f16, .f32
Alternate floating Point .bf16 .f32
Alternate floating Point .tf32 .f32
Alternate floating Point .e4m3 or .e5m2 or .e3m2 or .e2m3 or .e2m1 .f16, .f32
Alternate floating Point with scale .e4m3 or .e5m2 or .e3m2 or .e2m3 or .e2m1 X (Scale) .ue8m0 .f32
Alternate floating Point with scale .e2m1 X (Scale) .ue8m0 or .ue4m3 .f32
Floating Point .f64 .f64
Sub-byte integer both .u4 or both .s4 .s32
Single-bit integer .b1 .s32