D3D12DDI_WAVE_MMA_DATA_0103 structure (d3d12umddi.h)
Important
Some information relates to a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
The D3D12DDI_WAVE_MMA_DATA_0103 structure describes a driver's support for Direct3D matrix-multiply-accumulate (MMA) operations.
Syntax
typedef struct D3D12DDI_WAVE_MMA_DATA_0103 {
D3D12DDI_WAVE_MMA_INPUT_DATATYPE InputDataType;
D3D12DDI_WAVE_MMA_DIMENSION M;
D3D12DDI_WAVE_MMA_DIMENSION N;
BOOL Supported;
UINT K;
D3D12DDI_WAVE_MMA_ACCUM_DATATYPE AccumDataTypes;
UINT RequiredWaveLaneCountMin;
UINT RequiredWaveLaneCountMax;
} D3D12DDI_WAVE_MMA_DATA_0103;
Members
InputDataType
[in] A D3D12DDI_WAVE_MMA_INPUT_DATATYPE enumeration that specifies the type of the input data.
M
[in] A D3D12DDI_WAVE_MMA_DIMENSION enumeration that specifies the dimension of the matrix operation that corresponds to the number of rows in the left matrix.
N
[in] A D3D12DDI_WAVE_MMA_DIMENSION enumeration that specifies the dimension of the matrix operation that corresponds to the number of columns in the right matrix.
Supported
[out] Set to TRUE if the hardware supports the specified matrix dimensions and data type; otherwise FALSE.
K
[out] Specifies the shared dimension size supported by the device for the given combination of M and ((N)). This value must be an even multiple of 16.
AccumDataTypes
[out] The D3D12DDI_WAVE_MMA_ACCUM_DATATYPE enumeration that specifies the supported accumulation data types.
RequiredWaveLaneCountMin
[out] The minimum number of wave lanes required to support the wave MMA intrinsics.
RequiredWaveLaneCountMax
[out] The maximum number of wave lanes that can be used to support the wave MMA intrinsics.
Remarks
The matrix multiplication unit is defined by three dimensions M, N, and K. The matrix multiplication unit thus is defined to be a multiplication of two matrices of dimensions MxK (left matrix) and KxN (right matrix) with a resulting matrix of size MxN.
A hardware implementation can support only one K value for each combination of M, N, and InputDataType. The possible dimensions of M and N are restricted to the allowed enum values defined by D3D12DDI_WAVE_MMA_DIMENSION M and D3D12DDI_WAVE_MMA_DIMENSION N. The K dimension is defined to be an even multiple of 16 provided by the driver through the D3D12_FEATURE_DATA_WAVE_MMA CheckFeatureSupport Caps. The K value is considered a constant and the driver should unroll loops using it, if possible.
For more information, see Wave MMA.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 11, version 24H2 (WDDM 3.2) |
Header | d3d12umddi.h |