DirectML feature level history
For general DirectML version history, see DirectML version history.
DML_FEATURE_LEVEL_6_4
Introduced in DirectML version 1.15.0.
Added the following operator types, documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- DML_OPERATOR_RESAMPLE3
- DML_OPERATOR_FOLD
- DML_OPERATOR_UNFOLD
Extended the following operators to accept the DML_PADDING_MODE_WRAP padding mode.
- DML_OPERATOR_PADDING
- DML_OPERATOR_PADDING1
Updated DML_OPERATOR_ACTIVATION_SOFTPLUS to allow Steepness < 1.
DML_FEATURE_LEVEL_6_3
Introduced in DirectML version 1.15.0
Added the following operator types, documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION2
- DML_OPERATOR_MULTIHEAD_ATTENTION1
- DML_OPERATOR_QUANTIZE
- DML_OPERATOR_DEQUANTIZE
Introduced DML_TENSOR_DATA_TYPE_UINT4 and DML_TENSOR_DATA_TYPE_INT4 data types, currently supported by the following operators:
- DML_OPERATOR_QUANTIZE
- DML_OPERATOR_DEQUANTIZE
DML_FEATURE_LEVEL_6_2
Introduced in DirectML version 1.13.0.
Added the following operator types, documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- DML_OPERATOR_ACTIVATION_HARD_SWISH
- DML_OPERATOR_ACTIVATION_SWISH
- DML_OPERATOR_AVERAGE_POOLING1
- DML_OPERATOR_LP_POOLING1
- DML_OPERATOR_MATRIX_MULTIPLY_INTEGER_TO_FLOAT
- DML_OPERATOR_QUANTIZED_LINEAR_AVERAGE_POOLING
Extended data type support for the following operators, documented in DML_OPERATOR_TYPE. For details on the specific support added in DML_FEATURE_LEVEL_6_2, see each operator's structure topic.
- DML_OPERATOR_RESAMPLE2
Made ZeroPointTensor optional for the following operators:
- DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR
- DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR
Added a new graph node type DML_GRAPH_NODE_TYPE_CONSTANT to enable compile-time optimizations that require content of small tensors.
DML_FEATURE_LEVEL_6_1
Introduced in DirectML version 1.12.0.
The operator types mentioned below are documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- Added DML_OPERATOR_MULTIHEAD_ATTENTION.
- DML_OPERATOR_GEMM. FusedActivation now supports DML_OPERATOR_ACTIVATION_SOFTMAX and DML_OPERATOR_ACTIVATION_SOFTMAX1.
DML_FEATURE_LEVEL_6_0
Introduced in DirectML version 1.11.0.
The operator types mentioned below are documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- Added UINT64 and INT64 data type support for DML_OPERATOR_ELEMENT_WISE_DIVIDE, DML_OPERATOR_ELEMENT_WISE_MODULUS_FLOOR, and DML_OPERATOR_ELEMENT_WISE_MODULUS_TRUNCATE.
- Added FLOAT16 data type support in ScaleTensor for DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR.
- Added FLOAT16 data type support in ScaleTensor and OutputTensor for DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR.
- Added DML_OPERATOR_ELEMENT_WISE_CLIP operator to the supported fused activation list.
DML_FEATURE_LEVEL_5_2
Introduced in DirectML version 1.10.0.
The operator types mentioned below are documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
The range of tensor dimension has been increased to 1 to 4 for the following parameters:
- DML_OPERATOR_MATRIX_MULTIPLY_INTEGER, BZeroPointTensor parameter.
- DML_OPERATOR_QUANTIZED_LINEAR_CONVOLUTION, FilterScaleTensor parameter.
ScaleTensor and BiasTensor can be null independent of each other for the following operators:
- DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION
- DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION1
DML_FEATURE_LEVEL_5_1
Introduced in DirectML version 1.9.0.
Added the following operator types, documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- DML_OPERATOR_ACTIVATION_GELU
- DML_OPERATOR_ACTIVATION_SOFTMAX1
- DML_OPERATOR_ACTIVATION_LOG_SOFTMAX1
- DML_OPERATOR_ACTIVATION_HARDMAX1
- DML_OPERATOR_RESAMPLE2
- DML_OPERATOR_RESAMPLE_GRAD1
- DML_OPERATOR_DIAGONAL_MATRIX1
Extended data type support for the following operators, documented in DML_OPERATOR_TYPE. For details on the specific support added in DML_FEATURE_LEVEL_5_1, see each operator's structure topic.
- DML_OPERATOR_ACTIVATION_RELU
- DML_OPERATOR_ACTIVATION_RELU_GRAD
- DML_OPERATOR_ACTIVATION_PARAMETERIZED_RELU
- DML_OPERATOR_ELEMENT_WISE_ADD
- DML_OPERATOR_ELEMENT_WISE_DIVIDE
- DML_OPERATOR_ELEMENT_WISE_MULTIPLY
- DML_OPERATOR_ELEMENT_WISE_SUBTRACT
- DML_OPERATOR_DIAGONAL_MATRIX
DML_FEATURE_LEVEL_5_0
Introduced in DirectML version 1.8.0.
Added the following operator types, documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- DML_OPERATOR_ELEMENT_WISE_CLIP1
- DML_OPERATOR_ELEMENT_WISE_CLIP_GRAD1
- DML_OPERATOR_ELEMENT_WISE_NEGATE
- DML_OPERATOR_PADDING1
Extended data type support for the following operators, documented in DML_OPERATOR_TYPE. For details on the specific support added in DML_FEATURE_LEVEL_5_0, see each operator's structure topic.
- DML_OPERATOR_CUMULATIVE_PRODUCT
- DML_OPERATOR_CUMULATIVE_SUMMATION
- DML_OPERATOR_DEPTH_TO_SPACE
- DML_OPERATOR_DEPTH_TO_SPACE1
- DML_OPERATOR_ELEMENT_WISE_CLIP
- DML_OPERATOR_ELEMENT_WISE_CLIP_GRAD
- DML_OPERATOR_ELEMENT_WISE_CLIP_GRAD1
- DML_OPERATOR_ELEMENT_WISE_CLIP1
- DML_OPERATOR_ELEMENT_WISE_IF
- DML_OPERATOR_ELEMENT_WISE_MAX
- DML_OPERATOR_ELEMENT_WISE_MIN
- DML_OPERATOR_ELEMENT_WISE_NEGATE
- DML_OPERATOR_FILL_VALUE_SEQUENCE
- DML_OPERATOR_MAX_POOLING
- DML_OPERATOR_MAX_POOLING1
- DML_OPERATOR_MAX_POOLING2
- DML_OPERATOR_MAX_UNPOOLING
- DML_OPERATOR_PADDING
- DML_OPERATOR_PADDING1
- DML_OPERATOR_REDUCE, when using one of the following reduce functions.
- DML_REDUCE_FUNCTION_L1
- DML_REDUCE_FUNCTION_MAX
- DML_REDUCE_FUNCTION_MIN
- DML_REDUCE_FUNCTION_MULTIPLY
- DML_REDUCE_FUNCTION_SUM
- DML_REDUCE_FUNCTION_SUM_SQUARE
- DML_OPERATOR_REVERSE_SUBSEQUENCES
- DML_OPERATOR_ROI_ALIGN
- DML_OPERATOR_ROI_ALIGN1
- DML_OPERATOR_SPACE_TO_DEPTH
- DML_OPERATOR_SPACE_TO_DEPTH1
- DML_OPERATOR_TOP_K
- DML_OPERATOR_TOP_K1
DML_FEATURE_LEVEL_4_1
Introduced in DirectML version 1.7.0.
Added the following operator types, documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- DML_OPERATOR_ROI_ALIGN_GRAD
- DML_OPERATOR_BATCH_NORMALIZATION_TRAINING
- DML_OPERATOR_BATCH_NORMALIZATION_TRAINING_GRAD
Extended data type support for the following operators, documented in DML_OPERATOR_TYPE. For details on the specific support added in DML_FEATURE_LEVEL_4_1, see each operator's structure topic.
- DML_OPERATOR_ELEMENT_WISE_IDENTITY
- DML_OPERATOR_ELEMENT_WISE_ADD
- DML_OPERATOR_ELEMENT_WISE_SUBTRACT
- DML_OPERATOR_ELEMENT_WISE_MULTIPLY
- DML_OPERATOR_ELEMENT_WISE_ABS
- DML_OPERATOR_ELEMENT_WISE_SIGN
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN_OR_EQUAL
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN_OR_EQUAL
- DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_LEFT
- DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_RIGHT
- DML_OPERATOR_ELEMENT_WISE_BIT_AND
- DML_OPERATOR_ELEMENT_WISE_BIT_OR
- DML_OPERATOR_ELEMENT_WISE_BIT_NOT
- DML_OPERATOR_ELEMENT_WISE_BIT_XOR
- DML_OPERATOR_ELEMENT_WISE_BIT_COUNT
- DML_OPERATOR_ARGMIN
- DML_OPERATOR_ARGMAX
- DML_OPERATOR_CAST
- DML_OPERATOR_SLICE
- DML_OPERATOR_SLICE1
- DML_OPERATOR_SLICE_GRAD
- DML_OPERATOR_SPLIT
- DML_OPERATOR_JOIN
- DML_OPERATOR_GATHER
- DML_OPERATOR_GATHER_ELEMENTS
- DML_OPERATOR_GATHER_ND
- DML_OPERATOR_GATHER_ND1
- DML_OPERATOR_SCATTER
- DML_OPERATOR_SCATTER_ND
- DML_OPERATOR_FILL_VALUE_CONSTANT
- DML_OPERATOR_TILE
- DML_OPERATOR_ONE_HOT
DML_FEATURE_LEVEL_4_0
Introduced in DirectML version 1.6.0.
Added support for the following operator types, documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- DML_OPERATOR_ELEMENT_WISE_QUANTIZED_LINEAR_ADD
- DML_OPERATOR_DYNAMIC_QUANTIZE_LINEAR
- DML_OPERATOR_ROI_ALIGN1
Extended data type and dimension count support for the following operators, documented in DML_OPERATOR_TYPE. For details on the specific support added in DML_FEATURE_LEVEL_4_0, see each operator's structure topic.
- DML_OPERATOR_ACTIVATION_RELU_GRAD
- DML_OPERATOR_ADAM_OPTIMIZER
- DML_OPERATOR_CONVOLUTION
- DML_OPERATOR_CONVOLUTION_INTEGER
- DML_OPERATOR_CUMULATIVE_PRODUCT
- DML_OPERATOR_CUMULATIVE_SUMMATION
- DML_OPERATOR_DIAGONAL_MATRIX
- DML_OPERATOR_FILL_VALUE_CONSTANT
- DML_OPERATOR_FILL_VALUE_SEQUENCE
- DML_OPERATOR_GEMM
- DML_OPERATOR_MATRIX_MULTIPLY_INTEGER
- DML_OPERATOR_MAX_POOLING_GRAD
- DML_OPERATOR_NONZERO_COORDINATES
- DML_OPERATOR_QUANTIZED_LINEAR_CONVOLUTION
- DML_OPERATOR_QUANTIZED_LINEAR_MATRIX_MULTIPLY
- DML_OPERATOR_RANDOM_GENERATOR
- DML_OPERATOR_REVERSE_SUBSEQUENCES
DML_FEATURE_LEVEL_3_1
Introduced in DirectML version 1.5.0.
Added support for the following operator types, documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- DML_OPERATOR_ELEMENT_WISE_ATAN_YX
- DML_OPERATOR_ELEMENT_WISE_CLIP_GRAD
- DML_OPERATOR_ELEMENT_WISE_DIFFERENCE_SQUARE
- DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION_GRAD
- DML_OPERATOR_CUMULATIVE_PRODUCT
- DML_OPERATOR_BATCH_NORMALIZATION_GRAD
The maximum number of supported dimensions for the following operators has increased from 4 to 8.
- DML_OPERATOR_BATCH_NORMALIZATION
- DML_OPERATOR_CAST
- DML_OPERATOR_JOIN
- DML_OPERATOR_LP_NORMALIZATION
- DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION1
- DML_OPERATOR_PADDING
- DML_OPERATOR_ACTIVATION_RELU_GRAD
- DML_OPERATOR_SLICE_GRAD
- DML_OPERATOR_TILE
- DML_OPERATOR_TOP_K
- DML_OPERATOR_TOP_K1
DML_FEATURE_LEVEL_3_0
Introduced in DirectML version 1.4.0.
Added support for the following operator types, documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- DML_OPERATOR_ELEMENT_WISE_BIT_AND
- DML_OPERATOR_ELEMENT_WISE_BIT_OR
- DML_OPERATOR_ELEMENT_WISE_BIT_XOR
- DML_OPERATOR_ELEMENT_WISE_BIT_NOT
- DML_OPERATOR_ELEMENT_WISE_BIT_COUNT
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN_OR_EQUAL
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN_OR_EQUAL
- DML_OPERATOR_ACTIVATION_CELU
- DML_OPERATOR_ACTIVATION_RELU_GRAD
- DML_OPERATOR_AVERAGE_POOLING_GRAD
- DML_OPERATOR_MAX_POOLING_GRAD
- DML_OPERATOR_RANDOM_GENERATOR
- DML_OPERATOR_NONZERO_COORDINATES
- DML_OPERATOR_RESAMPLE_GRAD
- DML_OPERATOR_SLICE_GRAD
- DML_OPERATOR_ADAM_OPTIMIZER
- DML_OPERATOR_ARGMIN
- DML_OPERATOR_ARGMAX
- DML_OPERATOR_ROI_ALIGN
- DML_OPERATOR_GATHER_ND1
Added the following enhancements.
- The maximum number of tensor dimensions has been increased from 5 to 8. See DML_TENSOR_DIMENSION_COUNT_MAX1.
- Additional support for integer datatypes has been added to the following operators.
- DML_OPERATOR_ELEMENT_WISE_POW
- DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW
- DML_OPERATOR_MAX_POOLING, DML_OPERATOR_MAX_POOLING1, and DML_OPERATOR_MAX_POOLING2
- DML_OPERATOR_REDUCE, when using DML_REDUCE_FUNCTION_ARGMIN or DML_REDUCE_FUNCTION_ARGMAX
- The following 64-bit data types have been added, and are supported by select operators.
- DML_TENSOR_DATA_TYPE_FLOAT64
- DML_TENSOR_DATA_TYPE_UINT64
- DML_TENSOR_DATA_TYPE_INT64
Deprecated functionality.
- DML_REDUCE_FUNCTION_ARGMAX and DML_REDUCE_FUNCTION_ARGMIN have been deprecated. You should prefer to use the standalone DML_OPERATOR_ARGMIN and DML_OPERATOR_ARGMAX operators in their place.
DML_FEATURE_LEVEL_2_1
Introduced in DirectML version 1.2.0.
Added the following APIs.
- IDMLDevice1 interface
- Operator graph support (see IDMLDevice1::CompileGraph
Added support for the following operator types, documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_LEFT
- DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_RIGHT
- DML_OPERATOR_ELEMENT_WISE_ROUND
- DML_OPERATOR_ELEMENT_WISE_IS_INFINITY
- DML_OPERATOR_ELEMENT_WISE_MODULUS_TRUNCATE
- DML_OPERATOR_ELEMENT_WISE_MODULUS_FLOOR
- DML_OPERATOR_FILL_VALUE_CONSTANT
- DML_OPERATOR_FILL_VALUE_SEQUENCE
- DML_OPERATOR_CUMULATIVE_SUMMATION
- DML_OPERATOR_REVERSE_SUBSEQUENCES
- DML_OPERATOR_GATHER_ELEMENTS
- DML_OPERATOR_GATHER_ND
- DML_OPERATOR_SCATTER_ND
- DML_OPERATOR_MAX_POOLING2
- DML_OPERATOR_SLICE1
- DML_OPERATOR_TOP_K1
- DML_OPERATOR_DEPTH_TO_SPACE1
- DML_OPERATOR_SPACE_TO_DEPTH1
- DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION1
- DML_OPERATOR_RESAMPLE1
- DML_OPERATOR_MATRIX_MULTIPLY_INTEGER
- DML_OPERATOR_QUANTIZED_LINEAR_MATRIX_MULTIPLY
- DML_OPERATOR_CONVOLUTION_INTEGER
- DML_OPERATOR_QUANTIZED_LINEAR_CONVOLUTION
Added the following enhancements.
- Additional support for integer datatypes has been added to the following operators.
- DML_OPERATOR_ELEMENT_WISE_IDENTITY
- DML_OPERATOR_ELEMENT_WISE_ABS
- DML_OPERATOR_ELEMENT_WISE_ADD
- DML_OPERATOR_ELEMENT_WISE_CLIP
- DML_OPERATOR_ELEMENT_WISE_DIVIDE
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN
- DML_OPERATOR_ELEMENT_WISE_MAX
- DML_OPERATOR_ELEMENT_WISE_MEAN
- DML_OPERATOR_ELEMENT_WISE_MIN
- DML_OPERATOR_ELEMENT_WISE_MULTIPLY
- DML_OPERATOR_ELEMENT_WISE_SUBTRACT
- DML_OPERATOR_ELEMENT_WISE_THRESHOLD
- DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR
- DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR
- DML_OPERATOR_ELEMENT_WISE_SIGN
- DML_OPERATOR_ELEMENT_WISE_IF
- DML_OPERATOR_ACTIVATION_SHRINK
- DML_OPERATOR_PADDING
- DML_OPERATOR_GATHER
- DML_OPERATOR_SCATTER
- DML_OPERATOR_DEPTH_TO_SPACE
- DML_OPERATOR_SPACE_TO_DEPTH
- DML_OPERATOR_TILE
- DML_OPERATOR_TOP_K and DML_OPERATOR_TOP_K1
- DML_OPERATOR_ONE_HOT
- DML_OPERATOR_REDUCE, when using one of the following reduce functions.
- DML_REDUCE_FUNCTION_ARGMIN
- DML_REDUCE_FUNCTION_ARGMAX
- DML_REDUCE_FUNCTION_MAX
- DML_REDUCE_FUNCTION_MIN
- DML_REDUCE_FUNCTION_MULTIPLY
- DML_REDUCE_FUNCTION_SUM
- Relaxed tensor shape restrictions for DML_OPERATOR_GATHER
DML_FEATURE_LEVEL_2_0
Introduced in DirectML version 1.1.0.
Added the following APIs.
- DMLCreateDevice1 function
- DML_FEATURE_LEVEL enumeration
- Feature level queries (see DML_FEATURE_QUERY_FEATURE_LEVELS)
Added support for the following operator types, documented in DML_OPERATOR_TYPE. For each operator type constant, that topic provides a link to the corresponding structure.
- DML_OPERATOR_ELEMENT_WISE_SIGN
- DML_OPERATOR_ELEMENT_WISE_IS_NAN
- DML_OPERATOR_ELEMENT_WISE_ERF
- DML_OPERATOR_ELEMENT_WISE_SINH
- DML_OPERATOR_ELEMENT_WISE_COSH
- DML_OPERATOR_ELEMENT_WISE_TANH
- DML_OPERATOR_ELEMENT_WISE_ASINH
- DML_OPERATOR_ELEMENT_WISE_ACOSH
- DML_OPERATOR_ELEMENT_WISE_ATANH
- DML_OPERATOR_ELEMENT_WISE_IF
- DML_OPERATOR_ELEMENT_WISE_ADD1
- DML_OPERATOR_ACTIVATION_SHRINK
- DML_OPERATOR_MAX_POOLING1
- DML_OPERATOR_MAX_UNPOOLING
- DML_OPERATOR_DIAGONAL_MATRIX
- DML_OPERATOR_SCATTER_ELEMENTS
- DML_OPERATOR_SCATTER
- DML_OPERATOR_ONE_HOT
- DML_OPERATOR_RESAMPLE
Added the following enhancements.
- When binding an input resource for dispatch of an IDMLOperatorInitializer, it's now legal to provide a resource with D3D12_HEAP_TYPE_CUSTOM (in addition to D3D12_HEAP_TYPE_DEFAULT), as long as appropriate heap properties are also set. See Binding in DirectML.
- The following logical boolean operators now support UINT8 output tensors, in addition to the existing support for UINT32.
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR
- DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR
- 5D activation functions now support the use of strides on their input and output tensors.
DML_FEATURE_LEVEL_1_0
The feature level in which DirectML was introduced.